RORK LABJP
TOOLING — Rork's developer repos keep moving: rork-xcode was updated on July 16, rork-device on July 15, and rork-plist on July 13OPUS46 — Claude Opus 4.6 is live in Rork, and Rork Max is built to assemble apps on top of Claude CodeSIM — A cloud iOS simulator runs in the browser, with one click to install on a device and two clicks to publish to the App StoreMAX — Rork Max emits pure Swift rather than React Native, reaching iPhone, iPad, Apple Watch, Apple TV, Vision Pro, and even iMessageNATIVE — That opens up HealthKit, ARKit and LiDAR, NFC, Dynamic Island, Live Activities, 3D through Metal, and on-device inference with Core MLSEED — Rork raised a $15M seed led by Left Lane Capital, with Peak XV and a16z Speedrun joining the roundTOOLING — Rork's developer repos keep moving: rork-xcode was updated on July 16, rork-device on July 15, and rork-plist on July 13OPUS46 — Claude Opus 4.6 is live in Rork, and Rork Max is built to assemble apps on top of Claude CodeSIM — A cloud iOS simulator runs in the browser, with one click to install on a device and two clicks to publish to the App StoreMAX — Rork Max emits pure Swift rather than React Native, reaching iPhone, iPad, Apple Watch, Apple TV, Vision Pro, and even iMessageNATIVE — That opens up HealthKit, ARKit and LiDAR, NFC, Dynamic Island, Live Activities, 3D through Metal, and on-device inference with Core MLSEED — Rork raised a $15M seed led by Left Lane Capital, with Peak XV and a16z Speedrun joining the round
Articles/Getting Started
Getting Started/2026-04-19Beginner

Build a Medication Tracker App with Rork — Never Miss a Dose Again

Learn how to build a medication tracker app with Rork from scratch. This practical guide covers drug registration, daily check-ins, reminder notifications, and history tracking — no coding required.

Rork515app development40medication trackerremindertutorial20no-code27React Native209

If you've ever helped a family member manage their medications, you know how surprisingly tricky it is. Multiple pills at different times of day, and the nagging question: "Did I already take that one?" becomes a daily source of anxiety.

After trying several apps from the App Store and finding them either too complicated or missing exactly what I needed, I decided to build my own using Rork. What I ended up with turned out far more useful than I expected — and the whole process took a single afternoon.

Here's what we'll build:

  • Medication registration (name, timing, dosage)
  • Daily check-ins with a visual indicator (taken / not yet)
  • Reminder notifications at custom times (morning, noon, evening)
  • A history log with calendar view

This works on both iOS and Android, with zero lines of code written by hand.

Starting with the Medication List Screen

Open Rork and create a new project — the name doesn't matter, so "Medication Tracker" works fine. The key to getting a solid first result is writing a specific prompt rather than a vague one.

Here's the opening prompt I used:

Build a medication management app.

Screens:
- Home screen: today's medications listed with a checkbox for each (taken / not yet)
- Add medication screen: form to enter medication name, timing (morning/noon/evening/bedtime), and dosage
- History screen: past medication records displayed as a calendar or list

Design: clean and readable, with larger text for accessibility
Data storage: local storage using AsyncStorage

Don't aim for perfection on the first pass. Get something running, then iterate from there.

Fixing the Check-off Behavior

When testing in the Rork Companion app, I noticed that checking off a medication made it disappear from the list. That's not ideal — you want to see which ones you've taken today, especially if you're tracking multiple pills at once. Disappearing items make it hard to verify you haven't missed anything.

Here's the follow-up prompt to fix this:

Update the home screen behavior:

Current: checked medications disappear from the list
New behavior: checked medications remain visible with a strikethrough and lighter gray color
Add: a "Reset today's check-ins" button so users can clear all checks manually
Auto-reset: when the app is opened on a new day, all checkboxes should reset automatically

The "auto-reset on new day" logic involves storing the last open date in AsyncStorage and comparing it on launch. The code Rork generates typically looks like this:

// On app launch, compare today's date with the stored last-open date
const checkDateReset = async () => {
  const lastDate = await AsyncStorage.getItem('lastOpenDate');
  const today = new Date().toDateString();
  
  if (lastDate \!== today) {
    // New day detected — reset all check states
    await AsyncStorage.setItem('medicationChecks', JSON.stringify({}));
    await AsyncStorage.setItem('lastOpenDate', today);
  }
};

This small piece of logic makes a big difference in daily usability. For a deeper look at how Rork handles local data storage, check out Rork Local Storage Guide — AsyncStorage, MMKV, and SQLite Compared.

Adding Reminder Notifications

This was the part that impressed me most. Using Expo's local notification system, you can schedule daily reminders at exact times — all without any external service or backend.

Add medication reminder notifications.

Requirements:
- Each medication can have its own notification time (e.g., 8:00 AM, 12:00 PM, 9:00 PM)
- Notifications repeat daily at the specified time
- Tapping a notification opens the app
- Notifications can be toggled on/off per medication

Use: expo-notifications

One thing to verify: on iOS, local notifications require explicit user permission. Rork usually includes this, but it's worth confirming the permission request runs on first launch:

// Request notification permissions on first launch
const requestPermissions = async () => {
  const { status } = await Notifications.requestPermissionsAsync();
  if (status \!== 'granted') {
    Alert.alert(
      'Notifications Disabled',
      'To receive medication reminders, please enable notifications in your device settings.'
    );
    return false;
  }
  return true;
};

