- Kotlin + Coroutines + Flow
- No XML layouts (almost). Contour layout is used. There are two XML's for the only two Activities in the project. I promise to get rid of them somewhen. Aaand there are two more for ExoPlayer controls 🐱 Aaand there is one more for Notification 🐶
- No feature-modules. Project is small so there is no need. Only three modules for "Clean-way":
app
(aka presentation),data
anddomain
. Andalarmtheme
for ui-related components like styles, colors and drawables. - Project is mostly an experiment and playground for
ContourLayout
,Kotlin Flow
andSQLDelight
and there are inconsistencies in some points. Some unnecessary interfaces, some strange naming. - Release build configured temporarily to be signed with debug key
- Release build works fine, just one proguard rule used to keep entities from domain module
Q: Why project's name is RadioAlarm04?
A: Previous four fell in battle.
Q: Why no XML's? Do you hate it so much?
A: No, I do not. It's an experiment. And I consider it succesfull. ContourLayout works great, no bugs. Definitely need more convenient way to create views in code. Should check Splitties.
Start screen | Wake up | Favorites | Radio browser |
---|---|---|---|
Start screen | Wake up | Favorites | Radio browser |
---|---|---|---|
Awesome Radio browser API(github) by Alex
- Question mark icon from Material Design Icons by Templarian
- Launcher icon drawn by myself 😎
- DI: Hilt
- Layout in Kotlin: Contour layout
- Media player: ExoPlayer
- Wake me up!: Slide to act
- Network: Retrofit
- Logging: Timber
- LeakCanary
- Image loading: Glide
- Database: SQLDelight
- Lots of 'androidx' libraries Android Jetpack