Explaining Google's Guide to App Architecture In Simple Terms
- Google의 앱 아키텍처 가이드는 Android 및 Kotlin 멀티플랫폼 앱 개발에 적용되는 핵심 원칙을 다룹니다. 📚
- 아키텍처는 주관적이며, 정답은 없으므로 다양한 관점을 이해하는 것이 중요합니다. 🤔
- 앱은 다양한 폼 팩터(폰, 태블릿, 폴더블, 가로/세로 모드)에서 원활하게 작동하도록 설계되어야 합니다. 📱
- 화면 회전과 같은 구성 변경 시 액티비티가 재 생성되어 상태가 손실될 수 있으므로,
ViewModel을 사용하여 UI 상태를 유지해야 합니다. 🔄
- 모바일 기기의 제한된 리소스(CPU, RAM)를 고려해야 하며, OS가 백그라운드 앱을 종료하는 '프로세스 데스'에 대비해야 합니다. 🔋
SavedStateHandle을 활용하여 프로세스 데스 발생 시에도 사용자 입력과 같은 앱 상태를 복원할 수 있도록 설계해야 합니다. 💾
- 앱은 다양한 방식으로 실행될 수 있으며(아이콘 탭, 다른 앱에서 호출 등), Android 컴포넌트들은 언제든지 파괴될 수 있으므로 중요한 데이터를 직접 저장하지 않아야 합니다. 🚀
- 확장 가능하고 유지보수하기 쉬운 코드를 위해 '관심사 분리(Separation of Concerns)' 원칙에 따라 앱을 여러 계층으로 나누어야 합니다. 🧩
- UI 계층은 사용자 인터페이스 렌더링 및 UI 상태 관리를 담당합니다. 🎨
- 도메인 계층은 앱의 비즈니스 로직과 규칙(예: 사용자 역할별 권한)을 구현하며, 앱이 해결하는 문제에 집중합니다. 🧠
- 데이터 계층은 외부 세계(원격 서버, 로컬 데이터베이스, OS 센서 등)와의 통신을 담당하며, 구현 세부 사항을 처리합니다. 🌐