A robust foundation for modern Android applications, featuring a clean MVVM architecture with the latest Android development tools and best practices. Built to accelerate your development workflow while maintaining code quality and scalability.
"Simplicity is the ultimate sophistication." - Leonardo da Vinci
-
Modern Architecture
- MVVM (Model-View-ViewModel) design pattern
- Clean and scalable project structure
- Repository pattern for data management
- Dependency injection with Hilt
-
UI Components
- 100% Jetpack Compose UI
- Material 3 design system
- Dark/Light theme support
- Responsive layouts
- Custom composable components
-
Tech Stack
- Kotlin Coroutines & Flow for async operations
- Jetpack Navigation for seamless navigation
- Retrofit & OkHttp for networking
- Kotlinx Serialization for JSON parsing
- Coil for image loading
- Unit testing setup with JUnit
-
Development Tools
- Gradle Kotlin DSL build scripts
- Version catalog for dependency management
- Detekt for static code analysis
- GitHub Actions CI/CD pipeline
- Dependabot integration
- Android Studio Hedgehog or later
- JDK 17
- Android SDK with minimum API 24
- Click the "Use this template" button on GitHub
- Create a new repository from the template
- Clone the repository
git clone https://github.com/msomu/base-mvvm-android-kt.git
-
Open the project in Android Studio
-
Update the package name:
- Modify
namespace
in app/build.gradle.kts - Update package structure in src/main/java/
- Change applicationId in app/build.gradle.kts
- Configure your API endpoint:
- Create a
local.properties
file in the root directory - Add your base URL:
BASE_URL=https://your-api-endpoint.com/
- Build and run the project
app/src/main/
├── java/com/msomu/androidkt/
│ ├── di/ # Dependency injection modules
│ ├── model/ # Data models
│ ├── network/ # API services and network utilities
│ ├── presentation/ # UI components and ViewModels
│ ├── repository/ # Data repositories
│ └── utils/ # Utility classes
└── res/ # Resources
The project includes both unit tests and instrumented tests:
# Run unit tests
./gradlew test
# Run instrumentation tests
./gradlew connectedAndroidTest
# Run detekt analysis
./gradlew detekt
- 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
Distributed under the MIT License. See LICENSE
for more information.
Somasundaram Mahesh - @msomu
Project Link: https://github.com/msomu/base-mvvm-android-kt