본문 바로가기

728x90
반응형

Android/Architecutre

(7)
안드로이드 Clean Architecture 구현하기 Clean Architecture 위의 Uncle Bob Clean Architecture(CA)는 오늘날 많은 어플리케이션의 핵심 Architecture가 되었습니다. Dependecy Rule 하위 계층으로 갈수록 상위 계층을 몰라야 합니다. 내부 원의 어떤것도 외부 원의 어떤것에 대해 전혀 알 수 없습니다. 특히, 외부 원에 선언된 이름(class, function, variable 등)은 내부 원에 있는 코드에서 언급되지 않아야 합니다. CA의 각 계층 Entities : 비지니스 규칙(business rule) (예: 근무시간에 따라 급여를 계산하는 공식, 직원에 대한 가장 기본적인 데이터가 들어있는 POJO) Use cases : 단순히 실행 가능한 작업. Intereactor라고도 함. an..
[안드로이드 Service] MVVM구조에서 BluetoothLE Service 사용하기 BLE와 블루투스의 안드로이드 예제를 포스팅 하였었습니다. [Android/통신] - [안드로이드 Kotlin] BLE(Bluetooth Low Energy) 통신 예제 [Android/통신] - [안드로이드-아두이노] bluetooth classic 자동 페어링&연결 / 데이터 송,수신 글은 메서드 위주로 설명하였습니다. 위 글들 하단의 github 소스 코드를 먼저 보면 코드를 MVVM구조로 구성하면서 BleRepository를 만들어서 Repository에 BLE 메서드를 전부 구현하였었습니다. MVVM 구현 소스 보기 하지만 Service 사용의 필요를 느끼면서, 메서드를 Service로 옮기고, Service를 어디 둘지 고민하게 되었습니다. Service 사용 이유? 만약 Activity와 B..
[안드로이드 MVVM] Repository 에서 ViewModel, View(Activity,Fragment)에 Event/Data 전달하기 ― Repository에서의 LiveData ? LiveData를 이용한 데이터 Observing & View Update MVVM 구조에서 Repository에서 ViewModel의 메서드를, ViewModel에서 Activity등의 view를 참조하면 안되었습니다. 위 그림의 구조처럼 View는 ViewModel을 계속 관찰, ViewModel은 Repository의 데이터를 계속 관찰하여 View를 업데이트 해야합니다. ViewModel에서 데이터 변화에 따라 View를 변화시키고 싶을 때, Event를 발생하고 싶을 때 Event Wrapper를 사용해야 한다고 포스팅 하였습니다. [Android/이론] - ViewModel과 View(Activity, Fragment)간의 이벤트 처리― Event Wrapper 사용하기 Event Wrappe..
MVVM 시작하기(4) ― Repository, Model-View 연동 MVVM 패턴으로 Room, LiveData 사용하기 마지막 글입니다. [Android/이론] - MVVM 시작하기(1) ― LiveData, Room을 MVVM패턴으로 사용해보자 [Android/이론] - MVVM 시작하기(2) ― Room Entity, Dao, Database 만들기 [Android/이론] - MVVM 시작하기(3) ― ViewModel, 데이터 바인딩(Data Binding) Room Database(Model), View, ViewModel을 만들어봤습니다. 이제 ViewModel에서 Model에 접근하기 위해 Repository를 만들어야 합니다. Repository Repository는 쿼리를 관리하고 여러 백엔드를 사용할 수 있도록 합니다. Repository.kt clas..
MVVM 시작하기(3) ― ViewModel, 데이터 바인딩(Data Binding) 앞에서 model부분인 Room의 Entity, Dao, Database를 만들어 주었습니다. 이전 글을 참조해 주세요. [Android/이론] - MVVM 시작하기(1) ― LiveData, Room을 MVVM패턴으로 사용해보자 [Android/이론] - MVVM 시작하기(2) ― Room Entity, Dao, Database 만들기 이제 View와 Model을 연결하는 ViewModel을 만들고, 연결해야하는데요. 이에 앞서, 또 한가지 알아야할 것은, Data Binding입니다. Data Binding을 설명하면서 View와 ViewModel을 만들어 보겠습니다. ViewModel 먼저, View와 Model을 연결하는 ViewModel을 만들어 줍니다. 종속성 추가 // Lifecycle co..
MVVM 시작하기(2) ― Room Entity, Dao, Database 만들기 앞의 글을 참조해 주세요. [Android/이론] - MVVM 시작하기(1) ― LiveData, Room을 MVVM패턴으로 사용해보자 먼저, 데이터를 저장할 Room의 Entity, Dao, Database를 만들어 주겠습니다. Room 종속성 추가 apply plugin: 'kotlin-kapt' ... dependencies{ ... // Room components def roomVersion = '2.2.5' implementation "androidx.room:room-runtime:$roomVersion" kapt "androidx.room:room-compiler:$roomVersion" implementation "androidx.room:room-ktx:$roomVersion" andr..
MVVM 시작하기(1) ― LiveData, Room을 MVVM패턴으로 사용해보자 MVVM(Model-View-ViewModel) MVVM 패턴은 ViewModel을 사용하여 Model과 View를 분리하는것이 특징이죠. View는 xml layout 뿐 아니라 Activity, Fragment등이 되고, Model은 내부/외부 데이터가 됩니다. Repository로 Room이나 다른 웹서비스등 리모트 데이터 소스에 접근하고, ViewModel에 callback해주면, ViewModel이 observer에 response해줍니다.(View가 관찰하고 있음.) 이로써 코드 분리/역할 분리가 되어 서로 종속성 제거도하고, 데이터와 뷰가 불일치 할 확률이 줄어들게 됩니다. MVVM 패턴을 시작해보기 위해, LiveData와 Room을 사용해 보겠습니다. (또는, LiveData와 Room을..

728x90
반응형