💡안드로이드 4대 컴포넌트 중 하나인 Service에 대하여 정리하였습니다. ServiceService는 백그라운드에서 실행되는 작업을 처리하기 위한 컴포넌트입니다.사용자가 직접 상호작용하지 않는 작업을 처리하며, 애플리케이션이 포그라운드에 없어도 계속해서 동작할 수 있습니다.주로 네트워크 트랜잭션 처리, 데이터베이스, 파일 다운로드, 음악 같은 장기 실행 작업을 처리하는 데 적합합니다.서비스 개요 | Background work | Android Developers 서비스 개요 | Background work | Android Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. 서비스 개요 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를..
💡네트워크 요청 중에 발생할 수 있는 에러에 대해 알아보고, 해결 방안을 기록하였습니다. HTTPAndroid에서 HTTP 에러는 주로 네트워크 요청 중에 발생하며, 이는 서버 간의 통신이 실패하거나 서버가 요청을 처리하지 못할 때 나타냅니다.이는 HTTP 상태 코드, 네트워크 연결 문제, 서버의 응답 처리 오류 등의 이유가 있을 수 있습니다.아래와 같은 일반적인 오류로 분류할 수 있고, JSON 파싱이나 SSL 인증서 오류도 발생할 수 있습니다.4XXHTTP 상태 코드 4XX를 가지면 클라이언트 오류로 분류합니다.400 : Bad Resquest401 : Unauthorized403 : Forbidden404 : Not Found5XXHTTP 상태 코드 5XX를 가지면 서버 오류로 분류합니다.500 ..
💡우아한테크코스 과정에서 적관용한 상태 관리와 UIState에 대하여 정리하였습니다. 상태 관리UIState는 상태를 저장하고 관리하는 패턴을 활용하는 중요한 개념입니다.Android에서 애플리케이션에서 UI 및 데이터를 관리하는 중요한 개념입니다. 특히 MVVM 패턴이나 Jetpack Compose 등에서 상태 관리는 필수적인 요소이며, 이를 통해 UI가 일관성 있게 데이터를 반영하고 사용자의 액션에 따라 동적으로 업데이트 할 수 있습니다.State ManageMent안드로이드 애플리케이션은 사용자 인터페이스가 아래와 같이 다양한 상태를 가질 수 있습니다.LoadingSuccessErrorInitUI 상태를 나타내는 클래스나 상태 객체를 활용하면 UI와 ViewModel이 상호작용하여 상태에 따른 U..
💡안드로이드에서 리소스를 쉽게 관리하기 위해 사용하는 Resource Provider에 대하여 기록하였습니다. Resource ProviderResource Provider는 안드로이드에서 리소스를 더 쉽게 관리하고 테스트 가능성을 높이기 위해 사용하는 패턴입니다.XML리소스(문자열, 색상, 배열 등)와 같은 리소스를 코드 내에서 주입하고 ViewModel이나 다른 클래스에서 사용하면서도 리소스에 직접 접근하지 않도록 만들어줍니다.ViewModel이나 Repository에서는 Context에 직접 접근하는 것이 권장되지 않습니다. Resource Provider 패턴을 사용하여 리소스에 대한 접근을 인터페이스로 추상화할 수 있습니다.Resource Provider의 역할Context에 대한 의존성을 줄..
💡여러 종류의 목록 뷰를 하나의 스크롤 영역에 구현하기 위해 학습한 내용을 기록하였습니다. 개요인스타그램을 포함한 여러 앱에서 여러 종류의 목록 뷰를 하나의 스크롤 영역에 표시합니다.리싸이클러뷰로 이를 구현하려고 할 때 여러가지 방식의 차이를 비교하려 합니다.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를 이러한 환경에 활용할 경우 활성화될 때마다 데이터를 다시 전달하게 되며, 비효율적인 리소스를..