본문 바로가기

ViewModel

(7)
[배달의 민족] 따라만들기 10-3편 (Dagger-Hilt) 안녕하세요! 허접 샴푸입니다. 오늘은 Dagger-Hilt 3편입니다! 지난 포스트 (2편)에서 이어 나가겠습니다. 가장 먼저 기본적인 세팅을 끝났으니, 이제는 무엇을 모듈로 만들지를 정해야 합니다. 가장 먼저 저희는 Repository를 모듈로 만들고자 합니다. 1) RepositoryModule 생성 먼저 "di"라는 package를 생성 후 RepositoryModule 코틀린 파일을 만듭니다. (Object) 2) Dagger-Hilt 속성 작성 위와 같이 작성을 해줍니다. Module은 단순히 Dagger 그래프를 위해 @Module이라고 Annotation 작업을 한 클래스입니다. 모듈 안에서 의존성들을 @Provides Annotation과 함께 정의할 수 있습니다. Repository Pa..
[배달의 민족] 따라만들기 9편 (RecyclerView, ListAdapter, DIffCallback, Flexbox, Glide) 안녕하세요 허접 샴푸입니다~! 오랜만에 배달의 민족 따라 만들기 9편입니다! 이번 시간에 구현할 것은 아래 뭐 먹지 화면입니다. 물론 실제 배달의 민족 앱에서는 그림이 아닌 동영상이지만, 저는 동영상을 그림으로만 표시하였습니다. 동영상을 재생하기 위해서는 ExoPlayer을 사용해야 하는데 이는 추후에 다루도록 하겠습니다. 아래 화면을 구현하기 위해서는 RecyclerView + Adapter, Glide, Flexbox라고 생각됩니다. [START] 1. 뭐 먹지 리스트용 Fake 데이터이며 이에 맞는 Data class를 작성합니다. title, imageUrl, tags라는 String 변수들입니다. [예 - 왼쪽 그림을 예시로...] title : "캠핑한끼 리얼 까르보나라" imageUrl : ..
[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 클래스와 같은 여러 다른 클래스에 의존합니다. 이..
[배달의 민족] UI 따라만들기 4편 (NestedScrollView, RecyclerView, GridLayoutManager, ViewModel, Livedata, and etc) 안녕하세요 허접샴푸입니다~! 배달의 민족 따라만들기 4편입니다! 4편에서는 Grid 형태의 RecyclerView를 구현하도록 하겠습니다. (얻어갈 수 있는 것 - 제 마음대로 끄적인...) - Grid RecyclerView - NestedScrollView - 둥근 Rectangle - Custom Layout [자료] 위처럼 둥근 모서리의 사각형 안에 Grid 형태의 RecyclerView를 만들어보도록 하겠습니다. 보너스로 "우리동네 맛집 검색" Layout 또한 만들어보도록 하겠습니다. LETS GO! [시작] (1) GridItem 생성 - 1편에서 이미지 배너를 위해 BannerItem 객체 클래스를 만든 것처럼 이번에도 GridItem이란 객체 클래스를 만들어줍니다. (2) FakeItem..
[배달의 민족] UI 따라만들기 3편 (Viewpager2, Coroutine, LifecycleScope) 안녕하세요 허접샴푸입니다~! 배달의 민족 따라만들기 3편입니다! 3편에서는 자동으로 스크롤 되는 ViewPager2에 대해 알아 보도록 하겠습니다. 구글에서 밀고 있는 Coroutine을 사용하도록 하겠습니다. [자료] 지난 2편에서는 좌우로 Swipe 되는 이미지 배너를 구현하였죠? 이번 편에서는 좌우로 손을 대지 않아도 알아서 Swipe 되도록 하겠습니다. 잘 아시겠지만 자동이라고 하면 결국 thread 를 사용해야 하는데 구글에서 권장하고 있는 놈이 바로 Coroutine입니다. 즉 유저는 앱을 사용하고 있으면서, 이미지 배너는 자동으로 Swipe 되는 비동기 처리가 되어야 합니다. 이에 적합한 것이 바로 Coroutine 입니다. 그리고 LifecycleScope를 사용하여 편하게 만들어 보도록 ..
[배달의 민족] UI 따라만들기 2편 (Viewpager2, Livedata, Viewmodel) 안녕하세요 허접샴푸입니다~! Programming에 대한 개념은 있으나, UI 짜는 방법을 몰라서 헤매고 있으신 분들을 위해 새로운 카테고리인 UI 따라 만들기를 만들었습니다. 주인공은 배달의 민족입니다! 이번 편은 2편입니다! [자료] 이번 편은 위에 좌우로 Swipe 되는 이미지 배너를 구현하도록 하겠습니다. Viewpager를 사용해야 합니다. 참고로, 현재는 Viewpager2가 있으며 저는 Viewpager2를 이용하도록 하겠습니다! Viewpager2는 기존 Viewpager의 PagerAdapter를 RecyclerView.Adapter로 대체되었기 때문에 RecyclerView 사용법만 알면 Viewpager2는 식은죽 먹기입니다! Viewpager2 : https://developer.a..