$ show atick-faisal/Jetpack-Android-Starter
Jetpack Android Starter is a production-ready template for modern Android development built on Jetpack Compose and clean architecture principles. It provides a comprehensive foundation with feature modules for authentication, home, profile, and settings, integrated with Firebase for authentication, Firestore, and Crashlytics. The architecture follows a two-layer UI/Data pattern with Repository pattern, Hilt dependency injection, Room for local storage, DataStore for preferences, and WorkManager for background synchronization. UI is built with Compose Material 3, featuring custom reusable components and type-safe navigation using Kotlin Serialization. The template includes CI/CD via GitHub Actions, automated dependency updates, documentation generation, and performance optimizations like baseline profiles. It demonstrates strong engineering practices with clear separation of concerns, testable architecture, and reusable patterns that solve common Android development challenges.
The LLM identified 5 files worth highlighting for reuse:
Implements a thread-safe one-time event wrapper using StateFlow and atomic updates, solving the common problem of single-consumption events (navigation, snackbar) without SharedFlow drawbacks. Highly reusable across any Android project with minimal dependencies.
A reusable composable wrapper that standardizes loading, error, and content states, reducing boilerplate in UI screens. Extractable to any Compose project with only androidx.compose.runtime dependency, promoting consistent state handling patterns.
Enables Hilt dependency injection in WorkManager by delegating work to an injected class, providing a clean solution to a known integration challenge. Isolated pattern requiring only Hilt and Workmanager, easily adaptable to other dependency injection frameworks.
A reusable image loading composable that handles placeholders, errors, and state using Coil's AsyncImagePainter. Optimized for Jetpack Compose with proper disposal and retry logic, extractable to any Compose project using Coil for network image loading.
Custom Gradle convention plugin that standardizes Android application configurations across modules, reducing boilerplate in build.gradle.kts. Demonstrates advanced Gradle plugin development with type-safe accessors and extensible configuration, reusable in any multi-module Android project.