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.

42 articles

Start Here

All 42 Articles

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...

2026-05-04 11m read

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...

2026-05-04 11m read

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.

2026-05-04 13m read

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...

2026-05-04 11m read

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...

2026-05-04 11m read

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.

2026-05-04 9m read

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...

2026-05-04 10m read

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...

2026-05-03 10m read

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...

2026-05-03 12m read

@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.

2026-05-03 11m read

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.

2026-05-03 11m read

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...

2026-05-03 13m read

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...

2026-05-02 12m read

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.

2026-05-02 14m read

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 ...

2026-05-02 13m read

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...

2026-05-02 12m read

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.

2026-05-02 19m read

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...

2026-05-02 14m read

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.

2026-05-02 11m read

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...

2026-05-02 12m read

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.

2026-05-02 13m read

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...

2026-05-02 11m read

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.

2026-05-02 14m read

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...

2026-05-02 13m read

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...

2026-05-02 14m read

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.

2026-05-01 17m read

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...

2026-05-01 18m read

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...

2026-05-01 11m read

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...

2026-05-01 17m read

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.

2026-05-01 16m read

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...

2026-04-30 17m read

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...

2026-04-30 16m read

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.

2026-04-30 16m read

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.

2026-04-30 16m read

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...

2026-04-30 18m read

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...

2026-04-30 16m read

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...

2026-04-30 15m read

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...

2026-04-29 18m read

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.

2026-04-29 19m read

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...

2026-04-29 19m read

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,...

2026-04-29 17m read

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...

2026-04-28 18m read