mvvm

    [Android/파고들기] 1화 Android Architecture Pattern

    [Android/파고들기] 1화 Android Architecture Pattern

    파고들기 ? 안드로이드 개발을 하면서 내가 사용하는 기술을 파고드는 파고들기 카테고리를 추가했다. 왜냐하면 내가 사용하는 기술들이 어떻게 활용되는지, 어떤 원리로 이루어지는지 등 파고들어 해석한다면 보다 기술들을 효율적으로 사용할 수 있을 것 같았기 때문이다. 파고들기의 첫 번째 이야기! Android Architecture Pattern에 대해서 다뤄보자. 안드로이드를 공부하다보면 MVC, MVP, MVVM, MVI 이라는 키워드를 자주보게 된다. 최근에는 MVI 패턴이 안드로이드에서 주목을 받기 시작했는데, 아직까지는 그래도 MVVM패턴을 많이 사용하고 있다. MVVM패턴을 자주 사용하더라도 다른 패턴은 어떠한 형식으로 구현하고, 어떠한 특징이 있는지 한 번은 정리해야겠다고 다짐했었다. 다른 패턴들의..

    [JETPACK개론] Retrofit + ViewModelScope + RV + Glide

    [JETPACK개론] Retrofit + ViewModelScope + RV + Glide

    이 게시물에서는 기존에 진행했던 Retrofit + ViewModel + RV에서 해당 데이터에 이미지를 Glide로 불러오고, AAC(Android Architecture Components)에 맞게끔 구조를 살짝 변경해보겠다. AAC(Android Architecture Components) 는 테스트와 유지보수가 쉬운 앱을 디자인할 수 있도록 돕는 라이브러리의 모음이다. 위의 그림처럼 크게 ViewModel, Repositroy, Room, Retrofit 등이 포함되어 있다. 이제 코드를 살펴보자. 먼저 위와 같이 패키지를 분리하여 구성하였고, object RetrofitInstance { val BASE_URL = "https://raw.githubusercontent.com/" val clin..

    [JETPACK개론] Retrofit 예제 + RecyclerView

    [JETPACK개론] Retrofit 예제 + RecyclerView

    먼저 기존의 포스팅 했던 게시물에 이어서 Retrofit + ViewModel + ViewModelScope + RecyclerView 를 이용하여 여태까지 공부했던 내용을 합쳐 예제를 통해 연습해보자! Retrofit 게시물 -> [JETPACK개론] Retrofit 트러버 앱을 만들면서 Retrofit을 많이 이용하였는데 ViewModel 과 코루틴과 같이 사용해본 경험은 없어 아쉬움이 큰 프로젝트였다. 따라서 이번 젯팩 인프런 강의를 들으면서 다시 한번 복습하며 Vie ssongcode.tistory.com @GET("posts/1") suspend fun getPost1() : Post @GET("posts/{number}") suspend fun getPostNumber( @Path("numbe..

    [JETPACK개론] DataBinding + ViewModel + LiveData

    [JETPACK개론] DataBinding + ViewModel + LiveData

    앞에서 공부했던 DataBinding과 ViewModel과 LiveData를 사용하여 실습을 진행해보자!! 이렇게 과일 이름이 주어지고, 그 밑 두 개는 위의 과일이름이 섞여서 나오는 프로그램을 ViewModel과 LiveData를 사용하여 구현해보자. 데이터바인딩 준비 buildFeatures{ dataBinding true } ViewModel 준비 class MainViewModel : ViewModel() { private var _mutableWord = MutableLiveData("") val liveWord : LiveData get() = _mutableWord private var _randommutableWord = MutableLiveData("") val randomliveWord..

    [JETPACK개론] Map / SwitchMap

    LiveData를 사용하다 보면 여러 가지의 데이터를 다루게 되고, 이러한 데이터들이 함께 바껴야하는 상황도 많이 만나게 된다. 데이터베이스와 네트워크 통신을 도와주는 라이브러리와 함께 사용되기도 하는데 이 때 Transformation의 Map과 SwitchMap 메소드를 사용한다!! 간단한 실습을 통해 이 두 가지를 알아보자! EditText에 숫자를 입력하고 버튼을 누르면 자동으로 그 숫자끼리 더해지고, 곱해지는 프로그램을 구현해보자. 예를 들어, 10을 입력하면 20과 100이 출력되는 것이다. 위의 메소드를 모두 이용한다고하면, 10이라는 라이브데이터로 20과 100으로 변환시키는 것에서 이용할 수 있을 것이다! private var _mutableCount = MutableLiveData(0)..