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-15Advanced

Showing Live Progress in the Dynamic Island from a Rork Max Swift App

How to add an ActivityKit Live Activity to a Swift app generated by Rork Max so progress shows in the Dynamic Island, plus the update-related pitfalls I hit in production.

Rork Max155Dynamic Island2ActivityKit2Live Activities3SwiftUI48

Premium Article

I had a small timer app on the App Store, and the reviews kept circling the same complaint: "When I close the app I lose track of how much time is left." People wanted to glance at the remaining time from the home screen and the lock screen. The place that answers that wish is the Dynamic Island.

Rork Max generates native Swift, but a feature like a Live Activity, which pushes state outside the app, takes more than running the generated scaffold as-is. Adding the extension target, splitting the presentations, and managing the update budget all end up being hand work. Here is the order I used as an indie developer when I wired it into my own app.

The Dynamic Island Is Another Output for Live Activities

Let me clear up a common misconception first. The Dynamic Island is not a standalone API. When you define an ActivityKit Live Activity, that same state flows to both the lock screen banner and the Dynamic Island. Write one state model and you get two presentation surfaces for free.

Once that clicks, the rest is "draw the same data in different shapes." The flip side is that if you do not nail the state model first, both surfaces break together.

Define the State Model

The heart of a Live Activity is ActivityAttributes. Separate the unchanging attributes (a title) from the ContentState that changes moment to moment (the remaining time).

import ActivityKit
import SwiftUI
 
struct TimerAttributes: ActivityAttributes {
    public struct ContentState: Codable, Hashable {
        var endDate: Date
        var isPaused: Bool
    }
 
    var taskName: String
}

Put only values that change on updates into ContentState. Anything fixed after launch, like taskName, lives outside. Drawing that line early keeps the update code thin.

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
A three-step path to define ActivityAttributes and ContentState and launch a minimal Live Activity
Real DynamicIsland builder code for the compact, minimal, and expanded presentations
Seven production gotchas: the 8-hour cap, the update budget, and the APNs header for push updates
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-14
Updating Live Activities Remotely: Putting Live Lock Screen Info on a Rork App
A practical design for updating Live Activities remotely through APNs so the Lock Screen and Dynamic Island stay current even when your app is closed. Covers push-to-start vs update tokens, the content-state payload, stale-date and the update budget, and bridging from Expo, with working code and the issues I hit in production.
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-05-17
Testing Rork Max SwiftUI Features on a Real Wallpaper App — What Worked, What Needed Fixes
As a developer with 50 million cumulative app downloads, I put Rork Max's SwiftUI generation through its paces using my actual wallpaper app as the benchmark. Here's an honest breakdown of features that worked, features that needed adjustment, and features I ended up writing by hand.
📚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 →