- Notifications
You must be signed in to change notification settings - Fork6
Explore modern Android with Kotlin, Jetpack Compose, Flow, and Clean Architecture.
License
RubyLichtenstein/Dogiz
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
A Contemporary Showcase of Android Clean Architecture Development Using Kotlin, Jetpack Compose, Flow, Hilt, Ktor, Material 3, Room, Turbine, and Molecule.
Welcome to "Dogiz," your go-to example for modern Android development. InspiredbyNow in Android, we've simplified complex practices foreasy understanding and practical learning.
🎯Key Aspects:
- 🏗️Clean Architecture: A structured development approach.
- 📚Modern Libraries: Kotlin Coroutines, Flow, Jetpack Compose, and more.
- 🧪Testing: Ensuring robustness at every stage.
- 🔄CI/CD: Efficient integration and deployment.
💡 Aligns withGuide to App Architecture.
👨💻Who Should Use This?Anyone keen to dive into modern Android development—Dogiz is your guide!
- 🎯Distinct Roles: Unique purpose for each layer.
- 🔒Layer Autonomy: Pure Kotlin/Java in core layers.
- 🧪Testability: Fostering reliability.
- 🚀Adaptive Design: Ready for tech shifts and requirements.
- UI Layer: Interactive & visually captivating.
- Domain Layer: The business logic hub.
- Data Layer: Manages all data sources.
Here's a look at the tools and practices shaping the UI:
- 🎨Jetpack Compose: For a modern, declarative UI.
- 🗃️ViewModels: Acting as state holders.
- 🌊Kotlin Flow & StateFlow: For data streams and state management.
The domain layer is the backbone:
- 📚Pure Kotlin: For a platform-agnostic core.
- ⚙️Use Cases: Distinct operations encapsulating business rules.
- 🧪Unit Testing: For validating each use case.
- 🚀Decoupling: Ensuring stability and consistency.
The data layer stands as a pivotal component:
- 🗂️Repository Pattern: For clean data access.
- 🌐Ktor: Handling API calls.
- 📦Room: Local data storage.
We bring functional programming into play:
- 🧮Pure Functions: For predictable, testable behavior.
- 🔒Immutable Data: Minimizing potential bugs.
- 🌊Kotlin Flow Integration: For handling asynchronous data streams.
Hilt takes dependency management to the next level:
- 🎯Simplified Injection: Automated dependency management.
- 📦Modularity: For easy scaling.
- 🕒Scoped Components: Aligned with Android's architecture components.
- 🌐Offline Handling: Friendly alerts and cached data ensure smooth usage, even without aconnection.
- 💾Data Persistence: From user preferences to dog breed details, we save the essentials foroffline access.
⚠️ Clear Error Feedback: We've got you covered with clear error messages and alerts.
"Dogiz" incorporates the latest libraries and tools:
- Kotlin Coroutines: For efficient asynchronous programming.
- Kotlin Flow: Managing async data streams.
- Hilt: For injecting dependencies.
- Ktor Client: Handling APIs.
- Jetpack Compose UI & Compose-Navigation: Crafting UI & navigation.
- Material 3: Modern UI aesthetics.
- Kotlin Serialization: Parsing data.
- Coil-Compose: Loading images.
- Room: Local database management.
- DataStore Core: Storing preferences locally.
- Turbine: A small testing library for Flow.
- JUnit5: Widely used testing framework for the JVM.
- Molecule: Build a StateFlow or Flow stream using Jetpack Compose.
"Dogiz" is more than just an app—it's a showcase for the community! As we continue to refine andexpand, your insights, expertise, and contributions can play a crucial role.
🚧Work in Progress: We're tirelessly enhancing features and functionalities. Your patience andsuggestions are greatly appreciated!
👐Contribute: Spotted an area for improvement? Have a feature idea? Open an issue to discuss or,even better, submit a pull request to make "Dogiz" even more robust.
🙏 We deeply value the power of community collaboration. Let's shape "Dogiz" together!
About
Explore modern Android with Kotlin, Jetpack Compose, Flow, and Clean Architecture.
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Packages0
Uh oh!
There was an error while loading.Please reload this page.
