AideyHD: keeping the data on your own devices

Personal project  Designer and architect  iOS and Android  Jul 2026 – present

SwiftUI  SwiftData  CloudKit  Kotlin  Room  Jetpack Compose

AideyHD is an app for people with ADHD. My first commit was on July 1, 2026, and the open beta for iOS and Android went out on August 26.

How it was built

I designed AideyHD and made the architecture and product decisions. I took it through App Store Connect and Google Play, and I continue to iterate on it. I didn’t write most of the code. Claude Code wrote most of the Swift and Kotlin, and I never really learned Swift properly.

I review the code Claude writes before it ships. I give Claude separate days for research, design discussion, implementation, and fixing reported bugs.

How I test it

I have testing criteria for my apps, from normal use cases to edge cases, and I test on several Android phones and iPhones. I also write unit tests with Claude’s help to prevent regressions.

During the closed beta, an older tester complained that the UI wasn’t intuitive. I researched solutions with Claude, then added onboarding pages and improved the UI to guide new users.

One time I tested the alarm feature on my Redmi, which runs MIUI. Unplugged and left alone, the Redmi didn’t deliver reminders at all. It held them and released them in a burst when the phone woke up. Nine alarms were affected, and the worst was 48 hours 35 minutes late. The alarms were armed correctly the whole time, and MIUI’s own logs show it held the alarm itself.

A Pixel 3, also unplugged overnight without any exemption, fired every alarm to the second. With Claude helping on the logging and troubleshooting, I confirmed the Pixel was really idle: its battery drained from 100% to 36%, and the alarm had to cold-start the app. Stock Android honors the exact-alarm API, and MIUI overrides it.

Redmi’s battery optimization caused the delay, and exempting the app fixes it. Users have to grant the exemption themselves. The app can’t do it for them, so it now has a Background delivery row in its reminder settings that opens the system screen where they can change it. That issue closed on August 23, three days before the open beta.

Where the data lives

One of the core ideas of AideyHD is that the user’s data stays on the device or between their devices. It’s part of the anti-shaming idea of the app, for ADHD users who are prone to shaming and being exposed to the public.

On iOS, sync between a person’s own Apple devices runs on CloudKit. The data goes to the user’s own iCloud account, and I don’t run a server that holds it. Sync is optional, and it ships turned off. The Android build has no sync, and its data stays on the phone.

A server of my own would have meant manually creating a database schema that matches the app’s, which CloudKit already handles. I could have added server-specific fields, but for AideyHD that’s unnecessary work.

What happens when devices disagree

AideyHD has no conflict-resolution code of its own. CloudKit mirroring under SwiftData resolves conflicts, and the result is effectively last writer wins. The app’s code adds a list of things deliberately kept per device.

With sync on, a device that has been asleep pulls only what changed when it wakes.

Status

AideyHD is in open beta on iOS and Android, and anyone can join from aideyhd.com. The iOS build runs through TestFlight.