Android

    [JETPACK개론] Retrofit

    [JETPACK개론] Retrofit

    트러버 앱을 만들면서 Retrofit을 많이 이용하였는데 ViewModel 과 코루틴과 같이 사용해본 경험은 없어 아쉬움이 큰 프로젝트였다. 따라서 이번 젯팩 인프런 강의를 들으면서 다시 한번 복습하며 ViewModel과 코투린 같이 사용해볼 예정이다. Retrofit2 관련해서 포스팅했던 링크를 첨부한다!! 개념은 링크를 통해서 보고! 이번 글에서는 젯팩 강의에서 진행했던 실습을 정리해보려고한다! [Android] Retrofit2 사용하기 Retrofit2 ? -Rest API 통신 라이브러리 -Rest API 통신을 위해 구현된 스퀘어사의 OkHttp 라이브러리의 상위 구현체 -android와 서버 환경에서 HTTP API를 쉽고 안전하게 사용할 수 있도록 도와준다. Retrofit을.. ssong..

    [JETPACK개론] LiveData

    [JETPACK개론] LiveData

    LiveData? LiveData는 관찰 가능한 데이터 홀더 클래스이다. 관찰 가능한 일반 클래스와 달리 LiveData는 수명주기를 인식한다. 이렇게 공식문서에 정의되어있다. 즉, 쉽게 다시 설명하자면 데이터를 LiveCycle과 결합해서 관찰해줄 수 있는 것이 LiveData이다!! 가장 대표적인 장점 중에 하나가 UI와 데이터 상태의 일치를 보장해준다! LiveData는 기본 데이터가 변경될 때 observer 객체에 알리고, 코드를 통합하여 이러한 observer객체에 UI를 업데이트할 수 있다. 다음 예시를 살펴보자! class MainActivity : AppCompatActivity() { private var testMutableLiveData = MutableLiveData(0) ove..

    [JETPACK개론] ViewModelFactory

    ViewModelFactory 안드로이드 개발을 하면서 네트워크 통신을 하거나 localDB, room SQLite 등을 포함하여 데이터를 ViewModel로 넘겨주고 싶을 때 안드로이드 Factory클래스를 이용할 수 있다. 간단히 int형 숫자 하나를 전달하는 ViewModel을 만들어 테스트해보자. class MainViewModel(num : Int) : ViewModel() { init{ Log.d("MainViewModel" , num.toString()) } 숫자 하나를 받은 ViewModel 클래스이다. 이제 Factory클래스를 이용해 ViewModel에 원하는 파라메터를 넣어 생성하는 방법을 이용해보자! class MainViewModelFactory(private val num : I..

    [JETPACK개론] ViewModel ?

    [JETPACK개론] ViewModel ?

    ViewModel ViewModel 개요 | Android 개발자 | Android Developers ViewModel을 사용하면 수명 주기를 인식하는 방식으로 UI 데이터를 관리할 수 있습니다. developer.android.com 위의 안드로이드 공식문서를 읽어보면 자세히 나와있지만 처음 접하는 나같은 사람들에게는 어렵게 다가올 수 있다. 정리하자면 ViewModel은 안드로이드의 생명주기를 관리하기 쉽게한다. 다시말해, UI컨트롤러(Activity, Fragment)에서 모든 것을 다 하려고 하면 복잡해지는데, ViewModel을 사용하면 테스트나 관리가 용이해진다. 먼저 간단하게 Activity에서 ViewModel을 사용해보면서 이해해보자!! 위의 그림을 이해하기 위해 다음과 같이 로그를 찍..

    [JETPACK개론] DataBinding 과 data class

    DataBinding TLOVER라는 앱을 론칭하면서 DataBinding을 계속 사용해왔고, 블로그에도 개념을 정리했었지만 강의를 들으면서 부족했던 부분을 보완하고 그 부분들을 정리하고자 한다. databinding ? 이름 처럼 데이터를 연결, 결합 해줄 수 없을까? 라고 생각해보면 된다. viewbinding을 사용했을 때 해당 뷰에 있는 id에 접근해서 값을 변경해주었다. 하지만 서버에서 받은 많은 데이터들을 활용하여 값을 변경해줄 때는 binding을 통하여 데이터를 한 번에 저장한다음 xml에서 변경하면 편리할 것이다!!! 바로 databinding을 사용하면 된다! 1. gradle 파일에 다음과 같이 작성하자 buildFeatures{ dataBinding = true } 2. xml파일안..