Open-sourcing as I am re-writing (based on a better understanding of Compose) an app I wrote a couple of years ago.
History Calendar app on Google Play Store
Also, creating a follow-along documentation. Mostly for myself, as I realized that I don't remember why I had made certain decisions in the original version of the app. But if it helps someone too, great :) All in early stages, work in progress.This Day In History is a fully functional Android app, with a companion Glance Widget, built entirely with Kotlin 2.0 and Jetpack Compose. The app allows users to discover what happpened on any particular day with summaries of major events, anniversaries, famous births and notable deaths.
English, Dark Theme | Glance Widget | Spanish, Dark Theme |
---|---|---|
Spanish, Detail | French, Detail | Spanish, Settings |
---|---|---|
Widget Preview and Selection | Widget Preview | Arabic Dark |
---|---|---|
widget.mp4 |
widgetset.mp4 |
arabic-dark.mp4 |
Widget Preview - Portuguese | Widget Pinning from App | Arabic Dark |
---|---|---|
arabic-dark.mp4 |
- Kotlin 2.0
- Coroutines and Flows
- Jetpack Compose
- Jetpack Compose Glance
- Jetpack Compose Navigation
- Workmanager
- Hilt
- Retrofit2
- Material3
- Spotless
- Detekt
- Arabic
- English
- French
- Italian
- German
- Spanish
- Swedish
- Russian
- Portuguese
- Building this app - Introduction
- Set up Version Catalog
- Set up Navigation
- Set up Navigation Drawer
- App Logo Composable
- About Screen - Part 1
- Languages Screen - Part 1
- Theme Screen - Part 1
- About, Languages, Theme Screens - Part 2 and NavDrawer screen - Apply Theme
- In-App Languages/Internationalization
- Welcome Screen with Mock View Model and Transition to Languages Screen
- Welcome Screen with real Translation API and real ViewModel
- Welcome message based on device language and intergation with Preferences Data Store
- Splash Screen
- UI Tests: About Screen
- UI Tests: Languages Screen
- UI Tests: Welcome Screen plus Navigation
- UI Tests: Cat Logo under different themes
- Main Screen - Part 1
- Main Screen - Part 2 - Shimmer Animation on Loading
- Detail Screen
- Navigation Bar Colors
- AppBar for secondary screens with Up Button
- Primary AppBar with a hamburger menu to open Navigation Drawer and calendar icon to open Calendar
- Date Picker
- Modal Bottom Sheet to display expanded image
- Search Bar
- Bottom Bar Date Picker
- Real ViewModel with real API calls
- Add Hilt with KSP
- Ui Tests: Error Screen
- More to follow...