본문 바로가기

MVVM

(5)
Architecture Patterns (MVC, MVP, MVVM) MVI에 대한 글을 작성하기에 앞서 여러 Architecture Pattern들에 대해 간단하게 정리. 1️⃣ MVC ( Model - View - Controller ) 웹 애플리케이션에서 가장 많이 쓰이는 아키텍처 패턴 중의 하나이다. ✅ Model: 애플리케이션에서 사용되는 데이터와 데이터를 처리하는 부분이며, 비즈니스 로직을 나타낸다. ✅ View: UI 컴포넌트로 사용자에게 보여지는 부분이다. ✅ Controller: 사용자의 Action을 입력받고 처리한다. 모델과 뷰 사이에서 협력자 역할을 한다. [장점] 여러 개의 뷰를 모델에 빌드할 수 있다. 변경사항이 모델 전체에 영향을 주지 않는다. 데이터를 어떠한 형태의 가공 없이 반환한다. [단점] View와 Model 사이의 의존성이 높아질 수 ..
[Android] Multi Select Gallery만들기 with Paging 앱에서 사진을 불러와야 할 때 어떻게 하셨나요?? 보통 Intent를 사용하여 핸드폰의 갤러리를 열고 사진을 가져왔을 것입니다. 이 방식으로 했을 때 제 스마트폰은 삼성갤러리로 접근이 되어 이미지 다중 선택이 되지 않습니다. (아니면 제가 방법을 모르는걸지도,,?) 그래서 저는 MediaStore에서 이미지 파일을 모두 불러온 뒤 Recyclerview에 로드해주었습니다. 많은 스마트폰에는 보통 수천개에서 수만개의 사진이 저장되어 있기 때문에 한번에 뷰에 로딩하는 것이 아니라 Paging을 이용하여 스크롤할 때마다 원하는 청크만큼 데이터를 요청하여 가져옵니다. 이렇게 하면 갤러리앱을 열지 않고 성능 저하 없이 직접 커스텀해서 사용할 수 있습니다! 1️⃣ Dependency추가 - version은 3.0...
[Android] 검색어 저장 기능 구현해보기(dagger-hilt, room, coroutine, mvvm) 지난 포스팅에서 RxJava로 naver api를 이용하여 영화 검색 기능을 만들어 보았다. 2021.03.22 - [Android] - [Android] Naver검색 api - RxJava, Retrofit, MVVM, Hilt 이번에는 영화를 검색했을 때 최근 검색어 자동저장을 Room을 이용해 만들어보았다. 이번에도 RxJava로 구현을 하려고 했으나 먼저 Coroutine으로 작성하는 법을 포스팅하고 RxJava를 더 공부한 다음 리팩토링 하고자 한다. 1) build.gradle(module: app) dependency 추가 - 다음과 같이 Room 의존성을 추가해준다. ext { retrofit_version = "2.9.0" lifecycle_version = "2.2.0" room_ve..
[Android] Naver검색 api - RxJava, Retrofit, MVVM, Hilt ReactiveX는 비동기 프로그래밍 그리고 Observable 시퀀스를 이용해 이벤트를 처리하기 위한 라이브러리이다. 이 라이브러리는 Observer Pattern을 사용한다. 필요로 하는 데이터들을 요청하여 받아오는 방식이 아닌, 데이터가 변경되면 요청을 받겠다는 구독신청을 해놓고 변경사항이 발생하면 전달 받는 방식이다. Observable은 onNext, onError, onComplete 세가지 알림을 구독자에게 전달한다. 1) onNext : Observable이 데이터 발행을 알림 2) onError : error가 발생했을을 알리고 Observable을 종료 3) onComplete : 모든 이벤트가 발행을 완료했음을 알림 RxJava2부터는 Observable과 Single 클래스 이외에도..
🔍 Data Binding with Retrofit (Kakao 웹문서 검색 API) # Databinding 앱의 데이터 소스와 레이아웃의 구성요소를 결합할 수 있게 해주는 Android JetPack의 라이브러리 중 하나. Class에서 view들을 정의해서 사용하지 않아도 되고, Data를 View에 연결시켜 두면 Data가 변할 때 따로 세팅해주지 않아도 변경되게 할 수 있다. 다음 검색 api를 이용하여 웹문서를 검색하는 방법으로 실습을 진행해보자! https://developers.kakao.com/docs/latest/ko/daum-search/dev-guide Kakao Developers 카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다. developers.kakao.com 1. b..