π Still in development π
A social media prototype that demonstrates the usage of Android Jetpack libraries and recommended app architecture and design.
Onboarding | Login | Register |
TODO |
- Register page
- Profile page
- TBD
Please refer to Screenshots page (TODO) to see these libraries in action.
- Databinding
- β Binding adapters
- β Two-way databinding using LiveData: For login and registration form
- Navigation
- β Navigate using Safe Args Gradle plugin for type-safety
- β
Design with different form factor: Use
DrawerLayout
orBottomNavigationView
depending on available screen size - β
Nested graphs using
<include />
tag: Separate authentication flow into different navigation graph - β Conditional navigation: Navigate to Onboarding page for first-time user and navigate to Login page when user is unauthenticated
- β Explicit (via app widget) and implicit deep links (via URL) for Chat page
- β Transition animation
- β Navigation testing
- β Dynamic feature module
- ViewPager2
- Testing
- ViewModel
- Material Design
- Paging3
- β Load paged data from single source (network)
- β Load paged data from multiple sources (network & database)
- Display the loading state
- β
Using
loadStateFlow
for general UI - β Using
LoadStateAdapter
for header/footer
- β
Using
- β Add item separators
- Hilt
- β Inject interface instances with
@Binds
- β
Inject interface with
@Provides
- β Provide multiple bindings for the same type with qualifiers
- β
Use predefined qualifiers (
@ApplicationContext
) - β Inject dependencies to unsupported class with
@EntryPoint
- β DI Testing
- Jetpack integrations:
- β
with ViewModel via
@ViewModelInject
- β with WorkManager via
@WorkerInject
- β
with ViewModel via
- β Inject interface instances with
- Room
- Palette: Set banner color in Profile page based on profile picture's color palette
- WorkManager
- Emoji
- Preferences
- ...
1.0