Build A SwiftUI Document App With WritableDocument
Use SwiftUI's new snapshot-based document APIs to save native package documents and export PNG or PDF files.
Read moreUse SwiftUI's new snapshot-based document APIs to save native package documents and export PNG or PDF files.
Read moreWWDC26 adds sectioned queries, codable attributes, ResultsObserver, and HistoryObserver so SwiftData apps can react to store changes without hand-rolling array diffs.
Read moreSwift Charts can plot real three-dimensional data with Chart3D. Here is a compact SwiftUI example using PointMark, Z-axis values, species styling, and Chart3DPose...
Read moreSpeechAnalyzer and SpeechTranscriber bring a modern async speech-to-text API to Apple platforms. Here is a small file transcription example that returns an AttributedString.
Read moreSwiftUI's TextEditor can edit AttributedString directly on the newest Apple platforms. Here is a small rich text editor with selection-aware formatting controls...
Read moreSwiftUI finally has a native WebView through WebKit. Let's replace the old WKWebView wrapper with WebView, then use WebPage when we need loading progress, page titles, and find-in-page...
Read moreUse the Translation framework from SwiftUI with language availability checks, TranslationSession.Configuration, .translationTask, and batch translation.
Read moreSwiftData's iOS 18 schema macros can add indexes and uniqueness rules. Use them carefully for fast fetches and duplicate prevention.
Read moreSwiftData history lets you ask what changed since a saved token, which is useful for widgets, sync, badges, and background work.
Read moreReplace preference-key scroll tracking with onScrollGeometryChange, visibility modifiers, and ScrollPosition for feeds, pagination, and scroll-aware controls.
Read moreBuild a modern SwiftUI TabView that stays a tab bar on compact screens and adapts into a sidebar on iPad and Mac.
Read moreTextRenderer lets SwiftUI apps draw custom text effects while keeping text as text. Build a small highlight/reveal renderer with accessibility and reduced-motion notes.
Read moreSwiftUI's MeshGradient gives you animated, art-directed gradients without hand-building a Metal shader. Build a small reusable background and keep reduced motion in mind.
Read moreFlow layouts are one of those UI details that look easy until Dynamic Type, spacing, and reuse show up. Let's build a reusable SwiftUI Layout that wraps chips across rows without GeometryReader hacks.
Read moreNavigationStack works best when your app owns its route model. Let's build an enum-based SwiftUI router that handles pushes, sheets, deep links, and state restoration without scattering navigation code everywhere.
Read moreLast time we talked about how to refactor a callback based network call into an async/await based call. In that case, we had access to the underlying networking code & updated the entire chain of method calls to use async/await...
Read moreRecently I’ve refactored a few callback based network requests to use Swift’s new Async / Await syntax. Let’s take a look at how we can take a conventional callback based API method and improve its readability and simplicity...
Read moreAnother SwiftUI post coming your way! This time we’ll take a look at Divider and how we can change its color. As nice as it would be to change the divider color with tint or foregroundColor, we can’t do it that way ðŸ˜...
Read moreIf you’re a Swift blogger like me, you probably have to come up with some easy way to highlight code syntax on the web. After some searching I came across Splash which was created by the relatively famous John Sundell (he uses...
Read moreI was recently working on some XCUITests and attempting to get them working inside a CI/CD pipeline (Bitrise). It turns out that the virtual machines on Bitrise are a bit underpowered, so many things like building a project ...
Read moreLet’s take a look at how to change all of your targets’ build numbers and marketing versions in a single place. I was surprised to find that a lot of developers don’t know this simple trick & manually change their build numbers...
Read moreIf you're like me you probably get tired of manually incrementing your app build number in Xcode. After a few hours of testing I finally nailed down a simple solution that works on Xcode 13.2.1. Let's dive right in...
Read more