프로젝트/영어단어 잠금화면
-
Android Package프로젝트/영어단어 잠금화면 2022. 12. 9. 15:50
영어단어 잠금화면을 재개하면서, 기존 Package를 정리하는데 있어 고민하던 점을 기록해보고자 한다. 현재 패키지 방식은 Android의 권장 방식에 맞춰 data Layer, domain Layer(선택적), UI Layer(Presentation으로 표기) 3가지의 패키지 방식을 차용한 뒤, Data Injection은 따로 패키지를 만들어 사용했다. 또한, 공통적으로 사용하는 클래스 or 상수의 개념은 Constants 패키지를 만들어 Sealed Class를 통한 UiState와 Request 상황 대처 및 전역 상수를 Singleton으로 만들어 사용하고 있다. data, domain은 기존 하던대로 각 역할별로 구분해 패키지화를 진행했고, 이는 다음과 같다. 해당 패키지는 계층별로 분리를 진..
-
잠금화면을 만드는 과정프로젝트/영어단어 잠금화면 2021. 12. 7. 16:09
영어단어 잠금화면의 핵심 기능인 잠금화면을 만드는 과정을 서술한다. 구현할 기능은 다음과 같다. 1. 잠금화면은 퀴즈를 통해서 잠금 해제할 수 있다. 2. 퀴즈는 랜덤한 UI로 2~3개를 우선적으로 구현할 것이다. 3. 퀴즈를 풀지 않아도 넘어갈 수 있는 즉시 잠금해제 버튼을 넣고, 그 버튼은 총 5번 누를 수 있게 한다. 4. 제한 한도가 끝나면 그 버튼을 비활성화하고, 0시 정각에 그 횟수를 초기화한다. ----------------------------------------------------------------------------------------------------------------------------------- 2021-12-07 잠금화면을 개발하는 기초 상식은 [Androi..
-
Dialog 오류에 대한 해결프로젝트/영어단어 잠금화면 2021. 12. 2. 13:57
단어 리스트에 Dialog를 추가해 한 단어에 대해 다양한 뜻과 삭제 기능을 제공하고 있다. 하지만 이 기능을 구현하고, 단어장을 초기화 한 뒤 다양한 뜻을 보여주는 Dialog가 몇 개씩 겹쳐서 뜨는 것을 확인하였고, 이를 고치는 과정을 보여주고자 한다. 실제 버그는 다음과 같다. 이를 해결하기 위한 과정을 선보인다. 2021-12-02 문제를 간단히 해결했다. 다음의 코드가 있다. if ( wordList.size != 0) { binding.dialogMainWord.text = wordList[0].word binding.meanRecyclerview.adapter = DialogRecyclerViewAdapter(wordList, context) binding.meanRecyclerview.la..
-
Room Column 전체 삭제에 대한 고찰프로젝트/영어단어 잠금화면 2021. 12. 2. 13:32
어플리케이션 기능 중 하나로 단어 리스트를 전체 삭제하는 기능을 구현 중이다. 사용자의 시선에서 이 기능은 문제없이 작동되는 것처럼 보이고, 실제 불편함을 느낄 수 있는 부분도 없다. 개발자의 시선에서 이를 바라보면 Auto Increment로 만들어 놓은 Primary Key가 0으로 초기화되지 않는 현상이 있다. 이를 해결하고, 보다 자연스러운 코드를 만들기 위한 고민을 여기에 담고자 한다. 최초 사용하고 있는 것은 clearAllTables()를 이용한 Table 삭제다. 그리고 나와 비슷한 고민을 했던 stackoverflow의 한 글 또한 링크를 남겨두겠다. 그 역시 이러한 방법을 사용했으나 전부 not effect라는 결과가 나온 것 같았다. 최근 수정일?이 2021년 2월이니까 나름 최신일지..