
At WWDC26, Apple extended the Foundation Models framework with support for server-side language models. The idea is simple: the same LanguageModelSession API that drives the on-device model can now drive any remote model that conforms to the LanguageModel protocol. Anthropic was quick to adopt it and released ClaudeForFoundationModels — a Swift package that makes Claude a drop-in model for your sessions. Streaming, guided generation with @Generable, and tool calling work the same way.
In this post, we'll build GiftGenie — a small app that generates gift ideas — and let the user switch between the on-device model and Claude with their own API key.
When a crash happens deep inside concurrent code, the first question is always: which task did this? Pthreads had names, Grand Central Dispatch had queue labels — they show up in stack traces, in Instruments lanes, in debugger output. Swift Concurrency had none of that until SE-0469, implemented in Swift 6.2.
Artem Novichkov is an iOS developer at Salmon Group Ltd, where he builds the Salmon app, a fintech super app bringing accessible financial services to millions of Filipinos. From time to time, he does mentoring and consulting for developers and companies navigating iOS development challenges. Artem is passionate about Swift and open source. His projects can be found on GitHub. Lately he has been exploring ways to integrate AI into his development workflows. He writes blog posts mostly about SwiftUI and occasionally shares knowledge through public speaking. His talks can be found on YouTube. In his free time, Artem enjoys flying FPV drones and editing the videos he captures. He also likes playing video games on his Nintendo Switch 2 and PS5.
Join the Mobile Signal Talent Directory and make your profile visible to hiring teams searching for iOS talent.