Prerequisite
Learn more about what does this codebase do to help improve Android Application Development.
Libraries and technologies¶
Libraries and technologies used in this CodeBase are:
Tool | Name | Version |
---|---|---|
Platform | Android | OS 5 Lollipop Level 21 or higher |
Programming Language | Kotlin | JDK 8.x |
Architecture | Model View ViewModel | |
Rest Response | JSON | |
Local Database | SQLite | |
View Injection | ViewBinding | |
Obfuscation | Proguard | |
Reactive Programming | RxJava | Latest version |
JSON Parser | GSON | Convert using Retrofit2Gson Converter latest version |
HttpClient | OkHttpClient with Retrofit | Okhttp v Latest version, Retrofit latest version, Logging Interceptor latest version |
Local Database Framework | Room | Latest version |
Shared Preference | Armadillo | Latest version |
Camera | CameraX | Latest version |
Design Guideline | Material Component | Latest version |
Animation | Lottie | Latest version |
Loading shimmer | Shimmer | Latest version |
Error Handling | ACRA | Latest version |
Dependency Injection | Koin | Latest version |
Image Loader | Glide | Latest version |
Logging | Timber | Latest version |
SMS Verification | Google auth API Phone | Latest version |
Root Detection | RootBeer | Latest version |
Emulator Detection | EmulatorDetector | Latest version |
Dialog | Material Dialog | Latest version |
Image Compression | Compressor | Latest version |
Recommendation¶
For running or using the codebase in your Android Project, it is recommended to use:
- Android Studio Arctic Fox or higher
- Kotlin
1.7.0
or higher - Gradle
7.2.0
or higher - Kotlin
1.7.0
or higher
This is to support the current SDKs and libraries used inside the codebase. Using any other version that not supported may include some unwanted consequence.
Learning the modules¶
As from 0.4.0
our codebase are now modular, which mean now you can use either one or all of the modules simultaneously. It enables you to migrate your existing project to using our codebase more easier. You can start by implementing one module, and then another, and then another.
It also increases our focus to develop more features based on specific module. So now, let's learn about what are the modules in our codebase:
Data¶
This module define configuration for your data needs. It included with base class for:
- Retrieving data from web service (API) using Retrofit
- Local database using Room
- SharedPreference using secured preference
- ViewModel
Presentation¶
This module define configuration for presentation needs. It included with base class for:
- Activity
- Fragment
- RecyclerView Adapter and ViewHolder (embedded with endless scrolling)
- CameraX Implementation with use cases for scanning QR and storing image
- ViewPagerAdapter
- User input validation
Service¶
This module define configuration for Mobile Service (GMS or HMS) features. It included classes for:
- Handling Analytics custom event, user properties, and userId
- Handling authentication using Google, Twitter, Microsoft, Github, and Yahoo
- Base Service class for Cloud Messaging
- Handling Remote Config Value
- Handling Dynamic Link
- Handling listener for In-App Messaging
Utils¶
This module define global function and utilities for application. It defines:
- Custom Error handler
- Extension function for date, ImageView, etc.
- Global method for things like displaying dialog, and security
- SMS verification
- Base Application class