Apple Ecosystem Series
21 essays on shipping production iOS 26 apps in 2026: App Intents and MCP for agentic Apple; Foundation Models, Vision, and Core ML for on-device intelligence; Liquid Glass and Symbol Effects for the visual layer; multi-platform SwiftUI, Live Activities, and watchOS patterns. Drawn from production code in Water, Get Bananas, Return, and the rest of the 941 portfolio.
95 articles
Start Here
All 95 Articles
canOpenURL Is Deprecated: What to Call Instead
Apple deprecated canOpenURL in three sentences, and halved the scheme allowlist ceiling to 25 entries. The replacement, and the one check it cannot do...
The Consent Lifecycle: What Ships After the Age Check
Declared Age Range answers how old. PermissionKit, ageRatingCode, and RESCIND_CONSENT answer who approves, and what happens when approval is withdrawn...
Xcode 27 Removes ld64 and Requires Unique Module Names
Xcode 27 removes the ld64 linker and requires unique Clang module names. Both fire on toolchain upgrade. An audit of seven projects and tested command...
Xcode 27 Drops Intel: What Stops and What Still Ships
Xcode 27 runs only on Apple silicon, still ships Universal apps back to macOS 12, and silently drops x86_64 from ARCHS_STANDARD at deployment target 2...
The @State Macro: What Xcode 27 Stops Compiling
Xcode 27 reimplements SwiftUI's @State as a Swift macro. The break lands on toolchain upgrade, not deployment target, and two patterns stop compiling.
The iOS 27 Launch Screen Rule: Four Keys or Rejection
Apps built with the iOS 27 SDK must declare a launch screen or the App Store rejects them. The four keys, and how to audit a target with a generated p...
The App Store's Social Media Checkbox and What It Costs
September's App Store rule makes every submission declare social media capabilities. The under-13 carve-out costs an entitlement, an API, and a branch...
On Demand Resources Is Deprecated: What Background Assets Costs
Apple deprecated ODR in 13 words. The replacement forks three ways, sets an iOS 26 floor, and hands you back the disk management the system used to do...
SwiftData Performance Is a Storage Problem
What the WWDC 2026 SwiftData lab taught about performance: WAL concurrency, fetchCount and fetchIdentifiers, the Sendable boundary, and the aggregate ...
Why Safari 27 Ships 525 Fixes: Notes From the WebKit Lab
The WWDC 2026 Safari lab on how WebKit decides what to build: 525 fixes, a module-loader rewrite for top-level await, :has(), appearance: base, and mo...
Apple's First-Party Answer to Prompt Injection
WWDC 2026: Apple cites the lethal trifecta, ships deterministic guardrail APIs in Foundation Models and App Intents, and moves PCC onto Google Cloud.
Apple's Font Interpreter Is Now Swift, and 13% Faster
Apple's security team rewrote the TrueType hinting interpreter from C to memory-safe Swift, made it 13% faster, open-sourced it, and showed the techni...
Container Machines: A Persistent Linux Environment on Mac
Apple's container tool hits 1.0 with container machine: a fast, persistent Linux environment on macOS with your user, home directory, and dotfiles mou...
UIKit's Scene Mandate: What Fails to Launch on iOS 27
Apps built with the iOS 27 SDK must adopt the UIKit scene-based life cycle or they fail to launch. The timeline, the migration steps, and the agent sk...
ImageCreator Is Deprecated: What Breaks in iOS 27
Apple is discontinuing Image Playground's ImageCreator class in iOS 27, with TestFlight runtime errors in beta and compile failures at public release.
Apple Is Open-Sourcing the Foundation Models Framework
WWDC 2026: the Foundation Models framework goes open source this summer, so the same Swift API runs server-side, plus a new Skills package live on Git...
What Apple's Performance Team Said in the WWDC26 Lab
Apple's Power & Performance team answered live developer questions at WWDC26. Field guidance on MetricKit, Power Profiler, thermals, and AI contention...
What Apple's Swift Team Said in the WWDC26 Lab
Apple's Swift Group Lab at WWDC26 ran without captions. We transcribed it locally. Candid engineer answers on concurrency, ~Sendable, and the roadmap.
Xcode 27 Ships Agent Skills You Can Export Anywhere
Xcode 27 bundles two SwiftUI agent skills and a one-command exporter. xcrun agent skills export moves Apple's best practices into Claude Code or Codex...
The HTML <model> Element Comes to Every Apple OS
The HTML model element now renders drop-in 3D in Safari on iOS, iPadOS, and macOS with stagemode, entityTransform, baked animation, and AR Quick Look.
MetricKit Rebuilt: State-Aware Telemetry in iOS 27
MetricKit is rebuilt in iOS 27: async metric and diagnostic streams, Codable reports, and a StateReporting framework that splits metrics by app state.
Foundation Models from Python: the fm CLI
macOS 27 ships the fm command line tool plus a Foundation Models SDK for Python, so you can script Apple's on-device model and build evaluation pipeli...
Running Agentic AI on the Mac with MLX
WWDC 2026: run the full agentic AI loop locally on the Mac with MLX, scale it across multiple Macs, then secure and profile it with Apple's frameworks...
App Schemas: Make Your App Available to Siri
App Schemas describe an app's content and actions in terms Siri already understands, so Siri reasons over your data and acts on it, no training phrase...
What's New in Instruments 27 for App Responsiveness
Instruments 27 adds Top Functions, Run Comparisons, a Swift executors instrument, and a new Inspector panel to diagnose CPU, actor, and syscall hangs.
Meet Music Understanding: On-Device Audio Analysis
Music Understanding is Apple's on-device framework for analyzing a song's key, rhythm, structure, pace, instrument activity, and loudness in Swift cod...
USDKit: Swift-Native OpenUSD on Apple Platforms
USDKit brings first-class OpenUSD to Swift: open a stage, reference assets via composition, author accessibility, and export with mesh compression in ...
CSS Grid Lanes: Native Masonry in Safari
CSS Grid Lanes brings native masonry layout to Safari 26.4 in three lines of CSS, with a flow-tolerance dial that fixes masonry's old tab-order proble...
Customizable Select: Style the Real <select> at Last
Safari 27 and Chrome 135 let you style the real select element: appearance: base-select, ::picker(select), rich HTML in options, and a swappable butto...
Foundation Models Image Input in iOS 27
iOS 27 gives the on-device Foundation Models LLM Vision: drop a UIImage, CGImage, or pixel buffer into a prompt as an attachment, and reason over it.
Game Porting Toolkit 4: Agentic Game Ports on Mac
Game Porting Toolkit 4 ships agentic porting skills as a Claude Code plugin plus gpucapture and gpudebug CLI tools. Cyberpunk's manual port set the ba...
SwiftUI Performance and Interop in iOS 27
How iOS 27 SwiftUI handles lazy-stack scrolling, GPU shader effects, and AppKit/UIKit interop, drawn from three official WWDC26 UI Frameworks sessions...
App Intents in iOS 27: Background, Sync, Spotlight
iOS 27 gives App Intents background execution past 30 seconds via LongRunningIntent, cross-device identity with SyncableEntity, and Spotlight reindexi...
Foundation Models on Private Cloud Compute
iOS 27 adds a server-scale Foundation Model on Private Cloud Compute with on-device privacy, plus a protocol to plug in your own LLM provider.
HealthKit in iOS 27: Workout Zones, New Types
iOS 27 makes workout heart-rate zones first-class HealthKit data via HKWorkoutZoneConfiguration and HKWorkoutZoneGroup, plus new menopausalState types...
Foundation Models in iOS 27: Tool-Calling Control
iOS 27 adds GenerationOptions.ToolCallingMode to steer how the on-device model uses tools, plus built-in Vision tools: OCRTool and BarcodeReaderTool.
Building a Responsive Camera App in iOS 27
iOS 27 cuts camera launch in half with Deferred Start, adds Pro Video Storage for ProRes writes, and brings the Center Stage square front camera to yo...
What's New in SwiftUI for iOS 27
iOS 27 reworks SwiftUI lists, documents, toolbars, and errors: drag-to-reorder, a readable/writable document model, toolbar overflow, item-based alert...
Accessibility in iOS 27: Reading Apps & Custom Controls
iOS 27 accessibility for reading apps and custom controls: text navigation linking, causesPageTurn, UITextInput, the adjustable trait, and direct touc...
What's New in visionOS 27 for Spatial Devs
visionOS 27 adds Spatial Preview from the Mac, Foveated Streaming from a PC, immersive Safari environments, metric-space object tracking, and RealityK...
RealityKit And Reality Composer Pro 3 In 2026
WWDC26 matured Apple's spatial pipeline: RealityKit lighting and cloth, plus a standalone Reality Composer Pro 3 with live preview and Xcode plug-ins.
SwiftData in iOS 27: Observation and History
iOS 27 gives SwiftData first-class change observation with ResultsObserver, persistent-history observation with HistoryObserver, and codable attribute...
Evaluations: XCTest for Model Quality (iOS 27)
Apple's Evaluations framework (iOS 27, all platforms) measures AI feature quality in Swift: Evaluator, ScoreDimension, Metric, ToolCallEvaluator, and ...
What's New in Swift (2026): The WWDC26 Update
Swift 6.3 and 6.4 from WWDC26: anyAppleOS availability, module selectors, borrow/mutate accessors, the Iterable protocol, Swift Testing interop, and M...
Xcode 27 Went Agentic
Xcode 27 builds coding agents into the IDE: plan-mode feature work, UI prototyping via previews, agent-driven localization, and Xcode Cloud automation...
Core AI: Running Models on Apple Silicon
Core AI is iOS 27's low-level model-execution framework: asset vs model, NDArray tensors, compute-unit targeting, and inference functions on Apple sil...
Metal for Machine Learning in 2026
WWDC26 made Metal a first-class ML compute surface: Metal tensors for custom kernels, the M5 neural accelerator, real-time neural rendering, and MLX S...
On-Device AI Across iOS 27: Spotlight and Media
iOS 27 threads the on-device model through the system: SpotlightSearchTool makes Core Spotlight LLM-grounded, and AVFoundation generates subtitles on ...
Apple Foundation Models: The On-Device LLM Framework, Explained
Apple's Foundation Models framework: LanguageModelSession, @Generable guided generation, tool calling, availability, and when to leave the on-device m...
Apple's Translation Framework: Free, On-Device, and Sharper Than It Looks
Apple's Translation framework: free on-device translation via translationPresentation and TranslationSession, plus the offline-download edges demos sk...
MLX on Apple Silicon: When You Need Your Own Model, Not Apple's
Foundation Models gives you Apple's sealed on-device LLM. MLX runs your own: quantized open-weight models and LoRA fine-tunes on Apple Silicon.
The iOS 26 Widget Surface: One App Intent, Many Places
iOS 26 widgets, Control Center controls, and Live Activities are all App Intents surfaces. One intent powers buttons, controls, and Live Activity acti...
Swift 6.2 Concurrency in Practice: Default to MainActor, Escape on Purpose
Swift 6.2 inverts concurrency: default your module to MainActor (SE-0466), run nonisolated async on the caller (SE-0461), escape with @concurrent.
Apple Silicon TBDR: What App Developers Actually Get
Apple silicon GPUs use tile-based deferred rendering. Imageblocks, tile shaders, raster order groups, and A11+ enhancements that change Metal app desi...
App Intents 2.0 in iOS 26: Visual Intelligence and Snippets
iOS 26 expanded App Intents with IntentValueQuery for Visual Intelligence, @DeferredProperty for async values, interactive snippets, entity view annot...
Foundation Models Custom Adapters: When To Train One
iOS 26 Foundation Models custom adapters train LoRA weights, export .fmadapter packages, ship via Background Assets, and require Apple's entitlement.
Image Playground API: SwiftUI Sheet, Programmatic Image Creator, And Style Control
Image Playground gives apps two paths: the SwiftUI imagePlaygroundSheet modifier and the programmatic ImageCreator API for generating images from conc...
Genmoji and NSAdaptiveImageGlyph: Inline Emoji on iOS 18+
Genmoji ships as NSAdaptiveImageGlyph in attributed text. Apps using UITextView with TextKit 2 enable supportsAdaptiveImageGlyph and handle serializat...
Metal 4 Essentials: What The New Core API Actually Changes
Metal 4 ships parallel MTL4-prefixed types alongside Metal in iOS 26. Multi-threaded command encoding, unified compute, and ML as a first-class GPU pa...
Foundation Models Use Cases: General vs Content Tagging
iOS 26 Foundation Models has .general and .contentTagging use cases. Use Apple's rules to decide when prompting beats specialization.
Custom SF Symbols: The Variable Template And The Three Required Sources
SF Symbols creates 27 variations from three source designs. The variable template, compatible-data path requirements, rendering modes, and the Xcode h...
AVFoundation HDR And Apple Log: Pro Video Workflows On iPhone
iPhone 15 Pro+ records Apple Log alongside HEVC and ProRes. AVFoundation exposes HDR (HLG, HDR10, Dolby Vision) and Apple Log through AVCaptureDevice.
@Observable Internals: The Macro, The Registrar, And What ObservableObject Got Wrong
@Observable replaces ObservableObject's broadcast model with per-property access tracking. The macro expansion, the registrar, and the migration trap.
HealthKit Workout Lifecycle: HKWorkoutSession States And The iOS 26 Cross-Platform Surface
watchOS workout sessions move through a six-state lifecycle. iOS 26 brought HKWorkoutSession to iPhone. The state machine, the live builder, and the d...
SwiftUI Layout Protocol: Building Custom Layouts From sizeThatFits To placeSubviews
iOS 16's Layout protocol lets apps build custom layouts with two methods. sizeThatFits, placeSubviews, the proposal contract, layout values, and cachi...
SwiftData Migrations: Lightweight vs Custom, And When You Don't Need a V2
SwiftData's migration model uses VersionedSchema, MigrationStage, and SchemaMigrationPlan. Most schema changes don't need a V2 schema; the cases that ...
Writing Tools API: How Apps Plug Into Apple Intelligence's Writing Layer
iOS 18 introduced Writing Tools. iOS 26 makes adoption a single property for standard text views, and a designed coordinator API for custom text engin...
Symbol Effects: SwiftUI's Built-In Animation Vocabulary For Every Icon
SF Symbols ships an animation vocabulary every iOS app can speak. Bounce, pulse, scale, replace, variable color, breathe: already designed, accessible...
The Privacy Manifest Deep Dive: What Counts As Data Collection
Apple's privacy manifest is a structured contract, not a checkbox: four sections, five required-reason API categories, SDK rules, common gotchas.
Swift Testing: The Framework Replacing XCTest, and What Stays In XCTest
Swift Testing ships with Xcode 16+ and Swift 6. Macros, traits, parametrized tests, parallel by default. Migrate incrementally; UI tests stay in XCTes...
visionOS Spatial Patterns Beyond the Window
Apps that float an iPad UI on Vision Pro miss the platform. Windows, Volumes, Immersive Spaces, ornaments, attachments: the visionOS-native vocabulary...
Apple Vision Framework: On-Device CV Most Devs Skip
Apple Vision ships more than two dozen on-device CV operations. Most devs default to OpenAI Vision for tasks Vision performs in milliseconds, free, on...
Accessibility As Platform: Personal Voice, Live Speech, Eye Tracking, Music Haptics
Personal Voice, Live Speech, Eye Tracking, Music Haptics, Vocal Shortcuts: accessibility as platform features, not app responsibilities.
tvOS Focus Engine: SwiftUI Patterns for the Siri Remote
Apple TV navigates by focus, not touch. SwiftUI's .focusable, @FocusState, focusSection, and prefersDefaultFocus are the vocabulary. The patterns that...
Apple's New Speech Framework: SpeechAnalyzer vs SFSpeechRecognizer
iOS 26 introduces SpeechAnalyzer with SpeechTranscriber + SpeechDetector modules, an on-device replacement for SFSpeechRecognizer. When to migrate.
Core ML On-Device Inference: The Patterns That Actually Ship
Core ML runs models on Neural Engine, GPU, or CPU. The patterns that ship: model conversion, dispatch hinting, latency budgets, and quantization.
The Apple Platform Matrix: Which Targets Deserve Which App
iOS, iPad, Mac, Watch, Vision, TV. Six platforms, six obligations. Picking Apple targets is a product decision before it is an engineering one.
SF Pro: Variable Axes, Optical Sizing, And The Dynamic Type Contract
Apple's system font ships with three variable axes and continuous optical sizing. The vocabulary that makes typography work across the Apple platforms...
Three Surfaces: Human, Apple Intelligence, Agent
Every iOS app capability faces three surfaces: human, Apple Intelligence, agent. Each has different obligations, rendering, latency, and trust posture...
Foundation Models Agentic Workflow: In-App Vs Tooling LLM
Two LLMs touch a Swift app. The on-device model that ships with the app and the agent that wrote the code. Different stacks, different obligations.
Single Source Of Truth: SwiftData, MCP, iCloud
Three callers can write to the same shopping list: a human, Apple Intelligence, and an external agent. Truth has to live somewhere. Pick the substrate...
Hooks For Apple Development: Patterns That Save The Project
An iOS agent has the developer's signing keys, builds, and project file reachable. Hooks bound the blast radius. Four shipping patterns.
What I Refuse To Write About
A blog cluster's voice comes from what it refuses to publish, not what it ships. Categorical, pattern, and interesting refusals each shape what the cl...
App Intents vs MCP: The Routing Question
Two protocols, one app. App Intents expose your app to Apple Intelligence. MCP exposes the same domain to Claude, ChatGPT, and the rest. The routing q...
RealityKit And The Spatial Mental Model
RealityKit is an entity-component-system, not SwiftUI in 3D. Anchors place entities in real space. Five ways the model differs from a window.
What SwiftUI Is Made Of
SwiftUI is a result-builder DSL on top of a value-typed View tree. Once the substrate is visible, AnyView, Group, and ViewBuilder stop being mysteriou...
Foundation Models On-Device LLM: The Tool Protocol
iOS 26's Foundation Models framework puts a 3B-parameter LLM on every Apple Intelligence device. The Tool protocol is the surface that makes the model...
SwiftData's Real Cost Is Schema Discipline
SwiftData's API is two macros. The cost is what happens after you ship. Optional fields are the cheap migration; non-optional adds need a VersionedSch...
watchOS Runtime Is a Contract, Not a Background Task
watchOS has no iOS-style background. WKExtendedRuntimeSession is the contract; without it, the app suspends on wrist drop. Pattern shipped in Return.
Live Activities Are a State Machine, Not a Badge
Return's Live Activity looks like a Lock Screen countdown. It is a five-state lifecycle machine with three dismissal paths. The production code and bu...
Liquid Glass in SwiftUI: Three Patterns From Shipping Return on iOS 26
Apple's Liquid Glass is a one-line SwiftUI API. Three patterns from Return go beyond .glassEffect(): glass on text via Core Text glyph paths, mirror r...
Five Apple Platforms, Three Shared Files: How Return Actually Ships Cross-Platform SwiftUI
Return runs on iPhone, iPad, Mac, Apple Watch, and Apple TV. Three Swift files are shared across all five targets out of 40 total. The rest is duplica...
MCP Server Alongside an iOS App: Two Agent Ecosystems, One List
Get Bananas runs on iOS, macOS, watchOS, and visionOS. It also lives inside Claude Desktop as an MCP server. Bridge: iCloud Drive plus a JSON file.
HealthKit + SwiftUI on iOS 26: Authorization, Sample Types, and Cross-Platform Patterns
Real production patterns from Water (water tracking, HKQuantitySample) and Return (mindful sessions, HKCategorySample). Permission UX, async wrappers,...
App Intents Are Apple's New API to Your App
I shipped an App Intent in Water on Feb 8, 2026. Here's what Apple Intelligence wants from third-party apps in iOS 26, and why App Intents are the con...