본문 바로가기

안드로이드 공부 노트59

Android Jetpack - 5편 ViewModel + DataBinding + LiveData 통합 사용법 이번에는 Android Jetpack - 4편에 설명한 Data Binding을 ViewModel + LiveData를 활용해서 구현해보겠다. 본인이 이해한 것이 정확하지 않을 수 있어서 참고만 하길 바란다. 예제로는 간단히 YouTube처럼 좋아요와 싫어요 개수를 구하고 총합계를 구하는 예제로 해보겠다. # 사용법 1. bulid.gradle (Module) 추가 android { ... dataBinding { enabled = true } } 2. ViewModel + LiveData 생성 package com.example.databinding_ex.viewmodel import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewM.. 2022. 2. 24.
Android Jetpack - 4편 데이터 바인딩(Data Binding)이란? 이번에는 DataBinding을 알아보자 # 데이터 바인딩(Data Binding)이란? 간단하게 말하자면 데이터와 뷰를 연결하는 작업을 레이아웃에서 처리할 수 있게 해주는 라이브러리이다. 말로만 설명하면 이해가 안 될 수도 있기 때문에 아래 예시를 보자 fun main() { var textView = findViewById(R.id.sample_text) textView.Text("Hello") } 원래는 텍스트뷰에 문자를 넣거나 변경하기 위해 코드상에서 집어넣는 작업을 해주었다. 그래서 Data Binding을 사용하면 코드를 작성하지 않고 레이아웃 파일에서 직접 데이터 바인딩 표현식을 사용하여 작성할 수 있다. 이렇게 하면 자연스레 액티비티에는 로직만을 위한 코드만 남게 되고 뷰와 관련된 작업은 .. 2022. 2. 20.
코루틴(Coroutine)이란? 비동기 처리를 하는 데에는 몇 가지 방법이 있다. Rx는 다양한 기능을 제공하지만 진입 장벽이 높아 학습에 오랜 시간이 걸린다. 코루틴을 이용하면 비동기스럽지 않게 생긴 코드로, 메모리를 효율적으로 사용하면서 손쉽게 비동기 처리를 할 수 있다. 그래서 간단히 알아보았다. # 코루틴(Coroutine) 비동기적으로 실행되는 코드를 간소화하기 위해 Android에서 사용할 수 있는 동시 실행 설계 패턴이다. 코틀린 언어의 하위 개념인 줄 알았는데, C#이나 Python, Go 등 다양한 언어에서 이미 지원하고 있는 개념이다. Coroutine을 사용하는-즉 백그라운드 태스크가 필요한-대표적인 경우는 아무래도 1. 네트워크 리퀘스트 (Retrofit, Volley 등) 2. 내부 저장소 접근 (Room, SQ.. 2022. 2. 4.
[Android] Context란? 개발을 하다가 자주 접하는 context인데 사실 정확한 의미를 모르고 사용을 했었다. # 공식문서에서의 context Interface to global information about an application environment. This is an abstract class whose implementation is provided by the Android system. It allows access to application-specific resources and classes, as well as up-calls for application-level operations such as launching activities, broadcasting and receiving intents, .. 2022. 1. 29.
Android Jetpack - 3편 (LiveData) MVVM 패턴을 이용한 사용법 Room + ViewBinding + LiveData 통합 이번에는 Android Jetpack - 1편에 있는 예제를 이용해 Room + ViewBinding + LiveData를 다 결합해서 MVVM 패턴으로 만들어보겠다. MVVM패턴이 뭔지 궁금하다면 여기를 눌러서 보고 오는것이 이해가 빠를 거 같다 # LiveData란? Android JetPack 라이브러리의 하나의 기능이다. LiveData는 Data의 변경을 관찰 할 수 있는 Data Holder 클래스이다. LiveData는 안드로이드 생명주기(LifeCycle)를 알고 있다. 즉, 액티비티나, 프레그먼트, 서비스 등과 같은 안드로이드 컴포넌트의 생명주기(Lifecycle)를 인식하며 그에 따라 LiveData는 활성 상태(active)일 때만 데이터를 업데이트(Update) 한다. 활성 상태란 .. 2022. 1. 27.
안드로이드 Fragment LifeCycle(프래그먼트 생명 주기)알아보기! 안드로이드 Activity LifeCycle을 알고 싶다면 이곳을 참조하길 바란다. # Fragment LifeCycle(프래그먼트 생명주기) 프래그먼트 생명주기는 액티비티와 비슷하다 하지만 onAttach(), onCreateView(), onActivityCreated(), onDestroyView(), onDetach() 5가지 다른 게 있다. # 실행 순서 1. onAttach() : 프래그먼트가 액티비티와 연결될 때 호출된다. 아직 프래그먼트가 완벽하게 생성된 상태는 아니다. 2. onCreate() : 액티비티의 onCreate()와 역할이 비슷하다. 다만 액티비와 달리 view와 관련된 UI작업(ui바인딩과 같은 작업)을 할 수 없다. 초기화 작업을 여기서 실행하면 된다. 3. onCreat.. 2022. 1. 23.