A personal Android client for intentional device management and productivity
About
Intimo (spanish for Personal) serves as a personal Android client for intentional device management and productivity. Employing modern features and practices it provides a fluid and intuitive interface that feels great to use.
Motivation
After going through other solutions provided out there in the market, I couldn’t find a single one of them that suited my requirements. Therefore, I embarked on a journey to create an app that was not only feature rich but also simple and uncluttered. That is when the notion of Intimo struck my mind.
Intimo is powerful and relies on a modern set of APIs to provide a seamless user experience. Some of the features that are already incorporated include:-
- Device usage dashboard
- Daily and weekly device usage aggregation
- Habit history
- Habit scheduling
- Habit goals
Some of the planned features include but not limited to:-
- Device usage limiting
- Dedicated device and habit widgets
- Cloud backup.
Installation
You can get the app directly from Playstore
To install the app directly from GitHub, the app depends on Kotlin compiler version 1.9.0
, grade version 8.0.0
and compose compiler version 1.5.0
.
- First clone the repository onto your local machine.
- Perform a Gradle sync to download all the dependencies.
- Run the app and enjoy.
Tech stack
Intimo relies heavily on the Jetpack suite of libraries by google. The UI is created using Jetpack Compose.
Architecture
The app employs the Recommended Architecture to achieve robustness and clear separation of concerns.
The app is separated into the following layers:-
Modules
Module | Purpose |
---|---|
:app | Serves as the entry point |
:core:designsystem | Contains all things design |
:core:util | Contains all utilities eg String extension functions |
:core:ui | Contains common ui components |
:core:data | Combines all the data from the various sources |
:core:database | Contains database implementations |
:core:datastore | Contains data from the datastore prefs |
:core:local | Contains data from disk eg. usage statistics |
:core:model | Contains all data model definitions |
:feauture:onboarding | Onboarding logic on setup |
:feature:summary | Dashboard data on home screen |
:feature:habit | Habit logic implementation |
:feature:settings | User preferences |
:feature:usage_stats | Device usage statistics implementation |
Interface
### State of things The app is in constant development hence new features are added regularly.
Any feedback is welcome through: githukudenis@gmail.com