# Xcode

Published articles for Xcode.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Automating App Store Screenshots

DevFeed: [Automating App Store Screenshots](<https://devfeed.tech/articles/automating-app-store-screenshots-27367.md>)

Original publisher: [Read original article](<http://engineering.khanacademy.org/posts/automating-app-store-screenshots.htm>)

Author: Khan Academy

Published: 2017-03-27T22:00:00Z

Content type: tutorial

Language: en

Sources: [Khan Academy](<https://devfeed.tech/sources/khan-academy.md>)

Topics: [iOS](<https://devfeed.tech/topics/ios.md>), [ui-testing](<https://devfeed.tech/topics/ui-testing.md>), [Xcode](<https://devfeed.tech/topics/xcode.md>), [Sketch](<https://devfeed.tech/topics/sketch.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [Testing](<https://devfeed.tech/topics/testing.md>)

Tags: [app-store](<https://devfeed.tech/tags/app-store.md>), [design](<https://devfeed.tech/tags/design.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [fastlane](<https://devfeed.tech/tags/fastlane.md>), [ios](<https://devfeed.tech/tags/ios.md>), [iphone](<https://devfeed.tech/tags/iphone.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [news](<https://devfeed.tech/tags/news.md>), [screenshots](<https://devfeed.tech/tags/screenshots.md>), [testing](<https://devfeed.tech/tags/testing.md>), [ui-testing](<https://devfeed.tech/tags/ui-testing.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

A tutorial describing how Khan Academy automated App Store and Play Store screenshots with Xcode UI tests, Fastlane, a Snapfile, and a homegrown Sketch file. The team reduced screenshot update time from about a week to about an hour.

### Source excerpt

By Bryan Clark One of the more tedious design tasks is keeping your App Store promo images up-to-date. ... Read more

## Introducing SwiftTweaks

DevFeed: [Introducing SwiftTweaks](<https://devfeed.tech/articles/introducing-swifttweaks-27384.md>)

Original publisher: [Read original article](<http://engineering.khanacademy.org/posts/introducing-swifttweaks.htm>)

Author: Khan Academy

Published: 2016-05-09T22:00:00Z

Content type: release

Language: en

Sources: [Khan Academy](<https://devfeed.tech/sources/khan-academy.md>)

Topics: [Swift](<https://devfeed.tech/topics/swift.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Xcode](<https://devfeed.tech/topics/xcode.md>), [Objective-C](<https://devfeed.tech/topics/objective-c.md>), [feature flags](<https://devfeed.tech/topics/feature-flags.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [feature](<https://devfeed.tech/tags/feature.md>), [feature-flags](<https://devfeed.tech/tags/feature-flags.md>), [interface](<https://devfeed.tech/tags/interface.md>), [ios](<https://devfeed.tech/tags/ios.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [news](<https://devfeed.tech/tags/news.md>), [objective-c](<https://devfeed.tech/tags/objective-c.md>), [swift](<https://devfeed.tech/tags/swift.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

Khan Academy introduces SwiftTweaks, a Swift library for adjusting parameters in iOS apps on a device without recompiling. The article explains how to create tweak libraries, use tweak values and bindings, adjust animation settings, and access the runtime interface.

### Source excerpt

By Bryan Clark Today, we're releasing SwiftTweaks, a way to adjust your Swift-based iOS app without needing to ... Read more

## Open-Source Project Brings Full iOS 27 Virtualization to Apple Silicon

DevFeed: [Open-Source Project Brings Full iOS 27 Virtualization to Apple Silicon](<https://devfeed.tech/articles/open-source-project-brings-full-ios-27-virtualization-to-apple-silicon-8865.md>)

Original publisher: [Read original article](<https://www.infoq.com/news/2026/09/ios-27-virtualization/>)

Author: Sergio De Simone

Published: 2026-09-12T16:00:00Z

Content type: news

Language: en

Sources: [InfoQ](<https://devfeed.tech/sources/infoq.md>)

Topics: [iOS](<https://devfeed.tech/topics/ios.md>), [Tooling](<https://devfeed.tech/topics/tooling.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [debugging](<https://devfeed.tech/topics/debugging.md>), [App](<https://devfeed.tech/topics/app.md>)

Tags: [apple](<https://devfeed.tech/tags/apple.md>), [cli](<https://devfeed.tech/tags/cli.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [development](<https://devfeed.tech/tags/development.md>), [ios](<https://devfeed.tech/tags/ios.md>), [ios-27-virtualization](<https://devfeed.tech/tags/ios-27-virtualization.md>), [iphone](<https://devfeed.tech/tags/iphone.md>), [kernel](<https://devfeed.tech/tags/kernel.md>), [macos](<https://devfeed.tech/tags/macos.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [mobile-testing](<https://devfeed.tech/tags/mobile-testing.md>), [news](<https://devfeed.tech/tags/news.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [research](<https://devfeed.tech/tags/research.md>), [reverse-engineering](<https://devfeed.tech/tags/reverse-engineering.md>), [security](<https://devfeed.tech/tags/security.md>), [ssh](<https://devfeed.tech/tags/ssh.md>), [testing](<https://devfeed.tech/tags/testing.md>), [virtualization](<https://devfeed.tech/tags/virtualization.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

vphone-cli runs a full iOS 27 system as a virtual machine on Apple Silicon using Apple's Virtualization.framework. The article contrasts it with the Xcode iPhone Simulator and highlights uses in security research, reverse engineering, debugging, and automated testing.

### Source excerpt

The open-Source project vphone-cli enables a full iOS 27 system to run as a virtual machine on Apple Silicon. Built on Apple's own Virtualization.framework rather than traditional emulation, the project opens up new possibilities for security research, reverse engineering, and automated iOS testing. By Sergio De Simone

## Moving from XCTest to Swift Testing \[FREE\]

DevFeed: [Moving from XCTest to Swift Testing \[FREE\]](<https://devfeed.tech/articles/moving-from-xctest-to-swift-testing-free-11509.md>)

Original publisher: [Read original article](<https://www.kodeco.com/53560697-moving-from-xctest-to-swift-testing>)

Author: renan.dias

Published: 2026-09-11T18:41:42Z

Content type: tutorial

Language: en

Sources: [Kodeco | High quality programming tutorials: iOS, Android, Swift, Kotlin, Unity, and more](<https://devfeed.tech/sources/kodeco-high-quality-programming-tutorials-ios-android-swift-kotlin-unity-and-more.md>)

Topics: [Swift Testing](<https://devfeed.tech/topics/swift-testing.md>), [Unit testing](<https://devfeed.tech/topics/unit-testing.md>), [Xcode](<https://devfeed.tech/topics/xcode.md>), [agentic-coding](<https://devfeed.tech/topics/agentic-coding.md>), [SwiftUI](<https://devfeed.tech/topics/swiftui.md>), [iOS](<https://devfeed.tech/topics/ios.md>)

Tags: [agentic](<https://devfeed.tech/tags/agentic.md>), [agentic-ai](<https://devfeed.tech/tags/agentic-ai.md>), [app](<https://devfeed.tech/tags/app.md>), [apple](<https://devfeed.tech/tags/apple.md>), [article](<https://devfeed.tech/tags/article.md>), [free](<https://devfeed.tech/tags/free.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [ios](<https://devfeed.tech/tags/ios.md>), [swift-testing](<https://devfeed.tech/tags/swift-testing.md>), [swiftui](<https://devfeed.tech/tags/swiftui.md>), [testing](<https://devfeed.tech/tags/testing.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

A tutorial on migrating unit tests from Apple's XCTest framework to Swift Testing. It explains common testing scenarios, Swift Testing's newer syntax and constructs, and how Xcode's Agentic Coding can assist with the migration while working on a SwiftUI coffee-ordering app.

### Source excerpt

Swift Testing is Apple's replacement for the objective-C XCTest unit testing framework. Discover how to migrate your existing XCTest suites over to Swift Testing, including how to get some assistance from Xcode's agentic AI tooling.

## A Mac App, Not an iOS App on a Mac

DevFeed: [A Mac App, Not an iOS App on a Mac](<https://devfeed.tech/articles/a-mac-app-not-an-ios-app-on-a-mac-19388.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/native-appkit-mac-port/>)

Author: Shai Almog

Published: 2026-09-06T00:00:00Z

Content type: release

Language: en

Sources: [CodeName One](<https://devfeed.tech/sources/codename-one.md>)

Topics: [macOS](<https://devfeed.tech/topics/macos.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Xcode](<https://devfeed.tech/topics/xcode.md>)

Tags: [ios](<https://devfeed.tech/tags/ios.md>), [mac](<https://devfeed.tech/tags/mac.md>), [macos](<https://devfeed.tech/tags/macos.md>), [release](<https://devfeed.tech/tags/release.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

Codename One's macOS build now targets AppKit directly instead of using Mac Catalyst to run an iPad application. The change provides native window handling, rendering, desktop operations, input-method support, and independent monitor scaling while preserving existing project APIs and build targets.

### Source excerpt

Codename One's macOS build now targets AppKit directly, with NSWindow, NSMenu, NSTextInputClient, NSScreen, and an independent Metal surface for every window.

## Maintenance release: Godot 3.6.3

DevFeed: [Maintenance release: Godot 3.6.3](<https://devfeed.tech/articles/maintenance-release-godot-3-6-3-14984.md>)

Original publisher: [Read original article](<https://godotengine.org/article/maintenance-release-godot-3-6-3/>)

Author: lawnjelly

Published: 2026-08-22T12:00:00Z

Content type: release

Language: en

Sources: [Godot Engine Official](<https://devfeed.tech/sources/godot-engine-official.md>)

Topics: [Godot](<https://devfeed.tech/topics/godot.md>), [Android](<https://devfeed.tech/topics/android.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Xcode](<https://devfeed.tech/topics/xcode.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-16](<https://devfeed.tech/tags/android-16.md>), [ios](<https://devfeed.tech/tags/ios.md>), [maintenance](<https://devfeed.tech/tags/maintenance.md>), [release](<https://devfeed.tech/tags/release.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

Godot 3.6.3 is a maintenance release that updates Android and iOS export requirements, including Android API level 36, an iOS minimum version of 15.0, and removal of 32-bit iOS export. It also includes fixes across networking, audio, build systems, core, rendering, and other areas.

### Source excerpt

Godot 3.6.2 has been our recommended stable LTS version of 3.x for a while now, but the time has come to make a new build, primarily due to changes in requirements for Android and iOS.

## Swift Testing explained with code examples

DevFeed: [Swift Testing explained with code examples](<https://devfeed.tech/articles/swift-testing-explained-with-code-examples-11484.md>)

Original publisher: [Read original article](<https://www.avanderlee.com/swift-testing/modern-unit-test/>)

Author: Antoine van der Lee

Published: 2026-08-17T08:51:15Z

Content type: tutorial

Language: en

Sources: [SwiftLee](<https://devfeed.tech/sources/swiftlee.md>)

Topics: [Swift](<https://devfeed.tech/topics/swift.md>), [Xcode](<https://devfeed.tech/topics/xcode.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [examples](<https://devfeed.tech/tags/examples.md>), [net-conf](<https://devfeed.tech/tags/net-conf.md>), [swift](<https://devfeed.tech/tags/swift.md>), [swift-testing](<https://devfeed.tech/tags/swift-testing.md>), [testing](<https://devfeed.tech/tags/testing.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

This tutorial introduces Swift Testing, the modern Swift testing framework built around expressive macros such as @Test, #expect, and #require. It explains how Swift Testing replaces XCTest, reduces repetitive boilerplate, defines tests globally, and organizes them with structs, traits, and tags.

### Source excerpt

Swift Testing is the modern framework for writing tests in Swift, built around expressive macros like @Test, #expect, and #require. It's the successor to XCTest and the default testing framework for new projects in Xcode. Instead of dozens of assertion methods, you work with a single expressive macro that tells you exactly why a test ... -> The post Swift Testing explained with code examples appeared first on SwiftLee.

## @MainActor in Swift explained with code examples

DevFeed: [@MainActor in Swift explained with code examples](<https://devfeed.tech/articles/mainactor-in-swift-explained-with-code-examples-11486.md>)

Original publisher: [Read original article](<https://www.avanderlee.com/swift/mainactor-dispatch-main-thread/>)

Author: Antoine van der Lee

Published: 2026-08-02T12:04:47Z

Content type: tutorial

Language: en

Sources: [SwiftLee](<https://devfeed.tech/sources/swiftlee.md>)

Topics: [Swift](<https://devfeed.tech/topics/swift.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [Code](<https://devfeed.tech/topics/code.md>), [Xcode](<https://devfeed.tech/topics/xcode.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [code](<https://devfeed.tech/tags/code.md>), [concurrency](<https://devfeed.tech/tags/concurrency.md>), [dispatchqueue](<https://devfeed.tech/tags/dispatchqueue.md>), [examples](<https://devfeed.tech/tags/examples.md>), [guide](<https://devfeed.tech/tags/guide.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [main-thread](<https://devfeed.tech/tags/main-thread.md>), [swift](<https://devfeed.tech/tags/swift.md>), [thread](<https://devfeed.tech/tags/thread.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

This tutorial explains how Swift's @MainActor global actor ensures that properties, methods, instances, and closures execute on the main thread. It also covers compiler-enforced main-thread execution, global actor isolation, nonisolated methods, and changes to default actor isolation in Swift 6.2 and Xcode 26.

### Source excerpt

@MainActor is a global actor that performs its tasks on the main thread. You can use it to dispatch to the main thread by marking properties, methods, instances, or closures with the attribute. Instead of manually dispatching using DispatchQueue.main.async, you let the compiler enforce main thread execution for you. If you're new to Actors in ... -> The post @MainActor in Swift explained with code examples appeared first on SwiftLee.

## How to free up Xcode disk space safely with an AI Agent

DevFeed: [How to free up Xcode disk space safely with an AI Agent](<https://devfeed.tech/articles/how-to-free-up-xcode-disk-space-safely-with-an-ai-agent-11481.md>)

Original publisher: [Read original article](<https://www.avanderlee.com/ai-development/how-to-free-up-xcode-disk-space-safely-with-an-ai-agent/>)

Author: Antoine van der Lee

Published: 2026-07-27T08:34:16Z

Content type: tutorial

Language: en

Sources: [SwiftLee](<https://devfeed.tech/sources/swiftlee.md>)

Topics: [Xcode](<https://devfeed.tech/topics/xcode.md>), [AI Agent](<https://devfeed.tech/topics/ai-agent.md>), [Agent Skill](<https://devfeed.tech/topics/agent-skill.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [agent-skill](<https://devfeed.tech/tags/agent-skill.md>), [agent-skills](<https://devfeed.tech/tags/agent-skills.md>), [ai-agent](<https://devfeed.tech/tags/ai-agent.md>), [ai-development](<https://devfeed.tech/tags/ai-development.md>), [derived-data](<https://devfeed.tech/tags/derived-data.md>), [developer-tools](<https://devfeed.tech/tags/developer-tools.md>), [disk-space](<https://devfeed.tech/tags/disk-space.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [workflow](<https://devfeed.tech/tags/workflow.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

This tutorial explains why Xcode can consume substantial disk space, especially when multiple AI agents use separate Git worktrees. It introduces an open-source Xcode Disk Cleanup Agent Skill that searches common storage locations and requires explicit approval before deleting anything.

### Source excerpt

Xcode disk space can grow rapidly without you noticing. Especially these days, with multiple agents turning multiple worktrees into silent disk space occupiers. Where I used to only focus on deleting old Simulators every now and then, I'm now also actively managing worktrees and derived data folders. There are great Mac apps and open-source projects ... -> The post How to free up Xcode disk space safely with an AI Agent appeared first on SwiftLee.

## How to Test iOS Apps in Different Time Zones on a Physical iPhone

DevFeed: [How to Test iOS Apps in Different Time Zones on a Physical iPhone](<https://devfeed.tech/articles/how-to-test-ios-apps-in-different-time-zones-on-a-physical-iphone-11490.md>)

Original publisher: [Read original article](<https://www.avanderlee.com/xcode/ios-time-zone-testing-physical-iphone/>)

Author: Antoine van der Lee

Published: 2026-07-20T12:27:42Z

Content type: tutorial

Language: en

Sources: [SwiftLee](<https://devfeed.tech/sources/swiftlee.md>)

Topics: [iOS](<https://devfeed.tech/topics/ios.md>), [Xcode](<https://devfeed.tech/topics/xcode.md>), [USB](<https://devfeed.tech/topics/usb.md>)

Tags: [how-to](<https://devfeed.tech/tags/how-to.md>), [ios](<https://devfeed.tech/tags/ios.md>), [iphone](<https://devfeed.tech/tags/iphone.md>), [simulator](<https://devfeed.tech/tags/simulator.md>), [testing](<https://devfeed.tech/tags/testing.md>), [usb](<https://devfeed.tech/tags/usb.md>), [validation](<https://devfeed.tech/tags/validation.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

This tutorial explains how to test iOS apps across time zones on a physical iPhone or iPad using RocketSim, Xcode 27, and a USB connection. Simulating a location lets iOS update the device's system time zone, enabling validation of behaviors such as local time changes, focus modes, and driving mode. The workflow requires specific device settings, Developer Mode, and an app launched from Xcode; Xcode 27 is identified as being in beta in the supplied text.

### Source excerpt

Testing iOS Time Zones is a typical validation path that's difficult without actually traveling yourself. You can apply all kinds of protocols and mock versions of your app, but having iOS act like it's actually traveling between time zones is a real challenge. Ideally, you'd test apps like travel apps in such a way that ... -> The post How to Test iOS Apps in Different Time Zones on a Physical iPhone appeared first on SwiftLee.

## User Diagnostics Reports: Solving app bugs faster with AI Agents

DevFeed: [User Diagnostics Reports: Solving app bugs faster with AI Agents](<https://devfeed.tech/articles/user-diagnostics-reports-solving-app-bugs-faster-with-ai-agents-11483.md>)

Original publisher: [Read original article](<https://www.avanderlee.com/debugging/introducing-diagnostics-improved-debugging-and-user-support/>)

Author: Antoine van der Lee

Published: 2026-07-13T07:21:09Z

Content type: article

Language: en

Sources: [SwiftLee](<https://devfeed.tech/sources/swiftlee.md>)

Topics: [App](<https://devfeed.tech/topics/app.md>), [debugging](<https://devfeed.tech/topics/debugging.md>), [bug](<https://devfeed.tech/topics/bug.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [HTML](<https://devfeed.tech/topics/html.md>), [Xcode](<https://devfeed.tech/topics/xcode.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>)

Tags: [ai-agents](<https://devfeed.tech/tags/ai-agents.md>), [bugs](<https://devfeed.tech/tags/bugs.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [diagnostics](<https://devfeed.tech/tags/diagnostics.md>), [html](<https://devfeed.tech/tags/html.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

The article introduces Diagnostics, an open source library for app support and bug investigation. It generates a detailed HTML diagnostics report containing app and OS versions, device and storage details, session information, and system or debug logs. The report can be attached when users submit feedback, reducing back-and-forth and helping developers analyze issues; the article also notes support for agentic development.

### Source excerpt

A user diagnostics report that helps you solve bugs and improve user support at the same time. I've been writing apps since 2009, and the Diagnostics repository is an outcome of all that experience. Used by major apps from companies like WeTransfer, it has proven its value time after time. I've seen consistent inefficiency at ... -> The post User Diagnostics Reports: Solving app bugs faster with AI Agents appeared first on SwiftLee.

## Codename One Adds Cross-Platform Printing and Apple Wallet Issuer Provisioning

DevFeed: [Codename One Adds Cross-Platform Printing and Apple Wallet Issuer Provisioning](<https://devfeed.tech/articles/print-anywhere-and-put-your-cards-in-apple-wallet-19447.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/printing-and-apple-wallet/>)

Author: Shai Almog

Published: 2026-06-16T00:00:00Z

Content type: release

Language: en

Sources: [CodeName One](<https://devfeed.tech/sources/codename-one.md>)

Topics: [API](<https://devfeed.tech/topics/api.md>), [cross-platform](<https://devfeed.tech/topics/cross-platform.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Extension](<https://devfeed.tech/topics/extension.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [cross-platform](<https://devfeed.tech/tags/cross-platform.md>), [extensions](<https://devfeed.tech/tags/extensions.md>), [ios](<https://devfeed.tech/tags/ios.md>), [native](<https://devfeed.tech/tags/native.md>), [release](<https://devfeed.tech/tags/release.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

This release adds a cross-platform printing API that sends documents to the native print system and reports whether the handoff was completed, cancelled, or failed. It also adds iOS build hints that generate Apple Wallet issuer-provisioning extensions, while card data is provided through the app and encrypted pass payloads are produced by the issuer backend.

### Source excerpt

A new cross-platform printing API hands PDFs and images to the native print dialog on every port, and iOS builds can now generate Apple Wallet issuer-provisioning extensions from build hints with no native code.

## WWDC 2026 Viewing Guide

DevFeed: [WWDC 2026 Viewing Guide](<https://devfeed.tech/articles/wwdc-2026-viewing-guide-21089.md>)

Original publisher: [Read original article](<https://useyourloaf.com/blog/wwdc-2026-viewing-guide/>)

Author: Keith Harrison

Published: 2026-06-15T09:16:45Z

Content type: tutorial

Language: en

Sources: [K. Harrison](<https://devfeed.tech/sources/k-harrison.md>)

Topics: [Swift](<https://devfeed.tech/topics/swift.md>), [SwiftUI](<https://devfeed.tech/topics/swiftui.md>), [Xcode](<https://devfeed.tech/topics/xcode.md>), [WebAssembly](<https://devfeed.tech/topics/web-assembly.md>), [gRPC](<https://devfeed.tech/topics/grpc.md>), [MLX](<https://devfeed.tech/topics/mlx.md>), [NumPy](<https://devfeed.tech/topics/numpy.md>), [Testing](<https://devfeed.tech/topics/testing.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [apple](<https://devfeed.tech/tags/apple.md>), [auto-layout](<https://devfeed.tech/tags/auto-layout.md>), [comparison](<https://devfeed.tech/tags/comparison.md>), [ios](<https://devfeed.tech/tags/ios.md>), [ios27](<https://devfeed.tech/tags/ios27.md>), [macos27](<https://devfeed.tech/tags/macos27.md>), [objective-c](<https://devfeed.tech/tags/objective-c.md>), [swift](<https://devfeed.tech/tags/swift.md>), [swiftui](<https://devfeed.tech/tags/swiftui.md>), [webassembly](<https://devfeed.tech/tags/webassembly.md>), [wwdc](<https://devfeed.tech/tags/wwdc.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

A guide to planning and watching WWDC 2026 sessions, highlighting platform themes and selected updates in Swift, SwiftUI, Xcode, WebAssembly, gRPC, and MLX.

### Source excerpt

My WWDC 2026 viewing guide to help you plan the sessions you want to watch. Where Do I Start? The two big themes for the year are again Liquid Glass and Apple Intelligence. Start by watching the Platforms State of the Union (SOTU) for a summary of what's new this year. If you only have five minutes try the SOTU recap. You don't have to learn everything new today! There are over 100 sessions and a lot of new stuff to learn. You may feel like you're getting left behind. Don't let it overwhelm you. You've got time. Don't burn yourself out trying to keep up. Watching The Sessions I watch the videos using the Apple Developer app. It's available on macOS and iOS. The video player supports from 0.5x to 2x playback, most videos have transcripts and summaries, and allow copying of the onscreen sample code. You can also watch on YouTube. There are a lot of sessions, but many are short (15-20 minutes). There's no padding and Apple's engineers get to the point quickly. Swift Swift 6.4 is here with some quality of life improvements: What's new in Swift Condense long @available attributes with anyAppleOS, @diagnose to control compiler deprecation warnings. Double-colon module selector. Standard Library task cancellation shield, dictionary mapKeyedValues, new FilePath type. XCTest interop with Swift Testing. Subprocess 1.0. New ProgressManager. @C attribute for Swift-C interop. Compile to WebAssembly. New @inline(always) and @specialized attributes. Iterable protocol for noncopyable elements. Build real-time apps and services with gRPC and Swift gRPC Swift package to generate and deploy network code for remote procedure call services. Explore numerical computing in Swift with MLX NumPy-like API. Examples of computing the Mandlebrot set, heat distribution, and curve fitting. SwiftUI Liquid Glass changes and some welcome improvements: What's new in SwiftUI Liquid Glass is now mandatory. Minimal menu icons by default. Resize live previews in Xcode. Prominent tab role. Toolbar visibil

## Announcement: Xcode15 Deprecation in Semaphore

DevFeed: [Announcement: Xcode15 Deprecation in Semaphore](<https://devfeed.tech/articles/announcement-xcode15-deprecation-in-semaphore-20413.md>)

Original publisher: [Read original article](<https://semaphore.io/blog/announcement-xcode15-deprecation-in-semaphore>)

Author: Pete Miloravac

Published: 2026-05-12T10:56:42Z

Content type: release

Language: en

Sources: [Semaphore Engineering](<https://devfeed.tech/sources/semaphore-engineering.md>)

Topics: [Xcode](<https://devfeed.tech/topics/xcode.md>), [ci](<https://devfeed.tech/topics/ci.md>), [macOS](<https://devfeed.tech/topics/macos.md>)

Tags: [announcement](<https://devfeed.tech/tags/announcement.md>), [ci](<https://devfeed.tech/tags/ci.md>), [deprecated](<https://devfeed.tech/tags/deprecated.md>), [lifecycle](<https://devfeed.tech/tags/lifecycle.md>), [product-news](<https://devfeed.tech/tags/product-news.md>), [scheduled](<https://devfeed.tech/tags/scheduled.md>), [september-2026](<https://devfeed.tech/tags/september-2026.md>), [switching](<https://devfeed.tech/tags/switching.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

Semaphore announces the deprecation and end of life of its macOS Xcode15 build environments. Brownout periods will precede removal on July 6, 2026, and users are advised to migrate their pipelines to a supported Xcode version, preferably Xcode26.

### Source excerpt

MacOS Xcode15 reached the end of its supported lifecycle on Semaphore. To ensure the security, reliability, and maintainability of our platform, we are announcing the deprecation and end of life of MacOS Xcode15 build environments. Semaphore users should consider switching to Xcode26 as Xcode16 is scheduled for deprecation in September 2026. Why We're Deprecating Xcode15 [...] The post Announcement: Xcode15 Deprecation in Semaphore appeared first on Semaphore.

## Flutter 3.44 will make Swift Package Manager the default for iOS and macOS apps

DevFeed: [Flutter 3.44 will make Swift Package Manager the default for iOS and macOS apps](<https://devfeed.tech/articles/saying-goodbye-to-cocoapods-swift-package-manager-is-soon-the-default-in-flutter-23043.md>)

Original publisher: [Read original article](<https://blog.flutter.dev/saying-goodbye-to-cocoapods-swift-package-manager-is-soon-the-default-in-flutter-645a92714a57?source=rss----4da7dfd21a33---4>)

Author: Jenn Magder

Published: 2026-04-30T15:57:00Z

Content type: release

Language: en

Sources: [Flutter - Medium](<https://devfeed.tech/sources/flutter-medium.md>)

Topics: [Flutter](<https://devfeed.tech/topics/flutter.md>), [Dependency management](<https://devfeed.tech/topics/dependency-management.md>), [Swift](<https://devfeed.tech/topics/swift.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [macOS](<https://devfeed.tech/topics/macos.md>), [Package manager](<https://devfeed.tech/topics/package-manager.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Xcode](<https://devfeed.tech/topics/xcode.md>)

Tags: [cli](<https://devfeed.tech/tags/cli.md>), [cocoapods](<https://devfeed.tech/tags/cocoapods.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [dependency-management](<https://devfeed.tech/tags/dependency-management.md>), [flutter](<https://devfeed.tech/tags/flutter.md>), [flutter-app-development](<https://devfeed.tech/tags/flutter-app-development.md>), [ios](<https://devfeed.tech/tags/ios.md>), [macos](<https://devfeed.tech/tags/macos.md>), [migration](<https://devfeed.tech/tags/migration.md>), [release](<https://devfeed.tech/tags/release.md>), [swift](<https://devfeed.tech/tags/swift.md>), [swift-package-manager](<https://devfeed.tech/tags/swift-package-manager.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

Flutter 3.44 will make Swift Package Manager the default dependency manager for iOS and macOS apps, replacing CocoaPods. The Flutter CLI will migrate projects automatically, temporarily fall back to CocoaPods for unsupported plugins, and allow developers to opt out if SwiftPM causes breaking issues.

### Source excerpt

Dash migration! Starting with the next stable Flutter release, 3.44, Swift Package Manager (SwiftPM) replaces CocoaPods as the default dependency manager for iOS and macOS apps. This means no more messing around with Ruby or CocoaPods installations just to get your app running! CocoaPods is officially in maintenance mode, and its registry will permanently become read-only on December 2, 2026. While existing builds will still work, no new versions or pods will be added to the trunk after this date. To ensure that your apps continue receiving dependency updates and to provide access to the Swift package ecosystem, Flutter is transitioning to Apple's supported dependency management solution: Swift Package Manager. If you've already migrated your plugin(s) to use SwiftPM, read the "Plugin developers" section below for new migration requirements. Here is how to manage the transition. App developers For app developers, the Flutter CLI handles the migration. When you run or build your iOS or macOS app, the CLI automatically updates your Xcode project to use Swift Package Manager. Check out the Flutter migration docs for app developers for more details. If your app relies on plugins that haven't adopted Swift Package Manager yet, Flutter will print a warning listing exactly which of your dependencies are unsupported. Flutter will temporarily fall back to CocoaPods for plugins that have not adopted Swift packages yet. Because CocoaPods support will eventually be removed entirely, if a plugin hasn't updated and breaks your build, file an issue with the dependency's maintainer to request Swift package support or find an alternative package. We know that migrations can sometimes hit a snag. If SwiftPM causes a breaking issue, you can temporarily disable it for your project. Open your pubspec.yaml file, navigate to the flutter section, and set enable-swift-package-manager to false under the config block: flutter: config: enable-swift-package-manager: false If you opt out, please

## Xcode 26 Migration, UIScene Rollout, Initializr Localization Bundles, and More

DevFeed: [Xcode 26 Migration, UIScene Rollout, Initializr Localization Bundles, and More](<https://devfeed.tech/articles/xcode-26-migration-uiscene-rollout-initializr-localization-bundles-and-more-19682.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/xcode-26-migration-and-localization-bundles/>)

Author: Shai Almog

Published: 2026-03-07T00:00:00Z

Content type: article

Language: en

Sources: [CodeName One](<https://devfeed.tech/sources/codename-one.md>)

Topics: [Xcode](<https://devfeed.tech/topics/xcode.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Localization (l10n)](<https://devfeed.tech/topics/localization.md>), [Internationalization (i18n)](<https://devfeed.tech/topics/i18n.md>), [migration](<https://devfeed.tech/topics/migration.md>), [Android](<https://devfeed.tech/topics/android.md>), [Documentation](<https://devfeed.tech/topics/documentation.md>)

Tags: [adaptive](<https://devfeed.tech/tags/adaptive.md>), [android](<https://devfeed.tech/tags/android.md>), [developer-guide](<https://devfeed.tech/tags/developer-guide.md>), [ios](<https://devfeed.tech/tags/ios.md>), [migration](<https://devfeed.tech/tags/migration.md>), [tooling](<https://devfeed.tech/tags/tooling.md>), [updates](<https://devfeed.tech/tags/updates.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

A Codename One update reports a staged Xcode 26 migration, initial UIScene support for testing, and Initializr-generated localization resource bundles. It also covers localization workflow improvements, Android adaptive icons, iOS notification replacement fixes, and UI and resource tooling updates.

### Source excerpt

We started the Xcode 26 migration rollout, Initializr now generates localization resource bundles, and there are several useful platform updates you should know about.

## XcodeGen and the quest to modularize the Wealthfront iOS app

DevFeed: [XcodeGen and the quest to modularize the Wealthfront iOS app](<https://devfeed.tech/articles/xcodegen-and-the-quest-to-modularize-the-wealthfront-ios-app-20461.md>)

Original publisher: [Read original article](<https://eng.wealthfront.com/2026/03/02/xcodegen-and-the-quest-to-modularize-the-wealthfront-ios-app/>)

Author: Matthew Bommer

Published: 2026-03-02T17:56:41Z

Content type: tutorial

Language: en

Sources: [Wealthfront](<https://devfeed.tech/sources/wealthfront.md>)

Topics: [XcodeGen](<https://devfeed.tech/topics/xcodegen.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Swift](<https://devfeed.tech/topics/swift.md>), [Xcode](<https://devfeed.tech/topics/xcode.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [automation](<https://devfeed.tech/tags/automation.md>), [careers](<https://devfeed.tech/tags/careers.md>), [declarative](<https://devfeed.tech/tags/declarative.md>), [infrastructure](<https://devfeed.tech/tags/infrastructure.md>), [ios](<https://devfeed.tech/tags/ios.md>), [modularization](<https://devfeed.tech/tags/modularization.md>), [swift](<https://devfeed.tech/tags/swift.md>), [wealthfront-engineering](<https://devfeed.tech/tags/wealthfront-engineering.md>), [xcode](<https://devfeed.tech/tags/xcode.md>), [xcodegen](<https://devfeed.tech/tags/xcodegen.md>), [yaml](<https://devfeed.tech/tags/yaml.md>)

### AI overview

Wealthfront describes adopting XcodeGen to generate Xcode project files from declarative YAML, reducing project-file merge conflicts and making build configuration more reviewable. The team also plans to use it to support modularizing its large iOS application into independently compilable modules.

### Source excerpt

Every iOS application starts as a monolith. Xcode's default project structure places all source files, resources, and build configuration into a single module (or target, for all the iOS devs reading this). For small apps, this works fine. For a 10+ year old financial application with roughly 2,000 Swift and a handful of Objective-C files,... Read more

## Unlocking the Codex harness: how we built the App Server

DevFeed: [Unlocking the Codex harness: how we built the App Server](<https://devfeed.tech/articles/unlocking-the-codex-harness-how-we-built-the-app-server-6702.md>)

Original publisher: [Read original article](<https://openai.com/index/unlocking-the-codex-harness>)

Published: 2026-02-04T13:00:00Z

Content type: article

Language: en

Sources: [OpenAI News](<https://devfeed.tech/sources/openai-news.md>)

Topics: [codex](<https://devfeed.tech/topics/codex.md>), [API](<https://devfeed.tech/topics/api.md>), [Remote Procedure Call (RPC)](<https://devfeed.tech/topics/rpc.md>), [JSON](<https://devfeed.tech/topics/json.md>), [ide](<https://devfeed.tech/topics/ide.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [VS Code Extension](<https://devfeed.tech/topics/vscode-extension.md>), [vs-code](<https://devfeed.tech/topics/vs-code.md>), [Xcode](<https://devfeed.tech/topics/xcode.md>), [MCP](<https://devfeed.tech/topics/mcp.md>), [MCP Server](<https://devfeed.tech/topics/mcp-server.md>), [site-reliability-engineering](<https://devfeed.tech/topics/site-reliability-engineering.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [cli](<https://devfeed.tech/tags/cli.md>), [codex](<https://devfeed.tech/tags/codex.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [ide](<https://devfeed.tech/tags/ide.md>), [json](<https://devfeed.tech/tags/json.md>), [mcp](<https://devfeed.tech/tags/mcp.md>), [openai](<https://devfeed.tech/tags/openai.md>), [rpc](<https://devfeed.tech/tags/rpc.md>), [software-development](<https://devfeed.tech/tags/software-development.md>), [vs-code](<https://devfeed.tech/tags/vs-code.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

OpenAI explains how the Codex App Server evolved into a bidirectional JSON-RPC API for embedding the shared Codex harness across products and partner integrations. The article covers its architecture, protocol, streaming progress, tool use, approvals, diffs, and integration with Codex surfaces such as the CLI, IDE extension, web app, and macOS app.

### Source excerpt

Learn how to embed the Codex agent using the Codex App Server, a bidirectional JSON-RPC API powering streaming progress, tool use, approvals, and diffs.

## Discovering iOS Memory Leaks IV: Detecting via Unit Tests

DevFeed: [Discovering iOS Memory Leaks IV: Detecting via Unit Tests](<https://devfeed.tech/articles/discovering-ios-memory-leaks-iv-detecting-via-unit-tests-28531.md>)

Original publisher: [Read original article](<https://www.amanjeet.me/discovering-ios-memory-leaks-iv-detecting-via-unit-tests/>)

Author: Amanjeet Singh Gurtatta

Published: 2026-01-07T01:46:06Z

Content type: tutorial

Language: en

Sources: [Amanjeet Singh](<https://devfeed.tech/sources/amanjeet-singh.md>)

Topics: [iOS](<https://devfeed.tech/topics/ios.md>), [Memory Leaks](<https://devfeed.tech/topics/memory-leaks.md>), [unit tests](<https://devfeed.tech/topics/unit-tests.md>), [Xcode](<https://devfeed.tech/topics/xcode.md>), [macOS](<https://devfeed.tech/topics/macos.md>)

Tags: [ios](<https://devfeed.tech/tags/ios.md>), [macos](<https://devfeed.tech/tags/macos.md>), [memory](<https://devfeed.tech/tags/memory.md>), [memory-leak](<https://devfeed.tech/tags/memory-leak.md>), [memory-leaks](<https://devfeed.tech/tags/memory-leaks.md>), [tests](<https://devfeed.tech/tags/tests.md>), [unit-tests](<https://devfeed.tech/tags/unit-tests.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

This article explores detecting real iOS memory leaks with unit tests instead of UI tests. It describes running the macOS leaks tool against the Firefox process during unit-test teardown in the iOS simulator to shorten the feedback cycle and broaden coverage.

### Source excerpt

Using unit tests and macOS leaks tool to catch real iOS memory leaks.

## LightBuddy: A Mac Display Lighting Prototype Superseded by macOS Edge Light

DevFeed: [LightBuddy: A Mac Display Lighting Prototype Superseded by macOS Edge Light](<https://devfeed.tech/articles/sherlocked-before-it-was-born-lightbuddy-39531.md>)

Original publisher: [Read original article](<https://rambo.codes/posts/2025-12-15-sherlocked-before-it-was-born-lightbuddy>)

Published: 2025-12-16T18:00:00Z

Content type: opinion

Language: en

Sources: [Rambo Codes](<https://devfeed.tech/sources/rambo-codes.md>)

Topics: [GUI](<https://devfeed.tech/topics/gui.md>), [macOS](<https://devfeed.tech/topics/macos.md>), [Xcode](<https://devfeed.tech/topics/xcode.md>), [coding](<https://devfeed.tech/topics/coding.md>)

Tags: [apple](<https://devfeed.tech/tags/apple.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [gui](<https://devfeed.tech/tags/gui.md>), [macos](<https://devfeed.tech/tags/macos.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

Gui Rambo recounts creating LightBuddy, a Mac display-based lighting prototype for video calls, and how Apple later integrated a similar Edge Light feature into macOS. He reflects on how shipping the app first might have felt to be overshadowed by Apple.

### Source excerpt

Gui Rambo writes about his coding and reverse engineering adventures.

## Why Legacy Xcode Projects May Benefit from Replacing Groups with Folders

DevFeed: [Why Legacy Xcode Projects May Benefit from Replacing Groups with Folders](<https://devfeed.tech/articles/stop-using-groups-in-xcode-29461.md>)

Original publisher: [Read original article](<https://medium.com/mobile-app-development-publication/stop-using-groups-in-xcode-9759abd85837?source=rss----f9c208bdbb09---4>)

Author: Elye - A Dev By Grace

Published: 2025-12-07T13:07:57Z

Content type: article

Language: en

Sources: [Mobile App Development Publication - Medium](<https://devfeed.tech/sources/mobile-app-development-publication-medium.md>)

Topics: [Xcode](<https://devfeed.tech/topics/xcode.md>), [legacy](<https://devfeed.tech/topics/legacy.md>), [iOS](<https://devfeed.tech/topics/ios.md>)

Tags: [apple](<https://devfeed.tech/tags/apple.md>), [coding](<https://devfeed.tech/tags/coding.md>), [ios](<https://devfeed.tech/tags/ios.md>), [ios-development](<https://devfeed.tech/tags/ios-development.md>), [legacy](<https://devfeed.tech/tags/legacy.md>), [mobile-app-development](<https://devfeed.tech/tags/mobile-app-development.md>), [structure](<https://devfeed.tech/tags/structure.md>), [xcode](<https://devfeed.tech/tags/xcode.md>), [xcode-16](<https://devfeed.tech/tags/xcode-16.md>)

### AI overview

This article explains how Xcode project file organization differs between Groups and Folders. It notes that projects created before Xcode 16 use Groups by default, while new projects use Folders, and introduces reasons for considering Folders in legacy projects.

### Source excerpt

Seven Reasons Folders Are Better -- Especially for Legacy Projects Continue reading on Mobile App Development Publication "

## Using Stencil Templates for Code Generation in iOS Development

DevFeed: [Using Stencil Templates for Code Generation in iOS Development](<https://devfeed.tech/articles/stencil-30695.md>)

Original publisher: [Read original article](<https://habr.com/ru/companies/hh/articles/973028/>)

Author: CleverDevilV (hh.ru)

Published: 2025-12-04T09:45:15Z

Content type: tutorial

Language: ru

Sources: [HeadHunter RU](<https://devfeed.tech/sources/headhunter-ru.md>)

Topics: [iOS](<https://devfeed.tech/topics/ios.md>), [Swift](<https://devfeed.tech/topics/swift.md>), [Figma](<https://devfeed.tech/topics/figma.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [JSON](<https://devfeed.tech/topics/json.md>), [Sublime Text](<https://devfeed.tech/topics/sublime-text.md>), [Visual Studio Code](<https://devfeed.tech/topics/visual-studio-code.md>), [Xcode](<https://devfeed.tech/topics/xcode.md>)

Tags: [figma](<https://devfeed.tech/tags/figma.md>), [filter](<https://devfeed.tech/tags/filter.md>), [ios](<https://devfeed.tech/tags/ios.md>), [ios-92ecabba3495](<https://devfeed.tech/tags/ios-92ecabba3495.md>), [join](<https://devfeed.tech/tags/join.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [split](<https://devfeed.tech/tags/split.md>), [swift](<https://devfeed.tech/tags/swift.md>), [tag-3383f6fe7741](<https://devfeed.tech/tags/tag-3383f6fe7741.md>), [tag-e95ee8b94dca](<https://devfeed.tech/tags/tag-e95ee8b94dca.md>), [text](<https://devfeed.tech/tags/text.md>), [vscode](<https://devfeed.tech/tags/vscode.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

A tutorial introducing Stencil, a template language used to automate code and file generation in iOS development. It explains the language's syntax, data structures, filters, and tags, and describes applications involving Swift, Figma-exported design-system data, analytics events, Kotlin files, JSON input, and editor support.

### Source excerpt

Что любят все разработчики? Конечно, автоматизировать рутинные повторяющиеся действия! Я расскажу, как в этом может помочь язык Stencil, широко известный в узких кругах iOS-разработчиков. Читать далее

## Format Swift with a Git Commit Hook

DevFeed: [Format Swift with a Git Commit Hook](<https://devfeed.tech/articles/format-swift-with-a-git-commit-hook-21085.md>)

Original publisher: [Read original article](<https://useyourloaf.com/blog/format-swift-with-a-git-commit-hook/>)

Author: Keith Harrison

Published: 2025-11-24T10:29:58Z

Content type: tutorial

Language: en

Sources: [K. Harrison](<https://devfeed.tech/sources/k-harrison.md>)

Topics: [Swift](<https://devfeed.tech/topics/swift.md>), [Git](<https://devfeed.tech/topics/git.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [Development](<https://devfeed.tech/topics/development.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [auto-layout](<https://devfeed.tech/tags/auto-layout.md>), [bash](<https://devfeed.tech/tags/bash.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [developer](<https://devfeed.tech/tags/developer.md>), [development](<https://devfeed.tech/tags/development.md>), [git](<https://devfeed.tech/tags/git.md>), [git-commit](<https://devfeed.tech/tags/git-commit.md>), [ios](<https://devfeed.tech/tags/ios.md>), [objective-c](<https://devfeed.tech/tags/objective-c.md>), [swift](<https://devfeed.tech/tags/swift.md>), [wwdc](<https://devfeed.tech/tags/wwdc.md>), [xcode](<https://devfeed.tech/tags/xcode.md>), [xcode-16](<https://devfeed.tech/tags/xcode-16.md>)

### AI overview

This tutorial explains how to format Swift code automatically with swift-format and a Git pre-commit hook. It covers Xcode 16's bundled formatter, .swift-format configuration files, a Bash hook that formats staged Swift files, hook installation, and bypassing the hook when needed.

### Source excerpt

How do you automatically format your Swift code every time you commit it to your Git repository? Swift Format There are several Swift formatting tools. Xcode 16 shipped with swift-format included in the toolchain: $ xcrun --find swift-format /Applications/Xcode.app/Contents/Developer/Toolchains/ XcodeDefault.xctoolchain/usr/bin/swift-format To run the formatter: $ swift format MyFile.swift Note: This runs the swift-format bundled with the active Xcode development directory (beta or release). Configuring swift-format The Xcode settings let you configure various formatting options including indentation but I prefer to use an external configuration file for swift-format. By default, swift-format looks for a configuration file named .swift-format in the same directory as the files you are formatting. If there isn't one it looks in each successive parent directory. If it doesn't find a configuration file it uses a default configuration. You can dump the default configuration to get started: $ swift format dump-configuration > swift-format Modify the configuration file to meet your own code style: { "fileScopedDeclarationPrivacy" : { "accessLevel" : "private" }, "indentConditionalCompilationBlocks" : true, "indentSwitchCaseLabels" : false, "indentation" : { ... I keep my default configuration file in my base Developer directory: $ mv swift-format ~\Developer\.swift-format When needed, I can override the defaults by placing a modified configuration file in the project-specific root directory. Note: Don't forget to prefix the configuration file with a . Git Commit Hooks Git Hooks are a way to run custom scripts when different Git actions occur. A pre-commit hook runs when you commit changes to a repository. Here's the pre-commit script I'm using to run swift-format: #!/bin/bash GIT=/usr/bin/git GREP=/usr/bin/grep SWIFT=/usr/bin/swift # Staged (cached) added/copied/modified/renamed files FILES=$($GIT diff --cached --name-only --diff-filter=ACMR | $GREP '\.swift$') # Exit ear

## SwiftUI Custom URL Schemes

DevFeed: [SwiftUI Custom URL Schemes](<https://devfeed.tech/articles/swiftui-custom-url-schemes-21088.md>)

Original publisher: [Read original article](<https://useyourloaf.com/blog/swiftui-custom-url-schemes/>)

Author: Keith Harrison

Published: 2025-10-27T11:26:47Z

Content type: tutorial

Language: en

Sources: [K. Harrison](<https://devfeed.tech/sources/k-harrison.md>)

Topics: [SwiftUI](<https://devfeed.tech/topics/swiftui.md>), [WebView](<https://devfeed.tech/topics/webview.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [WebKit](<https://devfeed.tech/topics/webkit.md>), [App](<https://devfeed.tech/topics/app.md>)

Tags: [async](<https://devfeed.tech/tags/async.md>), [auto-layout](<https://devfeed.tech/tags/auto-layout.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [ios](<https://devfeed.tech/tags/ios.md>), [ios-26](<https://devfeed.tech/tags/ios-26.md>), [objective-c](<https://devfeed.tech/tags/objective-c.md>), [protocol](<https://devfeed.tech/tags/protocol.md>), [scheme](<https://devfeed.tech/tags/scheme.md>), [swift](<https://devfeed.tech/tags/swift.md>), [swiftui](<https://devfeed.tech/tags/swiftui.md>), [web](<https://devfeed.tech/tags/web.md>), [webview](<https://devfeed.tech/tags/webview.md>), [wwdc](<https://devfeed.tech/tags/wwdc.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

This tutorial explains how to create a custom URL scheme handler for SwiftUI WebViews in iOS 26. It covers implementing URLSchemeHandler, loading local HTML resources from an app bundle, registering the handler in a WebPage configuration, and displaying the page in a WebView.

### Source excerpt

Create a custom URL scheme handler for SwiftUI WebViews. Custom URL schemes Apple introduced both WebView and WebPage SwiftUI views in iOS 26. These provide similar WebKit functionality to the UIKit WKWebView APIs. This includes being able to register custom URL schemes to load local resources. Suppose I have an App that loads quotations from the local App bundle. My URL scheme uses the format: quotes://001.html There are a few steps to support a custom URL scheme: Create a custom URL scheme handler that knows how to load the local resources. Register the scheme handler in a WebPage configuration. Have the WebView load and display the web page. Let's look at each of those steps. URLSchemeHandler (iOS 26) The URLSchemeHandler is a protocol with a reply method to return an async sequence of results. The AsyncSequence expects us to either yield a URLResponse and some data or throw an error. struct QuoteSchemeHandler: URLSchemeHandler { static let scheme = "quotes" func reply(for request: URLRequest) -> some AsyncSequence< URLSchemeTaskResult, any Error > { AsyncThrowingStream { continuation in ... } } } The reply method provides us with the URLRequest. I start by extracting the URL and checking it matches our quotes scheme: guard let url = request.url else { continuation.finish(throwing: QuoteError.missingURL) return } guard url.scheme == QuoteSchemeHandler.scheme else { continuation.finish(throwing: QuoteError.invalidScheme) return } To construct the URL response I need the mime type and length of the data. I first extract the filename from the URL, determine the mime type from the file extension, and then load the data: do { let file = try filename(for: url) let mimeType = try mimeType(for: file) let data = try Data(contentsOf: file) I can then build the URLResponse: let response = URLResponse( url: url, mimeType: mimeType, expectedContentLength: data.count, textEncodingName: "utf-8" ) If nothing has gone wrong I then add the response and the data to the AsyncSequenc

[Next page](<https://devfeed.tech/tags/xcode.md?cursor=WyIyMDI1LTEwLTI3VDExOjI2OjQ3KzAwOjAwIiwgIjNhYTRiNjU2LWUxMWItNDBmNi1iZDEwLTI2NzZjNWM4YTY2MyJd>)