본문 바로가기

Mobile App64

[안드로이드] - Data Layer (데이터 레이어) 데이터 레이어 데이터 영역은 0~ 여러개의 데이터 소스를 각각 포함할 수 있는 저장소로 구성된다. 앱에서 처리하는 다양한 유형의 데이터 별로 저장소 클래스(Respository Class)를 만들어야한다. 저장소 클래스(Repository Class) 작업 앱의 나머지 부분에 데이터 노출 데이터 변경사항을 한 곳에 집중 여러 데이터 소스 간의 충돌 해결 앱의 나머지 부분에서 데이터 소스 추상화 비즈니스 로직 포함 각 데이터 소스 파일 네트워크 소스 로컬 데이터베이스 와 같은 하나의 데이터 소스만 사용해야 한다. 데이터 소스 클래스는 데이터 작업을 위해 애플리케이션과 시스템 간의 가교 역할을 한다. 계층 구조의 다른 레이어(UI Layer, Domain Layer)는 데이터 소스에 직접 접근해서는 안된다... 2022. 7. 26.
[안드로이드] - 도메인 레이어 (Use Case) 도메인 레이어 도메인 레이어는 UI 레이어와 데이터 레이어 사이에 있는 선택적 레이어다. 또한, 도메인 레이어는 복잡한 로직이나 여러 ViewModel에서 재사용되는 간단한 비즈니스 로직의 캡슐화를 담당한다. 따라서, 복잡성을 처리하거나, 재사용성을 선호하는 등 필요한 경우에만 사용해야 한다. 도메인 레이어 이점 코드 중복을 방지한다. 도메인 레이어 클래스를 사용하는 클래스의 가독성을 개선한다. 앱의 테스트 가능성을 높인다. 책임을 분할하여 대형 클래스를 피할 수 있다. 그리고 도메인 레이어 클래스를 간단하고 가볍게 유지하려면, 각 사용 사례(Use Case)에서는 기능 하나만 담당해야 하고 변경 가능한 데이터를 포함해서는 안된다. 대신, 데이터 레이어에서 변경 가능한 데이터를 처리한다. 가이드 이름 지.. 2022. 7. 25.
[안드로이드] - UI Layer Architecture UI 레이어 아키텍처 UI 라는 용어 - 사용하는 API와 관계없이 데이터를 표시하는 활동 및 프래그먼트와 같은 UI 요소를 가리킨다. 데이터 레이어의 역할 앱 데이터를 사용하고, UI 에서 쉽게 렌더링할 수 있는 데이터로 변환합니다. UI 렌더링 가능 데이터를 사용하고 사용자에게 표시할 UI 요소로 변환합니다. 이렇게 조합된 UI 요소의 사용자 입력 이벤트를 사용하고 입력 이벤트의 결과를 필요에 따라 UI 데이터를 반영합니다. 1~3단계를 필요한 만큼 반복한다. 위의 데이터 레이어의 역할을 알면, UI 와 데이터 레이어의 상호작용이 어떤식으로 이루어지는 지를 알 수 있다. UI 상태 정의 사용자가 보는 항목이 UI 라면 UI 상태는 앱에서 사용자가 봐야 한다고 지정하는 항목을 말한다. 동전의 양면과 마.. 2022. 7. 23.
[안드로이드] - Android SharedPreferences 데이터를 저장하기 위해선 3가지 방법이 있다. SharedPreferences File 로컬 DB Library (Room, SQLite) 개발을 하다보면 계속적으로 필요한 값을 DB로부터 받아 와야할 때가 있다. 이러한 값들을 매번 DB를 통해 호출하다보면, 애플리케이션 성능이 떨어진다. 속도 측면에서는 SharedPreferences 가 가장 빠르기 때문에 작업할 때 빈번하게 사용된다. 주로, 자동 로그인 여부 판별하기 위한 체크용도, 토큰 값 저장 등에 쓰며, 애플리케이션 내에서 간단한 데이터를 저장하는 경우에 DB를 통하기보단 이 방법을 많이 사용하다. SharedPreferences 애플리케이션 내에 개별 데이터 저장소에 xml 파일을 만든 뒤, 그 파일에 Integer, String 등의 데이.. 2022. 7. 21.
[안드로이드] - Android Preferences data storage 안드로이드 시스템에서 제공되는 앱 데이터 저장 종류 중에, 앱 환경설정 데이터 저장소에 대해서 알아보자. 환경설정 라이브러리에서 저장한 Preference 값을 저장하고 사용하는 방법을 설명하겠다. 환경설정 데이터 저장소 데이터 유지하는 방법 SharedPreferences : 기본적으로 Preference 는 SharedPreferences 를 사용하여 값을 저장한다. SharedPreferences API 를 사용하면 애플리케이션 세션에 걸쳐 저장된 파일에서 간단하기 Key-Value 쌍을 읽고 쓸 수 있다. 환경설정 라이브러리는 비공개 SharedPreferences 인스턴스를 사용하므로 애플리케이션만 인스턴스에 엑세스할 수 있다. PreferenceDataStore : 환경설정 라이브러리는 기본적.. 2022. 7. 21.
[안드로이드] - Android Data & File Repository (안드로이드 데이터) 데이터 및 파일 저장소 개요 Android는 다른 플랫폼의 디스크 기반 파일 시스템과 유사한 파일 시스템을 사용한다. 안드로이드 시스템에서 제공되는 앱 데이터 저장 옵션 앱별 저장소 : 내부 저장소 볼륨 내의 전용 디렉터리 또는 외부 저장소 내의 다른 전용 디렉터리에 앱 전용으로 사용되는 파일을 저장 한다. 다른 앱이 엑세스해서는 안 되는 민감한 정보는 내부 저장소 내의 디렉터리에 저장한다. 공유 저장소 : 미디어, 문서, 기타 파일을 비롯하여 앱이 다른 앱과 공유해야 하는 파일을 저장한다. 환경설정 : 비공개 Primitive Data를 키-값 쌍으로 저장한다. 데이터베이스 : Room 지속성 라이브러리를 사용하여 구조화된 데이터를 비공개 데이터베이스에 저장한다. 위 앱 데이터 저장옵션은 아래와 같은.. 2022. 7. 18.
[안드로이드] - Android Compatibility (앱 호환성) 앱 호환성 앱이 플랫폼의 특정 버전(일반적으로 최신 버전)에서 올바르게 실행 버전마다 개인 정보 보호와 보안을 향상하는 필수 변경사항과 OS 전반적인 사용자 환경을 개선하는 변경사항 구현을 포함한다. 플랫폼 동작 변경사항 유형 앱은 새 플랫폼 버전에서 실행될 때 두 가지 유형의 변경사항으로 영향을 받을 수 있다. 모든 앱의 변경사항 이러한 변경사항은 앱의 targetSdkVersion 과 관계없이 변경사항이 적용된 버전의 Android 에서 실행되는 모든 앱에 영향을 준다. 새로운 Android 버전이 출시될 때마다, 개발자 프리뷰 및 베타 버전으로 사전에 이러한 변경사항에 관해 앱 호환성을 테스트 해야한다. Pixel 및 다른 기기의 업데이트는 새로운 Android 버전이 Android 오픈 소스 프로.. 2022. 7. 18.
[안드로이드] - Android Architecture (안드로이드 아키텍처) 일반 아키텍처 원칙 애플리케이션 데이터와 상태를 저장하는 앱 구성요소를 사용할 수 있다면, 앱을 대신 어떻게 설계를 해야할까? 안드로이드 앱은 크기가 커지기 때문에 앱을 확장하고 앱의 견고성을 높이며 앱을 더 쉽게 테스트할 수 있도록 아키텍처를 정의하는 것이 중요하다. 앱 아키택처는 앱의 부분과 그 각 부분에 필요한 기능 간의 경계를 정의한다. 관심사 분리 Activity 또는 Fragment 에 모든 코드를 작성하는 실수는 흔히 일어난다. 이러한 UI 기반의 클래스는 UI 및 운영체제 상호작용을 처리하는 로직만 포함해야 한다. 이러한 클래스를 최대한 가볍게 유지하여 컴포넌트 생명주기와 관련된 많은 문제를 피하고, 그러한 클래스의 테스트 가능성을 개선할 수 있다. Activity 또는 Fragment 구.. 2022. 7. 15.