본문 바로가기

배달의 민족

(6)
[배달의민족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..
[배달의민족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 ..
[배달의 민족] 따라만들기 11-1편(주문내역 화면) 안녕하세요 허접샴푸입니다! 항상 오랜만입니다... 오늘은 주문내역 화면을 간단하게 만들어보고자 합니다. (ViewPager2, TabLayout, Fragments) [배민 화면] 1. fragment_order.xml에 ViewPager2, TabLayout 및 레이아웃 수정 위와 같이 코드를 작성할 경우, Design Tab을 보시면 위 그림과 같이, tab_layout, pager이 생성된 것을 확인할 수 있습니다. 참고로 기존 TabLayout의 경우, TabIndicator의 폭이 해당 탭의 가로 최대 크기로 정해져 있습니다. 그래서 이것을 해제하기 위해 app:tabIndicatorFullWidth="false"로 설정하였으며, 인디케이터는 해당 탭의 각 탭 아이템 문자열 길이만큼의 폭을 가지..
[배달의 민족] 따라만들기 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 클래스와 같은 여러 다른 클래스에 의존합니다. 이..
[배달의 민족] UI 따라만들기 3편 (Viewpager2, Coroutine, LifecycleScope) 안녕하세요 허접샴푸입니다~! 배달의 민족 따라만들기 3편입니다! 3편에서는 자동으로 스크롤 되는 ViewPager2에 대해 알아 보도록 하겠습니다. 구글에서 밀고 있는 Coroutine을 사용하도록 하겠습니다. [자료] 지난 2편에서는 좌우로 Swipe 되는 이미지 배너를 구현하였죠? 이번 편에서는 좌우로 손을 대지 않아도 알아서 Swipe 되도록 하겠습니다. 잘 아시겠지만 자동이라고 하면 결국 thread 를 사용해야 하는데 구글에서 권장하고 있는 놈이 바로 Coroutine입니다. 즉 유저는 앱을 사용하고 있으면서, 이미지 배너는 자동으로 Swipe 되는 비동기 처리가 되어야 합니다. 이에 적합한 것이 바로 Coroutine 입니다. 그리고 LifecycleScope를 사용하여 편하게 만들어 보도록 ..