2023년 9월 12일 드로이드나이츠에서 발표한 <Jetpack Media3로 좋은 콘텐츠 소비 경험 구현하기>에서 소개한 데모 앱을 공개합니다.
https://speakerdeck.com/workspace93/jetpack-media3ro-joheun-kontenceu-sobi-gyeongheom-guhyeonhagi
각 Configuration에 맞는 Emulator를 Android Studio Device Manager에서 생성.
공식 가이드를 따라 Desktop Head Unit Emulator(DHU)를 설치. 모바일 에뮬레이터 또는 실기기가 연결된 상태에서 DHU 실행하면 Android Auto 활성화
실행 해보고 싶은 것과 Emulator를 고른 뒤 Run
- app (통상적인 모바일 앱, Android Auto)
- app-wear-os (워치 앱)
- app-tv (Android TV 앱)
- app-automotive (Android Automotive 앱)
- Google I/O 2014 - Building great multi-media experiences on Android (18:29 ~)
- Android Dev Summit 2021 - What’s next for AndroidX Media and ExoPlayer
DroidKnights2023 App ReadMe 원문
드로이드나이츠는 기술 세션으로 개발자들의 경험을 공유하는 안드로이드 컨퍼런스입니다.
드로이드나이츠 행사 정보를 볼 수 있는 앱을 개발하고 있습니다. 여러분들의 참여로 함께 만들어 나가길 기대합니다!
자세한 내용은 CONTRIBUTING.md 를 참고해 주세요.
Figma에서 디자인을 확인하실 수 있습니다.
-
IDE : Android Studio Giraffe (Download)
-
JDK : Java 17을 실행할 수 있는 JDK
- (권장) Android Studio 설치 시 Embeded 된 JDK (Open JDK)
- Java 17을 사용하는 JDK (Open JDK, AdoptOpenJDK, GraalVM)
-
Kotlin Language : 1.8.21
- Kotlin
-
AndroidX
- Activity & Activity Compose
- AppCompat
- Core
- Lifecycle & ViewModel Compose
- Navigation
-
Kotlin Libraries (Coroutine, DateTime, Serialization)
-
Compose
- Material3
- Navigation
-
Landscapist & Landscapist Coil
-
Dagger & Hilt
-
Square (Retrofit, OkHttp)
- Compose Test(UI, Navigation)
- JUnit4
- Mockk
- Turbine
- Kotest
- Detekt
Gradle Version Catalog 를 활용하여 종속성과 플러그인을 관리하고 있습니다.
자세한 내용은 libs.versions.toml 를 참고해 주세요.
본 프로젝트는 Layered Architecture 형태로 설계되어 있습니다. 현재 Presentation/Domain/Data 레이어 구조를 띄고 있습니다.
상태는 아래로 이동하고 이벤트는 위로 이동하는 단방향 데이터 흐름(UDF)으로 구성되어 있습니다.
본 프로젝트는 Multi-module 구조이며 각 Feature마다 모듈 형태로 구성되어 있습니다.
Module Graph 생성 방법
1. 그래프를 시각화하는 오픈소스 설치
- brew install graphviz (예시 Homebrew)
2. 그래프 생성 Gradle Task 실행
./gradlew projectDependencyGraph
참여해주신 모든 분들 감사합니다!
- GitHub : Contributors
- Designer : Eunbi Ko
- Maintainer : laco-dev, wisemuji