목록안드로이드/안드로이드 공부 (9)
SW 공부노트

Room DB Room은 앱을 견고하고 유지보수성이 뛰어나도록 만들어주는 라이브러리 모음인 AAC 중 하나이다. Room은 SQLite DB를 모두 사용할 수 있고, 더 쉽게 사용할 수 있도록 하는 라이브러리이다. Room 데이터베이스는 SQLite를 사용하기 위한 액세스 포인트이다. AAC의 다른 컴포넌트인 LiveData, ViewModel 등을 사용해 더 간편하게 DB를 관리하고 UI를 갱신할 수 있다. Room의 구성요소는 다음과 같다. Database: 기본 앱 데이터베이스 연결을 위한 기본 액세스 포인트 Dao(Data Access Object): 데이터베이스에 접근하는 함수를 포함한다. Model(Entity): 데이터베이스 내 테이블을 클래스로 나타낸 것이다. Gradle 설정 // Roo..

ViewModel ViewModel은 뷰에 표시되는 앱 데이터 모델으로 UI 관련 데이터를 저장하고 관리해주는 역할을 한다. 생명주기에 영향을 많이 받는 UI 컨트롤러가 데이터에 관여하지 않도록 따로 분리한 것이다. ViewModel은 Android 프레임워크에서 View가 소멸되고 다시 생성되어도 데이터를 계속해서 유지한다는 큰 장점이 있다. 따라서 구성이 변경되는 동안 데이터가 유지되기 때문에, 다시 생성된 뷰에서 데이터를 즉시 사용할 수 있다. ViewModel은 액티비티 혹은 프래그먼트와 다른 생명주기를 가진다. finish 메서드가 호출되거나, 사용자가 직접 액티비티를 종료했을 때 onCleared 메서드를 통해 소멸된다. ViewModel 객체의 범위는 ViewModel을 가져올 때 ViewM..
Retrofit Retrofit은 REST API 통신 라이브러리로 가장 많이 사용되는 대표적인 라이브러리이다. 동일 OkHttp 라이브러리의 상위 구현체로 OkHttp를 네트워크 계층으로 활용하고 그 위에 구축된다. Async Task 없이 Background Thread를 실행한다. -> Callback을 통해 Main Thread에서 UI 업데이트 Retrofit 장점 빠른 속도 : 자체적 비동기 실행과 스레드 관리가 가능해 속도가 빠르다. 간단한 구현 : 반복된 작업을 라이브러리로 넘겨 처리한다. HttpUrlConnection의 Connection / Input & OutputStream / URL Encoding 생성 및 할당의 반복작업 OkHttp의 쿼리 스트링, Request / Respo..

Binding Gradle.build(module) android 블록 내 다음 코드를 추가한다. buildFeatures { dataBinding true viewBinding true } 바인딩 옵션을 활성화시키므로써 레이아웃 파일에 바인딩 클래스가 생기고, 선언해두었던 뷰들의 id가 참조된다. 또한, 뷰를 데이터 개체와 결합하는 데 필요한 클래스도 자동으로 생성된다. ViewBinding 뷰 바인딩을 적용하기 전에는 액티비티에서 텍스트뷰의 값을 변경하는 등의 UI 컴포넌트와 데이터 관련 작업을 하기 위해, findViewById를 이용해 xml의 뷰와 변수를 연결시켜줘야 했다. 앱을 개발하다보면 알다시피 하나의 레이아웃에는 수 많은 컴포넌트가 있기 때문에 코드가 항상 길어지고 지저분했다. 뷰 바인딩..