RORK LABJP
RORK MAX — Rork Max can now build native Swift apps for iPhone, iPad, Apple Watch, Apple TV, and Vision ProPUBLISH — Rork Max offers two-click App Store publishing with no Xcode required, cutting the friction of getting an app shippedEXPO — The standard Rork is built on React Native (Expo), generating native iOS and Android apps from plain-English descriptionsPRICING — Rork is free to start, with paid plans beginning at $25/month, an accessible tier for solo developersFUNDING — Rork raised $2.8M from a16z (Andreessen Horowitz) as investment keeps flowing into AI app buildersREVIEW — In real use the keys are generated-code readability and maintainability, Expo-related constraints, and how easily billing, push, and ad SDKs slot inRORK MAX — Rork Max can now build native Swift apps for iPhone, iPad, Apple Watch, Apple TV, and Vision ProPUBLISH — Rork Max offers two-click App Store publishing with no Xcode required, cutting the friction of getting an app shippedEXPO — The standard Rork is built on React Native (Expo), generating native iOS and Android apps from plain-English descriptionsPRICING — Rork is free to start, with paid plans beginning at $25/month, an accessible tier for solo developersFUNDING — Rork raised $2.8M from a16z (Andreessen Horowitz) as investment keeps flowing into AI app buildersREVIEW — In real use the keys are generated-code readability and maintainability, Expo-related constraints, and how easily billing, push, and ad SDKs slot in
Articles/Dev Tools
Dev Tools/2026-06-14Advanced

Reading Steps and Sleep into Your Rork Max Native App — HealthKit for Calm, Number-Light Wellness Apps

A walkthrough of adding HealthKit to the native Swift app Rork Max generates: reading steps, sleep, and heart rate, writing mindful sessions, and handling background delivery — including the App Store review wording and the production-only 'permission granted but zero data' trap.

Rork Max155HealthKit3Swift15WellnessPermissions2App Store Review7

Premium Article

When you run calm, wellness-style apps as an indie developer for long enough, requests start arriving like this: "Could you quietly show how far I walked today, next to the wallpaper on my home screen?" The goal is not to push numbers at people but to sit beside them gently. Once I framed it that way, borrowing the health data the iPhone already records felt far more honest than counting steps myself.

Because Rork Max generates native Swift apps in the browser, Apple-native frameworks like HealthKit — which take real effort to reach through React Native — are right there. This article walks through layering HealthKit onto the generated code, from permission design all the way to diagnosing why data fails to appear in production.

When Rork Max beats React Native for this job

HealthKit is designed to be touched directly from Swift or Objective-C. Expo (React Native) can reach it through a bridge such as react-native-health, but every new data type leaves you at the mercy of what the bridge has implemented. On an Expo test app I once tried to read heart rate variability and hit a wall: the bridge did not expose the relevant HKQuantityType, and that was the end of the road.

Rork Max emits a plain native app, so import HealthKit gives you Apple's types as-is — steps, sleep, heart rate, workouts — with no waiting on a bridge maintainer. The flip side is that native means you must follow the permission and background-delivery rules exactly, or the app fails quietly both in review and in production. Let's get those right.

Step 1: Declare capability and Info.plist at minimum scope

Start by declaring intent. Enable the HealthKit capability in your Rork Max project settings, then describe the purpose in Info.plist. Requesting many types greedily here invites the App Store reviewer to ask "why does this app need that?" — a common rejection trigger.

<key>NSHealthShareUsageDescription</key>
<string>Reads your step and sleep records so you can look back on how far you walked alongside your home-screen theme.</string>
<key>NSHealthUpdateUsageDescription</key>
<string>Saves the relaxation time you log in the app as a mindfulness entry in Health.</string>

The trick is to state what you read and why, specifically. Vague phrasing like "Uses health data" is easy to reject; on my first submission, a reviewer bounced the build because the NSHealthShareUsageDescription string was too ambiguous. This text is shown verbatim in the user's permission dialog, so writing it honestly also builds trust.

Thank you for reading this far.

Continue Reading

What follows includes implementation code, benchmarks, and practical content we hope you'll find useful. This site runs without ads — server and development costs are supported entirely by members like you. If it's been helpful, we'd be truly grateful for your support.

WHAT YOU'LL LEARN
Concrete Info.plist usage strings and Swift code to request the smallest possible HealthKit scope and survive App Store review
A working HKObserverQuery + Background Delivery setup that keeps ingesting steps while the app is closed, including the unregister trap
A field-tested checklist for the production-only 'I granted access but data is zero' symptom, with the calls I made running wellness apps as an indie developer
Secure payment via Stripe · Cancel anytime

Unlock This Article

Get full access to the rest of this article. Buy once, read anytime. This site is ad-free — your support goes directly toward keeping it running.

or
Unlock all articles with Membership →
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 →

Related Articles

Dev Tools2026-06-15
Exposing Your Rork Max App to Siri and Shortcuts with App Intents
How to add App Intents to a Swift app generated by Rork Max so Siri and Shortcuts can invoke your actions, from registering an AppShortcut to the production gotchas, with real code.
Dev Tools2026-04-05
Rork Max × WidgetKit & Live Activities Complete Guide 2026 — Dynamic Island Implementation
A complete guide to implementing iOS Widgets, Lock Screen widgets, and Dynamic Island Live Activities with Rork Max. Covers WidgetKit fundamentals, Timeline update strategies, App Intents integration, and monetization.
Dev Tools2026-03-27
Rork Max × Expo Modules API: Building and Distributing Custom Native Modules
Learn how to design, implement, test, and publish custom native modules using the Expo Modules API. Extend Rork Max with platform-specific features using Swift and Kotlin.
📚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 →