RubyLichtenstein / Dogiz

Explore modern Android with Kotlin, Jetpack Compose, Flow, and Clean Architecture.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

๐Ÿพ๐Ÿถโœจ Dogiz

License API Build Status codecov

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. Inspired by Now in Android, we've simplified complex practices for easy 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 with Guide to App Architecture.

๐Ÿ‘จโ€๐Ÿ’ป Who Should Use This? Anyone keen to dive into modern Android developmentโ€”Dogiz is your guide!

Screenshots

screenshots

๐Ÿงฑ Clean Architecture in Android with Kotlin

Clean Architecture in Android prioritizes:

  • ๐ŸŽฏ 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.

The Three Layers

  • UI Layer: Interactive & visually captivating.
  • Domain Layer: The business logic hub.
  • Data Layer: Manages all data sources.
๐ŸŽจ The UI Layer

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

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

The data layer stands as a pivotal component:

  • ๐Ÿ—‚๏ธ Repository Pattern: For clean data access.
  • ๐ŸŒ Ktor: Handling API calls.
  • ๐Ÿ“ฆ Room: Local data storage.

๐Ÿƒ Functional Programming with Kotlin Flow

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: Elevating Dependency Management

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.

๐Ÿ–Œ๏ธ๐ŸŽจ UX/UI Considerations

  • ๐ŸŒ Offline Handling: Friendly alerts and cached data ensure smooth usage, even without a connection.
  • ๐Ÿ’พ Data Persistence: From user preferences to dog breed details, we save the essentials for offline access.
  • โš ๏ธ Clear Error Feedback: We've got you covered with clear error messages and alerts.

๐Ÿ› ๏ธ Libraries & Tools

"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.

๐Ÿค Feedback and Contributions

"Dogiz" is more than just an appโ€”it's a showcase for the community! As we continue to refine and expand, your insights, expertise, and contributions can play a crucial role.

๐Ÿšง Work in Progress: We're tirelessly enhancing features and functionalities. Your patience and suggestions 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.

License:MIT License


Languages

Language:Kotlin 100.0%