Giter Club home page Giter Club logo

jetpack-compose-clean-architecture's Introduction

Supercool App with Jetpack Compose and Use Case Design Pattern ๐Ÿš€

An Android app built with Jetpack Compose and Kotlin, using the awesome Use Case design pattern ๐Ÿค˜. It consumes DummyJSON - a Fake REST API of JSON to create a unique and exciting marketplace experience.

With FakeProductsAPI, you can enjoy different types of REST Endpoints filled with JSON data, allowing you to focus on developing the frontend with your favorite framework and library, and leaving the backend concerns behind. Get ready for some serious fun! ๐Ÿ˜Ž

Cool Tech Stack!

  • Kotlin - The futuristic programming language that can run on JVM! It's the officially supported programming language for Android Studio and the community is moving rapidly from Java to Kotlin.
  • Android KTX - Concise and idiomatic Kotlin library to Jetpack and Android platform APIs. It's like magic!
  • AndroidX - The supercharged version of Android Support Library that's way better!
  • Lifecycle - With great power comes great responsibility. It's designed to perform actions based on lifecycle changes of components like activities and fragments.
  • Viewmodel -The ViewModel class is like a superhero that stores and manages UI-related data in a lifecycle conscious way!
  • LiveData - A lifecycle-aware data holder with the observer pattern. It's like a superpower!
  • Kotlin Coroutines - A concurrency design pattern that simplifies async code execution on Android. It's like a secret weapon!
  • Retrofit - The superhero REST Client for Java and Android by Square inc under Apache 2.0 license. It's a simple network library used for network transactions and capturing JSON response from web services.
  • GSON - The superhero JSON Parser that understands Kotlin non-nullable and default parameters. It's like a genius!
  • Flow - The superhero type in Coroutines that can emit multiple values sequentially. It's like a superpower for async code execution!
  • Hilt - A dependency injection library for Android that reduces the boilerplate of manual dependency injection. It's like a magic wand!
  • Navigation Components - The superhero that helps you implement navigation from simple button clicks to more complex patterns. It's like a GPS for your app!
  • Logging Interceptor - The superhero interceptor that logs HTTP request and response data. It's like a CCTV for network transactions!
  • GitHub Actions - GitHub Actions are like loyal minions that automate all your software workflows. Build, test, and deploy your code right from GitHub! It's like having your own army of robots!
  • Mockito Kotlin ๐Ÿ‘จโ€๐Ÿ”ฌ - Feeling tired of writing boring and tedious unit tests? Fear not, for Mockito Kotlin is here to save the day! This powerful library allows you to mock objects and functions in a breeze, so you can focus on writing awesome code that blows everyone's minds.
  • OkHttp3 ๐ŸŒ - Looking for a reliable and efficient HTTP client for your app? Look no further than OkHttp3! This battle-tested library is used by some of the largest apps out there, and for good reason: it's fast, reliable, and easy to use.
  • Coil ๐ŸŒ€ - Tired of dealing with slow and clunky image loading libraries? Say goodbye to your troubles and hello to Coil! This sleek and powerful library makes loading images a breeze, with an intuitive API and impressive performance.
  • Room ๐Ÿ  - Need a database solution that just works? Room has got you covered! This powerful library makes it easy to store and retrieve data from a SQLite database, with an intuitive API and robust feature set. Whether you're building a simple to-do list app or a complex CRM system, Room has everything you need.
  • Accompanist Pager ๐Ÿ“œ - Looking to add some slick page navigation to your app? Accompanist Pager is the library for you! With a range of customizable options and an intuitive API, this library makes it easy to create stunning page layouts that will keep your users engaged and coming back for more.
  • Material Compose ๐Ÿ’„ - Want to make your app look and feel like a million bucks? Material Compose is the answer! This library provides a range of customizable components and widgets that will make your app look sleek and polished, with an intuitive API that makes it easy to get started. Whether you're building a small app or a massive enterprise system, Material Compose has everything you need to take your UI to the next level.

Demo!

Check out this cool GIF of the app in action! ๐ŸŽฌ

Compose Usecase Pattern

TODO

  • Setup modularization.
  • Set up a local database with Room.
  • Set up remote data with retrofit.
  • Implement the repository pattern.
  • Implement the use-case pattern.
  • Set up dependency injection with Hilt.
  • Migrate to Compose Material 3.
  • Update the home UI to an adaptive layout (bottom navigation, navigation rail, navigation drawer).
  • Implement unit testing.
  • Implement UI/Instrumented Testing.

Future

  • Plan migration from Room to SQLDelight.
  • Plan migration from Retrofit to Ktor.

Setup Requirements

  • An Android device or emulator ๐Ÿ“ฑ
  • Android Studio ๐Ÿ’ป

Getting Started

Ready to try it out yourself? Here's what to do:

  1. Clone this project ๐Ÿ‘
  2. Import the project into Android Studio ๐Ÿš€
  3. Connect your Android device via USB or start your emulator ๐ŸŒ
  4. Once the project has finished setting up, click the "run" button ๐Ÿƒโ€โ™‚๏ธ

Support

  • Did you find this project useful? Show some love by clicking the โญ๏ธ button in the upper right corner! โค๏ธ
  • Notice anything else missing? File an issue ๐Ÿšจ
  • Want to contribute? Whether it's fixing typos in docs or reviewing code, we welcome all contributions! ๐Ÿค

jetpack-compose-clean-architecture's People

Contributors

im-o avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.