본문 바로가기
Android

대세를 따라가기 위한 Study

by _dreamgirl 2019. 12. 23.
반응형

DI

- @NonNull, @PrimaryKey, @ColumnInfo

- @Query(질의문)

- @Entity(tableName="")

- Dagger

 

Langauage

- RxJava2

- RxAndroid

 


Test

- junit

- mock

- espresso

 


Architecture components

- room

- ViewModel

- RecyclerView, RecyclerView.ViewHolder


새롭게 알게 된 사실들


- Flowable : Observable 과 비교하는 개념, 수요보다 공급이 많을 때 이슈를
OOME(out of Memory Exception) 과 같은 에러 발생에 버퍼를 이용하여 대응하는 기능이라고 함.보통 1000개 이하의 요소를 처리시에는 Observable을 쓰고 그 이사은 flowable을 구상하는 듯


- CompositeDisposable : 모든 Observable을 안드로이드 라이프 사이클에 맞춰 메모리 해제 하기 위해 사용


- AAC(Android Architecture Components) : 2018년 Google I/O 에서 jetpack 소개하며 AAC도 포함함. AAC에는 Data Binding, LifeCycle, LiveData, Navigaion, Paging, Room, ViewModel, WorkManager 제공


- MVP : View 와 presenter이 1:1 매칭 관계에 있고 결합도가 높다. presenter가 View을 알고 갱신을 요구하면 View가 갱신하는 구조. 결합도가 높아서 MVVM이 요구됨


- MVVM : ViewModel이 View을 알지 못하게 구성. ViewModel이 변경 되더라도 View는 변경하지 않는 구조로 설계. 서로 다대다 구조로 구성할 수 있고 결합도를 낮추는게 초점. ViewModel에서 View를 갱신할 때 DI를 이용한다.


- AndroidX : 3.2 Studio Version 이상에서 support library 28.0.0이 AndroidX로 변경하여 사용된다.

- 코틀린 : 코틀린에서 static은 없고 Companion이란 객체를 사용한다.

- RxJava : Java VM Implementations of Reactive Extensions. 이벤트와 비동기를 구성하는 라이브러리. 옵저버 패턴을 상속받아져 있고 동시성, 스레드 안정성, 동시성 데이타 구조에 대한 우려를 추상화하는 동시에 선언적으로 시퀀스를 구성할 수 있는 연산자를 추가한다. 2018년 3월 31일에 1.점대 버전이 종료 되었고 2020년 3월 31일까지 2.점대 버전이 업데이트 될 예정이다.
3.점대는 Reactive-Streams 기초하여 디펜던시를 가진다. 자바6이상을 지원하고 안드로이드 2.3 이상을 지원한다.


- Dagger : 의존성 주입. Inject, Component, Subcomponent, Module, Scope 다섯가지가 있음. Inject을 요청하면 연결된 Component가 Module로 객체를 생성하여 반환. 연결된 Module은 의존성 객체를 생성하고 Inject으로 요청받은 인스턴스에 생성한 객체를 주입.Subcomponent는 Component의 계층관계를 만들고 의존성을 검색 후 부모로 올라가면서 검색한다. Module이 Component의 의존성 객체를 생성하고 생성 후 Scope에 따라 관리한다. Scope는 생성된 객체의 라이프 사이클 범위이다. Module에서 Scope를 보고 객체를 관리한다.

 


참고 사이트

https://developer.android.com/topic/libraries/data-binding/architecture?hl=ko

https://developer.android.com/jetpack/androidx/migrate

https://developer.android.com/studio/build/multidex?hl=ko

https://github.com/ReactiveX/RxJava

반응형

'Android' 카테고리의 다른 글

예약 게시  (0) 2020.09.01
안드로이드, 구글 라이브러리 AAC 따르기 [1]  (0) 2020.04.09
안드로이드 개발자 사이트 스터디  (0) 2020.04.01
Android 10  (0) 2020.03.28
코틀린  (0) 2020.02.22

댓글