목록Android/Design Patterns (7)
시배's Android

끊임없이 진화하는 안드로이드 개발 세계에서 유지 관리가 가능하고 확장 가능하며 구조가 잘 짜여진 애플리케이션을 구축하는 것은 매우 중요합니다. 모델-뷰-모델(MVVM) 아키텍처는 이러한 과제를 정면으로 해결하는 가장 강력한 디자인 패턴 중 하나로 부상했습니다. MVVM은 우려 사항을 명확하게 분리하고 테스트 가능성을 높임으로써 안드로이드 개발자들 사이에서 널리 채택되고 있습니다. 이 포괄적인 가이드에서는 안드로이드 MVVM 아키텍처의 복잡성을 자세히 살펴보고, 주요 구성 요소, 장점 및 모범 사례를 살펴보고, 안드로이드 프로젝트에서 MVVM을 마스터할 수 있는 지식을 갖추도록 도와드립니다. Understanding MVVM Architecture MVVM 아키텍처는 고전적인 모델-뷰-컨트롤러(MVC) 패..

Orbit + Compose + Pokedex API Android 앱 개발에서 최신 기술인 Orbit와 Compose를 활용하여 Pokedex API를 사용하여 국룰 Pokedex 앱을 구현해보겠습니다. Pokedex GitHub - koreatlwls/Orbit-MVI-Compose-Pokedex: Orbit-MVI-Compose-Pokedex Orbit-MVI-Compose-Pokedex. Contribute to koreatlwls/Orbit-MVI-Compose-Pokedex development by creating an account on GitHub. github.com Paging3를 활용하여 Infinite Scroll을 구현하였습니다. Room과 Retrofit2를 활용하여 네트워크를..

MVI and Orbit 이 다이어그램은 Orbit 시스템(또는 MVI/Redux/Cycle과 유사한 시스템)이 간단한 원리로 작동하는 방식을 간략하게 보여줍니다. UI는 비동기적으로 비즈니스 컴포넌트에게 액션을 보냅니다. 비즈니스 컴포넌트는 들어오는 액션을 비즈니스 로직으로 변환합니다. 비즈니스 컴포넌트는 이후 이벤트를 더 아래 단계로 발생시킵니다. 모든 이벤트는 시스템의 현재 상태와 함께 reduce되어 새로운 상태를 생성합니다. 이 상태는 다시 UI에게 발행되고, UI는 상태에 따라 자신을 렌더링합니다. 중요한 점은 UI가 비즈니스 결정을 스스로 내릴 수 없다는 것입니다. UI는 입력 상태에 따라 자신을 렌더링하는 방법만 알아야 합니다. Orbit components 위의 로직을 실제 구성 요소에 ..

MVI에 대해 생각할 때, 프로세스는 세 가지 핵심 개념으로 요약됩니다: 단방향 데이터 흐름 - 즉, 데이터가 한 방향으로 흐릅니다. Intent(의도) 처리는 논블로킹(non-blocking)입니다. 상태는 불변(immutable)합니다 - Model 외부에서는 변경할 수 없습니다(일반적으로 Android에서는 ViewModel 내부에서 처리됩니다). 개념적으로 MVI는 복잡하지 않으므로, 왜 직접 구현하는 대신 프레임워크를 사용해야 할까요? MVI 스타일의 프레임워크를 작성하는 것은 보다 복잡한 일입니다: - 기기 회전 및 프로세스 종료와 같은 라이프사이클 문제를 처리해야 합니다. - 다양한 쓰레딩 문제가 발생할 수 있습니다. - 멀티쓰레딩 코드와 함께 프레임워크에 대한 테스트를 작성해야 합니다. -..
Mavericks + Compose + Naver API Android 앱 개발에서 최신 기술인 Mavericks와 Compose를 활용하여 Naver API를 사용하여 책을 검색하는 앱을 구현해보겠습니다. MavericksState data class SearchUiState( val keyword: String = "", val books: Async = Uninitialized ) : MavericksState 책 검색 앱에서 사용할 SearchUiState 클래스는 Mavericks의 MavericksState 인터페이스를 구현합니다. 이 클래스는 책 검색 UI의 상태를 관리하고, 검색어 키워드와 검색 결과인 책 목록을 저장합니다. Async 클래스는 비동기 작업을 처리하기 위해 Mavericks..
Mavericks 매버릭스(Mavericks)는 Airbnb, Tonal 및 기타 대형 앱에서 사용되는 안드로이드 MVI 프레임워크로, 쉽게 배울 수 있으면서도 복잡한 플로우를 지원할만큼 강력합니다. 매버릭스를 만들 때 목표는 제품을 더 쉽고 빠르게, 더 재미있게 개발하는 것이었습니다. 우리는 매버릭스가 성공하기 위해 안드로이드 개발에 처음으로 참여하는 사람들에게도 쉽게 배울 수 있어야 하지만 Airbnb에서 가장 복잡한 화면도 지원할 수 있어야 한다고 믿습니다. 매버릭스는 Airbnb의 수백 개의 화면에서 사용되며, 새로운 화면의 100%에서 사용되고 있습니다. 또한 10억 개 이상의 다운로드를 가진 앱부터 작은 샘플 앱까지 무수히 많은 다른 앱에서도 채택되고 있습니다. 매버릭스는 Android Jet..

안드로이드 앱 개발에서 MVI (Model-View-Intent) 아키텍처는 현재 많은 개발자들에게 인기가 높아지고 있는 패턴입니다. MVI는 앱의 상태 관리와 UI 처리를 효과적으로 분리하여 앱의 유지보수성을 향상시키고, 디버깅과 테스트를 용이하게 만드는 장점을 가지고 있습니다. MVI 아키텍처란? MVI 아키텍처는 기존의 MVVM(Model-View-ViewModel) 패턴에서 발전된 아키텍처로, 상태 중심의 설계를 강조합니다. 앱의 상태를 하나의 단일 소스로 관리하고, 상태가 변경될 때마다 UI를 업데이트하는 방식을 채택합니다. MVI에서는 세 가지 주요 구성 요소가 있습니다. Model: 앱의 상태를 나타내는 데이터 모델입니다. 상태 변경에 따라 업데이트되며, 뷰와 독립적으로 존재합니다. View..