SkillAgentSearch skills...

Reluct

Digital Wellbeing and Productivity Manager

Install / Use

/learn @ApimorLabs/Reluct
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Note: This no longer maintained, to see the maintained version of this app see Reluct Multiplatform

⌛ Reluct

Code Checks Build Pipeline

<a href="https://twitter.com/rackadev" target="_blank"> <img alt="Twitter: rackadev" src="https://img.shields.io/twitter/follow/rackadev.svg?style=social" /> </a>

An app to manage your screen time, assign Tasks and set personal goals. Works on Android with Desktop support in the works.

✨ Documentation

🤳 Screenshots

💻 Install

| Platform | Download | Status | |-------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------| | Android | Download Button | 🧪 Alpha | | Desktop - Windows | Download Button | 🧪 Not Released | | Desktop - macOS | Download Button | 🧪 Not Released | | Desktop - Linux | Download Button | 🧪 Not Released |

ℹ️ Compose Debug apks are sometimes laggy as they contain a lot of debug code.

ℹ️ Download the app from Play Store and it will have the expected performance.

🏋 Requirements

  • Java 17 or above
  • Android Studio Dolphin | 2021.3+

🏗️️ Built with

| Component | Libraries | |-------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | 🎭 User Interface | Jetpack Compose + Compose Multiplatform | | 🏗 Architecture | MVVM | | 💉 DI | Koin | | 🛣️ Navigation | Compose Navigation, Decompose | | 🌊 Async | Coroutines + Flow + StateFlow + SharedFlow | | 🌐 Networking | Ktor Client | | 💵 Billing | RevenueCat | | 📄 JSON | Kotlin Serialization | | 💾 Persistence | SQLDelight, Multiplatform Settings | | ⌨️ Logging | Timber - Android, slf4j + logback, Kermit | | 📸 Image Loading | Coil | | 🧪 Testing | Mockk, JUnit, Turbine, Kotlin Test + Robolectric | | ⌚ Date and Time | Kotlinx DateTime | | 🔐 Immutability | Kotlinx Immutable Collections | | 🔧 Supplementary | Accompanist |

Issues

If you encounter any issues you simply file them with the relevant details here

📃 Important Analysis

1. The purpose of this project

I made this project solely as a means of learning about Kotlin Multiplatform, Jetpack Compose and multi module project structuring. I do not advocate for the use of this structure, especially for small projects. You can easily get similar results and re-usability with far less modules than this. I made this to test the boundaries of Jetpack Compose and see how tooling works with Kotlin Multiplatform. You can checkout a similarly structured project (with Compose Desktop already running) called Thinkrchive

2. Evaluating Jetpack Compose on Android

There has been a lot of talk and doubt on Jetpack Compose and how production ready is it. After dealing with it in this project (I've used it other projects too). I can say the following;

i. Tooling

Tooling for Compose varies from easy to annoying.

  • With Android Studio Dolphin we have full support for Layout Inspector and can see the number of recompositions happening in the app.
  • We now have better support for Previews in Android Studio Electric Eel with a "hot reload like" feature upon code changes. The feature is called Live Edit. While its good it doesn't really compare to the convenience of previews in XML since there is no compilation involved there.
  • Support for Animation Previews is a very big feature that I really enjoy using. But it faces the same issues of slow compilation on code changes as Previews
  • No drag and drop like feature for UI components. It's hard to make such tool for Compose since it's Kotlin code that's adaptive. Some would argue that they never use drag and drop with XML but it's very much a deterring reason to some. At least we have Relay that can help you with some of this.

Most of the instability issues with the IDE have been fixed and it's very stable now but the slow Previews that can only be fixed by faster machines are still a very big issue to some developers.

ii. Going outside the box

Implementing designs that are different from the Material Design spec can vary from extremely easy to very hard. Compose is very flexible and you will get more benefits if you are tasked with creating a design system. Compared to XML, custom designs are very easy in Compose and over great re-usability when done correctly. I have a components module that has all the common custom components use throughout the app for easy re-usability and consistent design.

But it's not all rainbows, when you start doing custom things it can become tricky pretty fast.

1. Making the bottom navigation bar collapsible on scroll or in some destinations was quite tricky

You need the bottom nav bar to be at the top most Scaffold for the best effect, but hiding and showing it is based on the chil

Related Skills

View on GitHub
GitHub Stars95
CategoryDevelopment
Updated3mo ago
Forks12

Languages

Kotlin

Security Score

92/100

Audited on Dec 28, 2025

No findings