💡안드로이드 아키텍처 패턴에서 Data Layer 역할을 담당하는 Repository, DataSourece에 대하여 기록하였습니다. 아키텍처 원칙앱 컴포넌트를 설계할 때 데이터 모델에서 UI를 도출해야 하는데 가급적이면 지속적인 모델이 권장됩니다.이를 기반으로 앱 아키텍처를 구축하면 테스트 가능성과 견고성이 높아지는 결과를 얻을 수 있습니다.데이터 모델은 UI요소나 기타 컴포넌트들과 독립되어 있는데, 지속적인 데이터 모델이 이상적인 아키텍처 패턴이 될 수 있습니다.지속적인 데이터 모델OS에서 리소스를 확보하기 위해 앱을 제거해도 데이터가 삭제되지 않습니다.네트워크 연결이 불안정하거나 비연결 상태에도 앱이 동작 합니다.SSOTSingle source of truth의 약자로 단일 소스 저장소를 뜻합니다..
💡여러 종류의 목록 뷰를 하나의 스크롤 영역에 구현하기 위해 학습한 내용을 기록하였습니다. 개요인스타그램을 포함한 여러 앱에서 여러 종류의 목록 뷰를 하나의 스크롤 영역에 표시합니다.리싸이클러뷰로 이를 구현하려고 할 때 여러가지 방식의 차이를 비교하려 합니다.NestedScrollViewNestedScrollView는 ScrollView와 동일하게 동작하지만 중첩된 스크롤을 지원합니다.NestedScrollView | Android Developers NestedScrollView | Android Developersandroidx.core.accessibilityservicedeveloper.android.comNestedScrollView는 View의 스크롤 X or Y 위치가 변경될 때 호..
💡구성 변경 시 한 번의 데이터 변화를 관찰하기 위한 UI Event 활용법에 대하여 기록하였습니다. EventLiveData와 같은 Observable 타입을 활용하면 변경 사항을 구독하여 데이터를 지속적으로 노출하고 관찰할 수 있습니다.하지만 스낵바, 토스트, navigation 전환 등의 일회성 이벤트는 한 번의 데이터 변화만을 필요로 합니다.이 때 여러 번 노출되지 않도록 별도의 Event wrapper class를 활용하거나 SingleLiveData 타입 등을 활용할 수 있습니다.안드로이드에서 활용할 수 있는 방안은 SingleLiveData와 Event 패턴을 사용할 수 있습니다. LiveData를 이러한 환경에 활용할 경우 활성화될 때마다 데이터를 다시 전달하게 되며, 비효율적인 리소스를..
💡우아한테크코스 과정에서 학습한 MockWebServer에 대하여 기록하였습니다. MockWebServerMockWebServer는 네트워크 통신을 테스트할 때 가짜 서버를 만들어 HTTP 요청을 처리하고, 미리 정의된 응답을 반환하는 테스트 도구입니다.이 라이브러리는 OkHttp에서 제공하며 Retrofit, OkHttp 등의 네트워크 라이브러리와 함께 단위 테스트를 작성할 때 유용하게 사용됩니다.https://github.com/square/okhttp/tree/master/mockwebserver okhttp/mockwebserver at master · square/okhttpSquare’s meticulous HTTP client for the JVM, Android, and GraalVM. ..
💡안드로이드 네트워크 통신을 위한 HTTP 클라이언트 라이브러리에 대하여 학습한 내용을 기록하였습니다. 개요OkHttp와 Retrofit은 안드로이드에서 네트워크 통신을 쉽게 처리할 수 있도록 도와주는 HTTP 클라이언트 라이브러리입니다.둘 다 네트워크 요청을 관리하는 데 매우 유용하지만, Retrofit은 상위 레벨의 라이브러리로 OkHttp를 내부적으로 사용하며, 더 간단한 API를 제공하여 네트워크 작업을 쉽게 처리할 수 있도록 도와줍니다.OkHttp와 Retrofit을 학습하기 위해 필요한 개념을 함께 정리하였습니다.HTTPHypeText Transfer Protocol의 약자로, 인터넷 상에서 HTML 문서와 같은 데이터를 링크 기반으로 주고받기 위한 프로토콜(통신 규약)입니다.서버-킅라이언트..
💡자주 사용하는 이미지 로딩 라이브러리인 Glide에 대하여 학습 내용을 기록하였습니다. GlideGlide는 안드로이드에서 이미지 로딩 및 캐싱을 위한 라이브러리로, 네트워크 또는 로컬에서 이미지를 효율적으로 가져와 로드할 수 있습니다.메모리 효율, 디스크 캐시, 애니메이션 지원 등 다양한 기능을 제공하며, 큰 이미지 파일이나 비동기 이미지 로드가 필요한 경우 유용하게 사용됩니다.https://github.com/bumptech/glide GitHub - bumptech/glide: An image loading and caching library for Android focused on smooth scrollingAn image loading and caching library for Androi..