hanmajid / android.seed

:octocat: A social media prototype that demonstrates the usage of Android Jetpack libraries and recommended app architecture and design. (Still in development πŸš€)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

android.seed

About

πŸš€ Still in development πŸš€

A social media prototype that demonstrates the usage of Android Jetpack libraries and recommended app architecture and design.

Features

Pages

Onboarding Login Register
TODO
  • Register page
  • Profile page
  • TBD

Libraries

Please refer to Screenshots page (TODO) to see these libraries in action.

  1. Databinding
    1. βœ… Binding adapters
    2. βœ… Two-way databinding using LiveData: For login and registration form
  2. Navigation
    1. βœ… Navigate using Safe Args Gradle plugin for type-safety
    2. βœ… Design with different form factor: Use DrawerLayout or BottomNavigationView depending on available screen size
    3. βœ… Nested graphs using <include /> tag: Separate authentication flow into different navigation graph
    4. βœ… Conditional navigation: Navigate to Onboarding page for first-time user and navigate to Login page when user is unauthenticated
    5. βœ… Explicit (via app widget) and implicit deep links (via URL) for Chat page
    6. ❌ Transition animation
    7. ❌ Navigation testing
    8. ❌ Dynamic feature module
  3. ViewPager2
  4. Testing
  5. ViewModel
  6. Material Design
  7. Paging3
    1. βœ… Load paged data from single source (network)
    2. βœ… Load paged data from multiple sources (network & database)
    3. Display the loading state
      1. βœ… Using loadStateFlow for general UI
      2. ❌ Using LoadStateAdapter for header/footer
    4. ❌ Add item separators
  8. Hilt
    1. ❌ Inject interface instances with @Binds
    2. βœ… Inject interface with @Provides
    3. ❌ Provide multiple bindings for the same type with qualifiers
    4. βœ… Use predefined qualifiers (@ApplicationContext)
    5. ❌ Inject dependencies to unsupported class with @EntryPoint
    6. ❌ DI Testing
    7. Jetpack integrations:
      1. βœ… with ViewModel via @ViewModelInject
      2. ❌ with WorkManager via @WorkerInject
  9. Room
  10. Palette: Set banner color in Profile page based on profile picture's color palette

TODO

  1. WorkManager
  2. Emoji
  3. Preferences
  4. ...

Version

1.0

About

:octocat: A social media prototype that demonstrates the usage of Android Jetpack libraries and recommended app architecture and design. (Still in development πŸš€)


Languages

Language:Kotlin 96.3%Language:Java 3.7%