-
Minimum SDK level 21.
-
100% Kotlin based + Coroutines + Flow for asynchronous.
-
Hilt for dependency injection.
-
View binding - View binding is a feature that allows you to more easily write code that interacts with views.
-
JetPack
- LiveData - For observer pattern on UI layer
- Lifecycle - dispose observing data when lifecycle state changes.
- ViewModel - UI related data holder, lifecycle aware.
- Room Persistence - construct database.
-
Architecture
- MVVM Architecture (View - ViewModel - Model)
- Repository pattern
-
Testing
- MockK
- Robolectric
- JUnit
Notifications Demo
Enable.notifications.mp4
New Notification Received
New.notification.received.mp4
Notification removed
Notification.Removed.mp4
Orientation config changes
Orientantion.config.changes.mp4
Change theme config changes
Change.theme.config.changes.mp4
Empty State Active Notifications
Empty.State.mp4
Empty State All Notifications