The problem

For Turkish-speaking users, daily health and habit tracking — prayer times, medication, water intake, sleep — is usually spread across five separate apps, each with its own interface and its own reminder system. There was no single place where all of it could be managed in natural language.

The solution

I built a single iOS app containing more than 30 modules — prayer, medication, water, sleep, exercise, diet, tasks, finance, reminders, journal, mood, quitting smoking, earthquake alerts and more. Every module can also be driven from the chat through a rule-based Turkish natural-language engine I called "LocalAgent": a sentence like "update yesterday's sleep record to 7 hours" or "delete the medication I just added" finds the right record in SwiftData and updates it directly.

As the number of modules grew, the interface became the real difficulty: nobody wants to see 30 modules at once. So modules can be switched on and off by category, and the ones used often can be starred and pinned to the home screen. The app's scope is wide; its day-to-day surface is only as wide as the user chooses.

Technology

SwiftUISwiftData@Observable AppStateRule-Based NLP60+ Data Models

A detail worth highlighting

The app's startup recovery chain tells the difference between a SwiftData store file being "unreadable" (because the device is locked) and being "corrupt" — confusing the two can wipe data for no reason. Mihver goes through the unreadable check first, and only if the store is genuinely corrupt (and only if a backup passes quick_check verification) does it recover atomically; store files are never deleted outright in any automatic flow, they are moved to quarantine first.

This chain took longer to build than a shortcut like "reset on any error" — but it protects the user's real data.

Screens

Mihver's Today screen — a welcome card showing both the Gregorian and Hijri date, the day's agenda and priorities row, the daily score ring and a shortcut to the starred Medication module
The Today screen — the day's agenda, score and starred modules at a glance.
Mihver's Assistant tab — a chat bubble where the app summarises the day in Turkish and flags the morning prayer missed for seven days, with suggested questions underneath
Assistant — a status summary and a missed-habit warning, in natural language.
Mihver's Modules screen — Tasks, Reminders, Prayer, Medication and Diet listed under the Planning, Worship and Health headings, each row with a star and a Remove button
Modules — switch on, switch off and star them by category.
Mihver's Trends and Streaks screen — day counters for the prayer, water, mood, journal, medication and smoke-free streaks, and how far each is from its next badge
Streaks — each module has its own day counter and badge threshold.

Let's talk about a similar problem

If there is a product with a wide scope that still has to keep a simple interface, there is a lot to talk about.