본문 바로가기

MVVM

(6)
[배달의민족2] 클론코딩 - 2. 약관 동의 화면 안녕하세요! 허접 샴푸입니다. 이번 편은 먼저 약관 동의 화면입니다. [만들고자 하는 화면] 1. 권한 동의 화면 2. 이용약관 화면(일부 설정만) [필요 사전 지식] 1. 안드로이드 2. 코틀린 3. ViewBinding * 일단 사전 지식이 없더라도 따라 만들면서 부족한 점은, 인터넷 찾아보면서, 학습하시면 됩니다. [내용] 1. ViewModel 2. MVVM, MVI 디자인 패턴 3. ViewPager 4. UI (Event + State), State Pattern 5. Flow, Observable Pattern [시작] 그림, 색상 등과 관련한 리소스 관련 파일은 모두 맨 아래 나와있는 Github에서 확인할 수 있으니 따로 설명을 넣지 않았습니다. 1) 패키지 스트럭쳐 수정 - 기존 ui ..
[배달의민족2] 클론코딩 - 1. 스플래시 화면 안녕하세요! 허접 샴푸입니다. 오랜만에 다시 시작하고자 합니다. 처음부터 끝까지 한번 제대로 만들어보도록 하겠습니다. 이번 편은 먼저 스플래시 화면과 권한 체크를 하는 화면입니다. [만들고자 하는 화면] 1. 인트로 화면 2. 권한 동의 여부 다이얼로그 3. 권한 체크 팝업 [필요 사전 지식] 1. 안드로이드 2. 코틀린 3. Android Jetpack 4. 코루틴 * 일단 사전 지식이 없더라도 따라 만들면서 부족한 점은, 인터넷 찾아보면서, 학습하시면 됩니다. [목표] 1. Fragment 및 ResultListener 2. Jetpack Navigation 3. Permission check [시작] 1) Gradle 설정 - build.gradle (Module: app)에 위와 같이 ViewMo..
[배달의 민족] 따라만들기 10-2편 (Dagger-Hilt) 안녕하세요! 이번 편에서는 코드를 수정하도록 하겠습니다. Dagger-Hilt에 관해서는 아래 링크인 공식문서를 참고해보시기 바랍니다. dagger.dev/hilt/quick-start Quick Start Guide Introduction Hilt makes it easy to add dependency injection to your Android app. This tutorial will guide you through bootstrapping an existing app to use Hilt. For more on the basic concepts of Hilt’s components, check out Hilt Components. Gradle vs non dagger.dev 그럼 저희 코드에 ..
[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 클래스와 같은 여러 다른 클래스에 의존합니다. 이..
[배달의 민족] 따라만들기 8-1편 (Navigation, BottomNavigationView) 안녕하세요 허접샴푸입니다~! 오랜만에 배달의 민족 따라 만들기 8편입니다! 이번 시간에 구현할 것은 Fragment + BottomNavigationView입니다. 이전까지는 아래 그림과 같이 Drawer을 구현하였었죠? 그런데 최신 "배달의 민족" 앱은 Drawer 대신 아래 오른쪽 그림과 같이 Bottom navigation View를 사용하더라고요? 제 개인적인 생각은 - 엄밀히 따지면, Bottom Navigation View가 아닌 커스텀 Layout으로 Bottom Tab을 만든 것 같습니다. 그런데 저희는 100% 따라 할 것이 아니고 느낌만 가져갈 것이기 때문에 일일이 모두 커스터마이징 하기보다는 이미 잘 만들어져 있는 view를 사용할 것입니다. 그것이 바로 BottomNavigation..