Simple-MVVM icon indicating copy to clipboard operation
Simple-MVVM copied to clipboard

A simple Android MVVM pattern example

Simple MVVM

A simple Android MVVM pattern example and template.

Android Studio Version

  • Android Studio Arctic Fox | 2020.3.1 Patch 2

Used Components/Libraries

  • Kotlin
  • Kotlin Coroutines (https://developer.android.com/kotlin/coroutines)
  • View Binding (https://developer.android.com/topic/libraries/view-binding)
  • Data Binding (https://developer.android.com/topic/libraries/data-binding)
  • Retrofit (https://github.com/square/retrofit) with Moshi (https://github.com/square/moshi)
  • Room Persistence Library (https://developer.android.com/topic/libraries/architecture/room)
  • Shared Preferences (https://developer.android.com/training/data-storage/shared-preferences)
  • Navigation Component (https://developer.android.com/guide/navigation)
  • Glide (https://github.com/bumptech/glide)
  • Timber (https://github.com/JakeWharton/timber)
  • Custom Fonts (https://developer.android.com/guide/topics/ui/look-and-feel/fonts-in-xml)
  • Shimmer for Android (https://github.com/facebook/shimmer-android)
  • Hilt (https://dagger.dev/hilt/)
  • Paging 3 (https://developer.android.com/topic/libraries/architecture/paging)
  • Dexter (https://github.com/Karumi/Dexter) (coming soon...)

Others

  • Build variant (https://developer.android.com/studio/build/build-variants)
  • Custom Snackbar
  • Dark Mode

Extension Functions (see utils/extensions)

  • DateTime
  • Dialog
  • Dimension
  • Flow
  • General Spinner
  • Miscellaneous: show/hide keyboard, download file, open permission settings, open url, send mail etc.
  • Retrofit
  • Snackbar
  • String
  • Toast

Common Binding Adapters

  • RecyclerView
  • Spinner
  • ImageView
  • TextView (for Date() to formatted date-time)

Utilities

  • SharedPref
  • AlarmUtils
  • LocationProviderUtilClient
  • Event Class

Todo

  • Add New Post
  • Demo Login
  • Demo Registration
  • OneSignal integration
  • Splash (Introduced in Android S)
  • Testing
  • Example of LocationProviderUtilClient
  • AdUtils from Ticket Sheba