This project included some subprojects. All of them are combined in a multi-project structure. You can run each separately by choosing your run/debug configuration menu.
***Attention***
There isn't a standard project with an acceptable structure. I have written it in a simple form for having less dependency on the different types of knowledge. Each concept is implemented separately and is implementable with any level of programming knowledge.
android project: You have some implementation samples for the below libraries and abilities
- ResultLauncher: An instead method for ActivityBackResult
- Backlight change: you can change the phone backlight programmatically
- Binding: You can learn how to implement ViewBinding and DataBinding
- BottomSheet: A simple implementation of BottomSheet
- Broadcast: You can learn how broadcast is worked and how to implement it.
- CI/CD: A simple implementation of CI/CD by GitHub ability
- Compose: How work with compose and simple sample of it.
- DialogBuilder: Alert - Simple - Confirmation - Full-Screen/Custom
- Fragment: Simple fragment-Material alert dialog-
- Lifecycle: You have a practical sample for the Activity lifecycle and fragment lifecycle
- MVP: You learn how to implement MVP structure
- MVVM: You learn how to implement MVVM structure by livedata
- Navigation: How to deal with navigation and create a map navigation
- Navigation: safe args: How to transfer data between fragments with type_safety
- Navigation: BackstackEntry LiveData
- PagingView: Using PagingView instead of Recyclerview for dynamic benefits
- RecyclerView: Simple-horizontal-binding-ListAdapter-AsyncListDiffer
- Room: The most famous library for Android database
- SafeStateHandle: Three types of saving states including the Jetpack method
- SecureKey: The best way to secure your keys in your program
- Service: You can learn about Background and foreground services and methods for calling the theme
- SharedPreference: A quick way for storing low-size data in our program
- Socket: How to create a Socket and call it
- ViewToModel: A deprecated way for reading view by the reflection method
- ViewPager: A dynamic viewPager included TabLayout
- Worker
- Kotlin Flow
android_test project:
- Junit5
- Mockito
- Instrumentation tests with context
design_pattern project
- Adapter pattern
- Builder pattern
- Factory pattern
- Memento pattern
- Prototype pattern
- Singleton pattern
- State pattern
fundamental project
- Interface inheritance: you can learn some new things about interface
- recursion
- Regex: You can learn how to deal with regex in Kotlin language
- TimeComplexity
kotlin_base
- Abstract Implement
- Access Kotlin from Java
- Annotation
- Arrays
- Kotlin types
- Bounding references
- Callback/Listener
- Class and DataClass
- Collection versus Sequences
- Conditions
- Constant
- Data and Time
- Enum
- Exception
- Function Type
- Generic
- Anonymous class
- Interface
- Class
- Lambda
- Lambda with receiver
- Lazy
- Loops
- Map
- Methods
- Models
- Normalization
- Objects
- Overload
- Passing functions
- Properties
- Reflections
- Returns
- Strings
- Synchronous
- Thread and Timer
- Variable
third_party_library_dependencies project
- Apollo (GraphQL)
- Retrofit (GraphQL)
- Retrofit/Dagger (Rest)
- Retrofit (Rest)
- Retrofit/Java (Rest)
- Coroutine
- Dagger
- Hilt
- Courier
- CameraX
- Google Map
- FireBase