Important: local notifications don't work in the iOS simulator. You'll need to test on a physical device. For device testing setup, see the Rork Companion App Testing Guide.

For an in-depth look at local notifications with Expo, the Complete Guide to Expo Local Notifications covers scheduling, channels, and edge cases.

Building a Calendar-Style History View

I started with a simple list for the history screen, but quickly realized it wasn't giving me the at-a-glance view I actually wanted. A calendar that shows adherence at a monthly level is much more motivating.

Change the history screen to a calendar view.

Requirements:
- Monthly calendar display
- Day fully completed (all medications taken): green indicator
- Day partially completed: yellow indicator
- Day with no medications taken: red indicator
- Days with no record: no indicator
- Tapping a day shows a detail view: which medications were taken and when

Rork typically uses react-native-calendars for this, which integrates cleanly with Expo projects and requires no additional native setup.

There's a subtle psychological benefit here: seeing a streak of green days makes you not want to break it. It's the same principle behind habit tracking apps, but applied to medication adherence. For more on this design pattern, the Habit Tracker App Tutorial explores how to build motivation directly into the UI.

Handling Many Medications with Tabs

Once my parent had six or seven different medications in the list, the home screen started feeling overwhelming. Adding timing-based tabs solved this quickly.

Add tabs to the home screen.

Tabs: "All", "Morning", "Noon", "Evening", "Bedtime"
Each tab shows only medications for that timing
Auto-select the tab closest to the current time when the app opens

The "auto-select by current time" detail is what makes this genuinely useful rather than just decorative. If it's 8:30 AM, the Morning tab opens automatically — no need to think about which tab to check.

Testing Checklist Before Sharing with Family

Before handing this off to anyone else, go through these checks on a real device:

Core functionality

  • Can you add a medication and see it appear in the list?
  • Does the strikethrough appear correctly when checking a medication?
  • Does data persist after closing and reopening the app?
  • Does the check-in reset when you change the date? (Test by temporarily changing your device date)

Notifications

  • Do notifications arrive at the scheduled time? (Real device only)
  • Does tapping the notification open the app?
  • Does disabling a notification actually stop it from arriving?

Data integrity

  • When you delete a medication, are its scheduled notifications also cancelled?
  • If you reinstall the app, does the data survive? (AsyncStorage typically persists through reinstalls)

For a production version that syncs across multiple family members' devices, you'd want to connect to a backend like Supabase. But if privacy is a concern — and it should be with health data — keep data local until you've thought through the privacy implications carefully.

Unexpected Requests from Real Users

After sharing the app with my parent, the most popular feedback was about medication photos. Pill names alone aren't always enough to tell medications apart — especially for someone who didn't choose the medications themselves. Adding photo support took one prompt:

Add a photo field to the medication registration screen.
Users should be able to pick from their camera roll or take a new photo.
Show a small thumbnail next to each medication name in the list.

This is where building your own app has a real advantage over using off-the-shelf solutions. You can add exactly what your specific users need, not what some product team decided was good enough for the average person.

Where to Go from Here

The version we've built is a solid personal tool. Where it goes next depends on what you want to do with it.

If you're thinking about putting it on the App Store, medication tracking is a category with stable, ongoing demand — particularly among caregivers for elderly parents. It's a meaningful problem space, and a well-designed app stands out.

If sharing between family members is the priority, connecting to Supabase for real-time sync would let a caregiver check remotely whether a medication was taken — no more check-in phone calls.

The most useful next step right now: use it yourself for a week. Even if it's just for vitamins or supplements. Living with the app will generate a list of small improvements that no amount of planning would have surfaced. That's the feedback loop that turns a first prototype into something genuinely good.

Share

Thank You for Reading

Rork Lab is ad-free, supported entirely by members like you. We publish practical guides daily with implementation code, benchmarks, and production-ready patterns. If you've found it useful, we'd love to have you on board.

  • Copy-paste ready implementation code
  • New advanced guides published daily
  • $5/mo or $10 for lifetime access
View Membership →

If you found this article helpful, a small tip ($1.50) would mean a lot to us. Your support helps keep this site ad-free and covers server and hosting costs.

Related Articles

Getting Started2026-04-20
Build a Baby Diary App in 1 Hour with Rork — A Beginner's Guide to AI App Development
Learn how to build a baby diary and growth tracking app using Rork — no coding required. Add photo journaling, height/weight charts, and a photo gallery in about 1 hour with AI-powered app development.
Getting Started2026-04-19
Building Your First AI App Without Code — What 5 Days with Rork Actually Taught Me
No-code AI app development sounds easy — until you try it. Here's what 5 days of seriously using Rork revealed about the real first steps, the walls you'll hit, and how to get past them.
Getting Started2026-04-19
Build a Travel Planner App with Rork — Destinations, Schedules, and Packing Lists in One
A hands-on tutorial for building a travel planner app with Rork. Learn how to combine destination management, day-by-day itineraries, and packing checklists into a single app using prompts.
📚RECOMMENDED BOOKS
Build a Large Language Model (From Scratch)
Sebastian Raschka
LLM Dev
Prompt Engineering for LLMs
Berryman & Ziegler
Prompting
AI Engineering
Chip Huyen
AI Eng
* Contains affiliate links
See all →