All Articles
Adding Events to the User's Calendar from a Rork Max App: EventKit's Three-Tier Permissions and Write-Only Access
Since iOS 17, EventKit offers three access tiers: a permission-free UI, write-only, and full access. Here is how to ship calendar and reminders integration in a Rork Max app without tanking your opt-in rate.
Adding Game Center to a Rork Max Game: Authentication, Leaderboards, Achievements, and Living with Score Tampering
How to add Game Center to a Rork Max iOS game — working Swift code for authentication, leaderboards, and achievements, plus a realistic approach to score tampering.
Building a Place-Search Map in Rork Max with MapKit: MKLocalSearch, Pin Clustering, and Location Permissions
A hands-on guide to building a place-search map screen with Rork Max native Swift: nearby search with MKLocalSearch, when to switch from SwiftUI Map to MKMapView for pin clustering, and location permission design that survives App Review.
Logins Without Stored Passwords: Adding Passkey Authentication to a Rork Max App
How to add passkey authentication to a Swift app generated by Rork Max: Associated Domains setup, WebAuthn server verification with working code, and the device-testing pitfalls that cost me half a day.
When a Rork Video Call Is 'Connected' but Only One Side Can Hear — Field Notes on Instrumenting WebRTC's Silent Failures
Rork video calls that go one-way or quietly drop on the subway, diagnosed by measuring WebRTC with getStats instead of guessing. Covers ICE restart, verifying TURN relay, and clean teardown.
Putting Your Own Control in Control Center — ControlWidget Design That Adds Launch Paths to a Rork Max App
Implementing iOS 18 ControlWidget to place custom controls in Control Center, the Lock Screen, and the Action button: working ControlWidgetButton and ControlWidgetToggle code, its value as a launch path, and how it feeds retention.
Using MusicKit in Rork Max Native Swift — Apple Music Authorization, Search, and Playback in a Minimal Setup
Bringing MusicKit into a Rork Max Swift app: MusicAuthorization, catalog search with MusicCatalogSearchRequest, choosing between ApplicationMusicPlayer and SystemMusicPlayer, and handling non-subscribers with previews and offers.
Integrating Image Playground in Rork Max Native Swift — Availability Design and Fallbacks for In-App Image Generation
How to build Image Playground into a Rork Max Swift app: availability checks with supportsImagePlayground, the imagePlaygroundSheet modifier, programmatic generation with ImageCreator, and fallback design for unsupported devices.
Protecting Ad eCPM in Your Rork Max App: Designing ATT Pre-Permission Priming
For iOS apps built with Rork Max, ad revenue swings heavily on your ATT opt-in rate. Here is how to design a pre-permission priming screen, implement it in SwiftUI, measure the opt-in rate, and order AdMob init correctly.
Building SharePlay in Rork Max's Native Swift — Keeping Two Screens in the Same State
Implementation notes on building SharePlay with GroupActivities in Rork Max's native Swift — moving two screens through the same state over FaceTime. Covers declaring the GroupActivity, joining a GroupSession, syncing state with GroupSessionMessenger, handling latency and conflicts, catching up late joiners, and the boundary for bridging from React Native, with the pitfalls I actually hit.
Before You Reach for Tap to Pay on iPhone in a Rork Max App — Eligibility, Choosing a Payment Provider, and a Realistic Design
Implementation notes for judging, from a business angle, whether you can put Tap to Pay — accepting in-person payments on an iPhone alone — into a Rork Max app. Covers the organization-account and entitlement requirements, why you need a payment provider (PSP), the split between ProximityReader and the PSP, and a realistic path for an indie developer, told candidly.
Building a Song-Recognition App with ShazamKit in Rork Max's Native Swift
Implementation notes on building a song-recognition app with SHManagedSession in Rork Max's native Swift. Covers the difference from hand-rolling AVAudioEngine, designing the idle / prerecording / matching states, using prerecording to improve initial accuracy, and the boundary design for bridging from Expo — with the pitfalls I actually hit.