A comprehensive collection of modular Android libraries providing utilities, extensions, and common functionality for modern Android development.
Android Commons is a curated set of libraries designed to accelerate Android development by providing reusable components and utilities. Each module is independent, allowing you to include only what you need, keeping your app size minimal.
- π― Modular Architecture - Include only the modules you need
- π Modern Android - Built with Kotlin, Coroutines, and Jetpack Compose
- π§ͺ Well Tested - Comprehensive unit test coverage
- π¦ Small Footprint - Minimal dependencies per module
- π Active Maintenance - Regular updates and improvements
| Module | Description | Documentation | Latest Version |
|---|---|---|---|
| Bill of Materials | |||
commons-bom |
BOM for version management | - | |
| Core & Android | |||
commons-core |
Core utilities and extensions | - | |
commons-android |
Android-specific utilities and extensions | - | |
commons-android-binding |
View binding utilities | - | |
commons-android-compose |
Jetpack Compose utilities | - | |
commons-android-test |
Android testing utilities | - | |
| Async & Concurrency | |||
commons-coroutines |
Kotlin Coroutines extensions | π Docs | |
commons-coroutines-test |
Coroutines testing utilities | π Docs | |
| Networking | |||
commons-network |
Network utilities and interceptors | π Docs | |
| Pagination | |||
commons-pagination |
Base pagination framework | π Docs | |
commons-pagination-co |
Coroutines-based pagination | π Docs | |
| Permissions | |||
commons-permissions |
Runtime permissions management | π Docs | |
| Storage | |||
commons-preferences |
Advanced SharedPreferences wrapper | π Docs | |
| Date & Time | |||
commons-threetenabp |
ThreeTenABP date/time utilities | - | |
commons-threetenabp-test |
ThreeTenABP testing utilities | - |
- Min SDK: 24 (Android 7.0)
- Target SDK: 35 (Android 15)
- Kotlin: 1.9+
- Java: 17
The Bill of Materials (BOM) manages all library versions automatically, ensuring compatibility between modules.
dependencies {
// Import the BOM with the latest version (check badge above)
implementation(platform("com.raxdenstudios:commons-bom:<latest-version>"))
// Add modules without specifying versions
implementation("com.raxdenstudios:commons-core")
implementation("com.raxdenstudios:commons-android")
implementation("com.raxdenstudios:commons-coroutines")
implementation("com.raxdenstudios:commons-network")
implementation("com.raxdenstudios:commons-pagination")
implementation("com.raxdenstudios:commons-pagination-co")
implementation("com.raxdenstudios:commons-permissions")
implementation("com.raxdenstudios:commons-preferences")
implementation("com.raxdenstudios:commons-threetenabp")
// Testing modules
testImplementation("com.raxdenstudios:commons-coroutines-test")
testImplementation("com.raxdenstudios:commons-threetenabp-test")
testImplementation("com.raxdenstudios:commons-android-test")
}Benefits of using BOM:
- β No need to specify versions for each module
- β Guaranteed compatibility between all modules
- β Easier updates - just change the BOM version
- β Prevents version conflicts
All modules include comprehensive unit tests. Run tests with:
./gradlew testFor coverage reports:
./gradlew jacocoTestReportDetailed documentation for each module is available in their respective directories:
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Copyright 2015 Γngel GΓ³mez
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.