This is a public mirror of a private repository of Odontoo App which you can find at Google Play store HERE
🦷 Odontoo Connect is a communication facilittor app targeting dentists with privacy as the main concern.
-
Minimum SDK level 24
-
Kotlin based, Coroutines + Flow for asynchronous.
-
Jetpack
- Compose: Declarative UI library for building awesome UI.
- Material 3: Google Material Design Library for ready-made UI components.
- Navigation: Library of Navigation component for Compose support.
- Lifecycle: Observe Android lifecycles and handle UI states upon the lifecycle changes.
- ViewModel: Manages UI-related data holder and lifecycle aware. Allows data to survive configuration changes such as screen rotations.
- Room: Constructs Database by providing an abstraction layer over SQLite to allow fluent database access.
- Hilt: for dependency injection.
- Paging 3: Library for returning paging data from Room local database.
- Compose: Declarative UI library for building awesome UI.
-
Firebase Analytics/Crashlytics: App Monitoring and Analytics.
-
Google Ad mob: App onetization using Google Ad Mob
- MVVM Architecture (Model - View - ViewModel)
- Layered Architecture
- Data Layer
- Domain Lyaer (UseCase)
- Presentation Layer
The overall architecture of Odontoo Connect is composed of three layers; the UI layer, domain layer and the data layer. Each layer has dedicated components and they have each different responsibilities, as defined below:
The Presentation layer consists of UI elements to configure screens that could interact with users and ViewModel that holds app states and restores data when configuration changes.
Unidirectional Data flow principle is applied through firing events from Screen UI and passing data toward Screen
The data Layer consists of repositories implementation, which include business logic, such as querying data from the local database.. It is implemented as an offline source of business logic and follows the single source of truth principle.
Odontoo Connect is an offline app is an app that is able to perform all core functionality without access to the internet.