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.
To run the app you need Android Studio Chipmunk and JDK 11 installed on your computer.
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:
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.
- 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.
- 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.
- Data: The data layer handles the data of the app. It's made of repositories that interact with different data sources.
- 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.
