Skip to content

codigodelsur/Doit

Repository files navigation

Doit

Description

This is a simple app that lets users organize their tasks in an easy way. It has been written entirely in Kotlin by using the new UI framework, Jetpack Compose.

Requirement

To run the app you need Android Studio Chipmunk and JDK 11 installed on your computer.

Architecture

The app has been built following best practices and recommendations stated in Google's official Guide to app architecture. The code is organized into two modules and three layers:

Architecture diagram

Modules

Since the app has been created for academic purposes, focused on the process of building UI with Jetpack Compose, we decided to encapsulate the business logic into a single module called Core that provides data to the App module. The latter holds the presentation layer and will be our workspace during the workshop.

Layers

  1. Presentation: The presentation layer holds the implementation of the screens. Its role is to display the data provided by the layers below on the screen and serve as the primary point of user interaction.
  2. Domain: The domain layer encapsulates the app business logic. It works like a bridge between the data layer and the presentation one. Use cases reside here.
  3. Data: The data layer handles the data of the app. It's made of repositories that interact with different data sources.

Dependencies

  • Jetpack Compose: Android’s modern toolkit for building native UI, with less code and intuitive Kotlin APIs.
  • Navigation component: Jetpack library that enables navigating from one destination within your app to another, along specific routes.
  • Hilt: dependency injection library for Android that reduces the boilerplate of doing manual dependency injection in your project.
  • Kotlin Coroutines: Recommended solution for asynchronous programming on Android.
  • Room: Persistence library that provides an abstraction layer over SQLite.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages