Booking App
This app is built to demonstrate the modern design of an Android application
About
We load Rooms data from API and store it in a Room database (persistence storage)
The Rooms are always loaded from a local database. Remote and local data is always synchronised
The app is offline-capable
The app supports a dark theme
The API used in this app is statically hosted here https://novuyo.deeplytix.net/novuyo/all
Tools
The application is built using the following tools
Kotlin - Official programming language for Android development
Gradle Kotlin DSL - By default, uses Gradle build system with Kotlin DSL
Android Architecture Components - Android Architecture Components are a part of Android Jetpack
- LiveData - Notify views of any database changes.
- Navigation - Handle everything needed for in-app navigation.
- ViewModel - Manage UI-related data in a lifecycle conscious way.
- ViewBinding -Declaratively bind UI elements in our layout to data sources of our app.
- Room -Fluent SQLite database access.
Coroutines - A very efficient and complete framework to manage concurrency in a more performant and simple way
Flow - A better way to handle the stream of data asynchronously that executes sequentially.
Retrofit - Android Networking library that reduces a lot of Boilerplate code and helps in consuming the web service easily
Moshi - JSON library for Android
Moshi Converter - A Converter that uses Moshi for serialization to and from JSON.
Coil-kt - An image loading library for Android backed by Kotlin Coroutines
Material Components for Android - Modular and customizable Material Design UI components for Android
Architecture
This app uses Model View View-Mode ( MVVM ) architecture