- Project is created on Android Studio Chipmunk 2021.2.1 Patch 2
- Kotlin version - 1.7.0
- Current minimal supported sdk version - 21 (Android 5.0)
- MVVM Architecture
- Hilt for Dependency Injection
- Kotlin Co-routines for all the asynchronous tasks
- ViewModel, LiveData, etc. from Jetpack components
- Automated UI testing using Espresso
- Data Layer : This layer will contain all data repositories, models and network logic
- View Model : This will contain all the business logic only.
- View : This will contain all the UI logic (All android context related things will be done here)
This will contain Activities, Fragments, drawables, layouts, styles, strings etc. - DI : All dependency injection related logic will go here.
Kotlin files : {usage}Activity For Example : HomeActivity
Layout Files : activity_{usage} For Example: activity_home
Kotlin files : {usage}Fragment For Example : HomeFragment
Layout Files : fragment_{usage} For Example: fragment_home
Layout Files: item_{usage} For Example: item_home
For layout files to be included in other layouts
Layout Files: include_{usage} For Example: include_home_header
Camel Notations will be used.
For Example isUserLoggedIn
Camel Notations will be used
Reason: Since we are using ViewBinding, it is easier to search for that id being used in the project.
File Names :
TextViews : tv{unique identifier(filename)}{usage} For Example tvCurrentMembers
EditTexts : et{unique identifier(filename)}{usage} For Example
etLoginPassword<br /> RelativeLayoout : rl{unique identifier(filename)}{usage} For Example
rlPermLevels`
Note:Make sure each view has unique id in whole project.
Upper case with underscore will be followed.
For example : MIN_PASSWORD_LENGTH