본문 바로가기

Android App Architecture

(4)
[배달의민족2] 클론코딩 - 4. 약관 상세 화면(Domain 레이어) 안녕하세요! 허접 샴푸입니다. 이번 편은 약관 상세 화면입니다. 글이 매우 길어지는 것 같아 Domain 레이어에 대해서만 먼저 설명하도록 하겠습니다. [만들고자 하는 화면] 1. 이용약관 화면 2. 과거 약관을 선택할 수 있는 하단 팝업 화면 [필요 사전 지식] 1. 안드로이드 2. 코틀린 * 일단 사전 지식이 없더라도 따라 만들면서 부족한 점은, 인터넷 찾아보면서, 학습하시면 됩니다. [내용] 1. ViewModel, ViewModelFactory 2. MVVM, MVI 디자인 패턴 3. ViewPager2 4. UI (Event + State), State Pattern 5. Flow, Observable Pattern 6. Fragment간 통신 7. Clean Architecture, Andro..
[배달의민족2] 클론코딩 - 3. 약관 상세 화면(Data 레이어) ㄹ안녕하세요! 허접 샴푸입니다. 이번 편은 약관 상세 화면입니다. 글이 매우 길어지는 것같아 Data 레이어에 대해서만 먼저 설명하도록 하겠습니다. [만들고자 하는 화면] 1. 이용약관 화면 2. 과거 약관을 선택할 수 있는 하단 팝업 화면 [필요 사전 지식] 1. 안드로이드 2. 코틀린 * 일단 사전 지식이 없더라도 따라 만들면서 부족한 점은, 인터넷 찾아보면서, 학습하시면 됩니다. [내용] 1. ViewModel, ViewModelFactory 2. MVVM, MVI 디자인 패턴 3. ViewPager2 4. UI (Event + State), State Pattern 5. Flow, Observable Pattern 6. Fragment간 통신 7. Clean Architecture, Android..
[Tip] ViewModel의 LiveData를 작성하는 방법 안녕하세요 허접샴푸입니다. 간단하게 Android ViewModel에서 LiveData를 작성하는 방법을 끄적여 봅니다. [예] 출처: https://classroom.udacity.com/courses/ud9012/lessons/da3967cc-ba85-4045-bb46-dea1c770fb8b/concepts/d6779adf-494a-484d-870c-1e054eabed11 우선 MutableLiveData는 말 그대로 "Mutable" 즉 변형이 가능한 LiveData로서 읽기 / 쓰기가 가능합니다. 그리고 그냥 LiveData는 읽기 전용입니다. 참고로 LiveData에서 get() = { } 형태의 코드는 Kotlin 의 Backing Property라고 불리는 속성입니다. (Backing Pro..
[배달의 민족] 따라만들기 8-2편 (Repository, ViewModel, MVVM) 안녕하세요 허접샴푸입니다~! 오랜만에 배달의 민족 따라 만들기 8편입니다! 이번 시간에 구현할 것은 안드로이드 앱 아키텍처 패턴의 일부인 Repository와 ViewModel을 작성해보겠습니다. Guide to app architecture https://developer.android.com/jetpack/docs/guide#common-principles 불러오는 중입니다... 위 문서를 보다 보면 제일 중요하게 봐야 할 것이 아래 그림입니다. Activity나 Fragment는 ViewModel에 의존하고 ViewModel은 Repository에 의존하고 Repository는 Room(Sqlite database library)이나 Retrofit 클래스와 같은 여러 다른 클래스에 의존합니다. 이..