5_미래
| topics | 500-모바일개발 502 Android |
| types | 이론 |
| tags | #android #compose #modern |
| references | developer.android.com/jetpack/compose developer.android.com/modern-android-... |
Android 개발의 미래
Android 개발의 현대적인 방향성을 정리한다.
Jetpack Compose
기존 XML 기반 UI에서 선언형 UI로 전환하는 흐름이다.
XML vs Compose
| 구분 | XML | Compose |
|---|---|---|
| 방식 | 명령형 | 선언형 |
| 언어 | XML + Kotlin | Kotlin only |
| 상태 관리 | 수동 | 자동 리컴포지션 |
| 프리뷰 | 제한적 | 실시간 |
Compose 예시
@Composable
fun Greeting(name: String) {
Text(text = "Hello, $name!")
}
@Composable
fun UserCard(user: User) {
Column(
modifier = Modifier
.padding(16.dp)
.fillMaxWidth()
) {
Text(
text = user.name,
style = MaterialTheme.typography.h6
)
Text(
text = user.email,
style = MaterialTheme.typography.body2
)
}
}
왜 Compose를 쓰냐면: Flutter처럼 선언형 UI라 코드가 직관적이다. XML과 Kotlin을 왔다갔다할 필요가 없다.
Modern Android Development (MAD)
Google이 권장하는 현대적인 Android 개발 방식이다.
| 구분 | 권장 기술 |
|---|---|
| UI | Jetpack Compose |
| 아키텍처 | MVVM + Clean Architecture |
| 비동기 | Kotlin Coroutines + Flow |
| DI | Hilt |
| 네트워킹 | Retrofit + OkHttp |
| 로컬 DB | Room |
Flutter와 비교
| 구분 | Native Android | Flutter |
|---|---|---|
| 언어 | Kotlin | Dart |
| UI 프레임워크 | Compose | Flutter Widget |
| 크로스 플랫폼 | Android only | iOS + Android + Web |
| 성능 | 최상 | 좋음 |
| 학습 곡선 | 높음 | 중간 |
언제 Native를 쓰냐면: 플랫폼 특화 기능(카메라, 센서, 백그라운드)이 많거나, 최상의 성능이 필요할 때. 그 외에는 Flutter도 좋은 선택이다.
관련 문서
- 4_화면 구성 - 기존 XML UI
- 1_setting - 프로젝트 설정
- flutter mvvm - Flutter 아키텍처 비교