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