TIL

240229 TIL - 학습 방향

오늘 학습한 내용 코트카타, Leetcode Daily Problem, Dynamic Pogramming Course SOLID 원칙 개념 학습 Jetpack Compose Tutorial 1-6. Implement a real-world design Udemy 안드로이드 강의 안드로이드 구현 연습 - "MVVM 클린 아키텍처 구조에서 SharedPreferences는 UI 모듈에서 싱글톤 형태로 관리해도 될까? 혹은 Data 모듈의 Repository를 통해서만 접근하도록 막아야 할까?" 고민을 했는데, MVVM + 클린 아키텍처에 대한 학습을 좀 더 한 후 다시 생각해보기로 했다. 이러한 고민을 하게 된 이유는 Glide를 통해 이미지를 로딩하고 캐싱할 수 있는데, Presentation 모듈에서 S..

2024.02.29 게시됨

포스팅 썸네일 이미지

TIL

240228 TIL

오늘 학습한 내용 Android 구현 연습 - MVVM에서 View가 ViewModel의 함수를 호출하면서 callback 형태로 결괏값에 따라 UI를 업데이트하게 구현하면 안된다. 1. LiveData를 observing할 때, lifecycleOwner를 지정하는 이유는 무엇일까? -> View가 살아있을 때만 데이터의 변화를 수신받기 위해서다. 2. ViewModel에 callback을 넘기면 어떻게 될까? -> View의 Lifecycle과 무관하게, ViewModel이 죽지 않는한 callback이 무조건 처리된다. 3. 만약 ViewModel이 처리하는 과정에서 View가 죽었는데, callback을 처리하면 어떻게 될까? -> 앱 crash가 발생한다. 4. 따라서 View가 ViewMode..

2024.02.28 게시됨

TIL

240227 TIL

오늘 학습한 내용 Kotlin In Action 4.4 남은 부분, 9-3 - JvmStatic, JvmField의 차이와 Companion Object와 의 관계에 대해 정리해봤습니다. https://dodobest.notion.site/JvmStatic-JvmField-5c0bbb1d97af4542ac64e4aa89c19e1b CS 학습 : 프로그램 실행 과정 fetch-decode-execute View가 그려지는 과정 - 원래는 Custom View를 학습하려고 했으나, 자료가 적고 이미 구현되어 있는 View들의 내부 코드를 보면서 학습하기에는 나의 역량이 부족하다. 그래서 View가 그려지는 과정을 먼저 학습해보는 것을 추천 받았고, 아래 공식 문서 내용을 단어 하나 하나 의미 하는 바를 찾아..

2024.02.27 게시됨

포스팅 썸네일 이미지

TIL

240226 TIL

오늘 학습한 내용 Kotlin In Action 4.4 일부 - 동반 객체 companion object는 일반 object 객체와 같은 객체이다. 다만, 클래스 객체 선언 없이 접근할 수 있다. - 동반 객체에는 이름을 지정할 수 있으나, 보통은 클래스를 통해 바로 접근할 수 있으므로 지정하지 않는다. 기본 이름은 Companion이다. - 최상위 함수는 클래스의 private 멤버에 접근할 수 없다. 그래서 클래스의 인스턴스와 관계없이 호출해야 하지만, 클래스 내부 정보에 접근해야 하는 함수가 필요할 때, companion object에 선언해서 사용한다. 코틀린 코루틴 7장 복습 및 나머지 부분 학습 Android 구현 배달의 민족 배너와 같이 옆으로 넘기는 UI를 RecyclerView를 이용해 ..

2024.02.26 게시됨

TIL

240214 TIL

Parcelable 코드를 자동으로 생성해주는 Annotation을 활용하면 편리하다. 모듈 수준의 build.gradle 파일에 아래 플러그인을 추가한 후 plugins { id("kotlin-parcelize") } 변환하려는 클래스에 @Parcelize 어노테이션을 추가해주기만 하면 Parcelable을 위한 코드를 알아서 처리해준다. import kotlinx.parcelize.Parcelize @Parcelize class User(val firstName: String, val lastName: String, val age: Int): Parcelable https://developer.android.com/kotlin/parcelize Parcelable 구현 생성기 | Kotlin | An..

2024.02.15 게시됨