Mobile development blogs, tutorials and resources inside!Latest Mobile Dev Insights: iOS, Android, Cross-PlatformAdvertise with Us|Sign Up to the NewsletterMobilePro #220: Inside the Rise of Multi-Agent iOS DevelopmentGrow your Mac app with Setapp.Get around 30K unique impressions in the first days after your app’s releaseSetapp makes sure your app isn’t just listed, but seen. Plus, we handle the stuff you don’t like: distribution, licensing, billing, taxes, and customer support.You build great software; we bring you revenue and valuable feedback to help your app grow. Hope is not a growth strategy.Join Setapp.Share your appHi ,Today we are covering a piece from Walid SASSI, author of AI Driven Swift Architecture. This article stood out to us because it looks beyond the usual “AI will write your apps” narrative and focuses instead on how AI-assisted development workflows themselves are evolving.In this article, originally published on Swift Tribune, Walid explores how multi-agent systems and Claude-powered workflows are beginning to reshape iOS development. Rather than treating AI as a simple autocomplete layer, he looks at how specialized agents can coordinate coding, debugging, reviews, and research in parallel, pushing development workflows toward orchestration instead of isolated assistance.More importantly, the article raises a broader question many teams are starting to confront: if AI tools can now coordinate parts of the development process itself, how does that change the way engineers build apps?TL;DRMulti-agent workflows allow AI systems to split development tasks across specialized agentsClaude agents can coordinate coding, reviews, debugging, and research in parallelThese workflows are starting to influence how iOS developers approach app developmentAI-assisted development is moving beyond autocomplete toward orchestration and task managementFaster development is only part of the equation; shipping and growing apps remains equally importantThis week’s news cornerAnnouncements at Kotlin Conference 2026: KotlinConf'26 celebrated Kotlin's 15th anniversary with major announcements including the unified Kotlin Toolchain, stable Koog 1.0 AI agent framework, and a deeper Anthropic-JetBrains partnership bringing Claude natively into IntelliJ IDEA and Android Studio. Kotlin Multiplatform continues its rapid growth, with top app adoption more than doubling and companies like PayPal, Sony, and Duolingo already using it in production.Koog 1.0 Is Out: JetBrains has released Koog 1.0. It is the stable version of its open-source Kotlin/Java framework for building AI agents. It gives a one-year no-breaking-changes guarantee for stable modules. The update adds local Android AI support, improved Java interoperability, OpenTelemetry-based observability, enhanced memory and persistence, flexible HTTP transport, and Anthropic prompt caching for better performance and lower costs.Apple teases generative AI expansion ahead of WWDC 2026: Ahead of WWDC 2026, Apple has quietly registered the subdomain genai.apple.com, hinting at a broader generative AI push alongside expected announcements for iOS 27, iPadOS 27, and macOS 27. The upcoming releases are anticipated to bring significant Apple Intelligence upgrades, including a redesigned conversational Siri app, enhanced accessibility features, and deeper AI integration across native apps.iOS 27 rumored to bring new design changes in two key areas: Apple is rumored to refine its Liquid Glass design in iOS 27, including a new system-wide slider that lets users precisely adjust transparency and contrast instead of choosing only between “Clear” and “Tinted” modes. The update is also expected to bring smaller UI and UX improvements to Liquid Glass, continuing Apple’s gradual design evolution rather than introducing another major visual overhaul.Apple releases first iOS 26.6 public beta, here’s what to expect: Apple has released the first iOS 26.6 public beta, introducing a higher contact-blocking limit and hinting at a new anti-theft iPhone feature. The update is expected to be a minor maintenance release, with Apple’s main focus shifting to iOS 27, which will be unveiled at WWDC on June 8.Know the authorWalid SASSI began his iOS journey in 2011 while teaching distributed systems at the University of Carthage in Tunisia. Discovering the iPhone SDK sparked a growing interest that quickly became a professional focus. For nearly a decade, he combined academia with hands-on development, teaching computer science while working as an independent iOS developer. He built apps, mastered Swift and UIKit, and developed strong expertise in software architecture. Today, he is particularly interested in AI-assisted development and how it enhances productivity while maintaining solid engineering practices.Claude Agents: Multi-Agent iOS Workflows in Claude CodeThis month Anthropic shipped a new iteration of multi-agent workflows inside Claude Code. The official name in the documentation is agent view, opened with theclaude agents command, I will use both “agent view” and “Claude Agents” in this article since the community has already started using the second term.Multi-agent is not a brand new topic for CLI coding tools, Claude Code and Codex have both been experimenting with it for months, but the way Anthropic exposes it now is genuinely different, and worth a careful look from anyone who runs more than one AI session at a time on an iOS codebase.A quick bit of history first. Back inFebruary 2026, Anthropic shipped what I would call theper-sessionmulti-agent model: each agent ran in its own Claude Code session, and you switched between them from the outside, typically withtmux .That workflow works, but it puts the burden of orchestration entirely on you. We covered exactly that pattern inChapter 8 of our bookAI-Driven Swift Architecture, including how to spin up several agents in paralleltmuxpanes and route attention between them manually.Claude Agents replaces that. The agents now liveinside Claude Code itself, in a dedicated view. You switch between them, monitor their state, and follow their full lifecycle without ever leaving the CLI. No moretmuxgymnastics, no more “which pane is the test agent in again?”, you just select the agent.Prerequisite: Claude Code v2.1.139 andclaude updateBefore anything else, you need a recent enough Claude Code build. (If you are setting Claude Code up from scratch on Apple Silicon, theClaude Code for Xcode 26 guide walks through install, authentication, and pricing first.)Theagents view is a research previewand it requiresClaude Code v2.1.139 or later. A simple claude update is usually enough to get you on the right version. Ifclaude --versionreports something older, the new view will not appear and nothing in this article will line up with what you see on screen. Once installed, you open it with:claude agentsThe Claude Agents view at a glanceOnce you are on the right version and Opus 4.7 is selected as the model, agent view shows up as a first-class panel inside Claude Code.This is the entry point. Each row in that panel will represent an agent. Submitting a prompt to it spawns a new agent that immediately enters aworkingstate on the task you described, independently from whatever you are doing in the main session.Claude Agent lifecycle: the six states explainedThe reason this matters more than the oldertmuxsetup is thelifecycle. Claude Code now treats each agent as a real long-running unit with a state you can observe at a glance. The documentation definessix states, each with its own icon signal:Working, the agent is actively running tools or generating a response. The row shows ananimated icon, the kind that signals “I’m still chewing on it, don’t interrupt.” This is the default state right after you submit a prompt.Needs input, the agent is blocked waiting on you, usually because a tool call needs explicit authorisation, or because the prompt hit an ambiguous decision the agent does not want to make alone. The icon goesyellow. Until you act, the agent does not advance.Idle, the session has nothing to do and is ready for your next prompt. The icon isdimmed. This is the resting state of an agent you have attached to but not yet given a task.Completed, the task finished successfully. The icon goesgreen. The summary the agent produced is now available for you to read.Failed, the task ended with an error. The icon goesred. Failures stay visible in the list so you do not miss them under a pile of completed sessions.Stopped, you killed it. The icon goesgrey. To trigger this state, select the agent and pressCtrl + X. Useful when a run has clearly gone off the rails and you would rather restart with a tighter prompt than babysit it. A secondCtrl + Xwithin two seconds deletes the session entirely, along with its worktree, so be deliberate.Those six states are the whole API surface of orchestration. Once you internalise them, multi-agent workflows stop feeling like a juggling act.A real experiment: two Claude Agents on a Swift to-do list appTo put this into practice I picked a small, deliberately under-architected project: aSwift to-do list iOS app. The kind of codebase a lot of teams actually have lying around, a few view controllers, persistence wired in directly from the UI layer, no DI, no tests. It is the perfect playground because the work decomposes very naturally into two independent streams:Stream A, migrate the legacy code toward Clean Architecture.Extract a domain layer, introduce protocols, move persistence behind a repository, kill the implicit singletons.Stream B, backfill the unit tests.Cover the domain logic that Stream A is producing, with proper fakes and deterministic assertions.I want these two streams to runat the same time, with two different agents, on two different worktrees, and I want to see how Claude Code handles the synchronisation between them. That is the actual subject of this article, the agent UI is just the entry point.A small prompting trickOne thing I have settled into over the last few months: I no longer write the prompt for an architectural agent directly.I describe what I want in plain language to ChatGPT first, let it shape a structured, intent-rich prompt, and then I paste that into Claude Agents.ChatGPT is, in my experience, particularly strong at prompt shaping, it pushes back, asks clarifying questions, and produces prompts that age well. Claude, on the receiving end, is excellent at executing those prompts inside a real codebase. Using the two together is, frankly, the most productive workflow I have found.So both prompts, the Clean Architecture refactor one and the unit-testing one, were authored by ChatGPT and handed to Claude Agents. Then I hit submit on both, back to back.Two agents, side by sideWithin seconds the agents panel shows both of them in theworkingstate, animated icons running side by side.Notice that nothing about your main Claude Code session is blocked. You can keep working in the main thread, ask questions, read files, plan the next step, while the two agents grind in the background. This is the part thetmuxworkflow could never give you cleanly: a shared, in-process control plane for your agents.What “Needs input” really looks likeA few minutes in, one of the agents flips to yellow.This is the part of the lifecycle that is the most underrated. The agent has hit a permission boundary, typically a tool call that requires explicit authorisation, or a destructive action it refuses to take on its own.Until you select the agent (with ↑/↓), peek into it withSpaceand answer, it sits there. No silent fallback, no “I’ll just do something simpler.” That sounds annoying, but in practice it is the single biggest safety improvement over the oldtmuxmodel, where an agent could quietly take a wrong turn and you would only discover it three minutes later.Drilling into an agentAgent view is entirely keyboard-driven. You move between rows with↑and↓, pressSpaceto open thepeek panel (a quick read on the agent’s most recent output, or the question it is waiting on).Press Enteror→toattach, that is, to take over the agent’s full conversation in your terminal, exactly as if you had runclaudeagainst that session. Pressing←on an empty prompt detaches you back to the list.This is where the UX win compared totmuxbecomes obvious. Switching between agents used to meanCtrl-B + a pane number and rebuilding context in your head every time.Now it is two keystrokes,↓thenSpace, and you are reading the agent’s state. The “where was I again?” cost essentially goes to zero.CompletionEventually the architecture agent finishes its first checkpoint, the domain protocols are in place, the legacy view models redirected, the build is green on its branch. The icon turns green.A completed agent has handed you a summary you can act on. This is also where review discipline matters: a green agent isnota merged PR. It is a proposal sitting on a branch, waiting for human review and integration.Behind the scenes: one Git worktree per Claude AgentHere is the part that quietly does most of the heavy lifting. Before any background session edits files, Claude Code moves it intoan isolated Git worktree under.claude/worktrees/. Each agent gets its own worktree (and its own branch) automatically, you never typegit worktree add yourself.The agent does its writing in that worktree only and never touches your main checkout while it is running. (Two caveats from the docs: this isolation is skipped if the working directory is not a Git repository, or if the session is already running under.claude/worktrees/.)For this experiment that means two worktrees and two branches were created automatically. In my screenshot the branches are named after the prompts I dispatched, Claude Code auto-names a session from its prompt, and that name flows into the branch:worktree-clean-arch-refactor, the architecture agent’s branchworktree-add-unit-tests, the testing agent’s branchThose exact names are just what came out ofmyprompts; yours will look different. What is guaranteed is that each agent gets a separate worktree and branch, not that the branches follow any particular naming convention.This is what makes parallel agents safe on a real iOS project. They share a.gitobject database, so they see the same history and can pull from each other’s branches at well-defined checkpoints, but they cannot accidentally overwrite the samePackage.swiftor.xcodeproj, they are not even on the same filesystem view.A word of caution here, and it is the one operational rule I would beg you not to skip:the worktree workflow only pays off if your promptexplicitly tells the agent to push its work to review, and then to merge once review passes.If you forget that line in your prompt, you end up with two beautiful green agents and a stack of orphan worktrees that nobody integrates.The review and merge workflow, including how we wire it into SonarQubeas a quality gate before merge, is exactly what we walk through end-to-end inChapter 8 ofAI-Driven Swift Architecture. If you want the full pipeline, that is the place to go.Stopping an agentOccasionally an agent goes off-script, usually because the prompt was too vague or because it picked a path that is going to be expensive to undo. In that case, select it with↑/↓and hitCtrl + X. The state flips tostoppedand the icon turns grey.The worktree is still there, the partial work is still there, nothing is destroyed. You just regain control.From there, you can either resume with a tighter prompt, or remove the worktree and start over. This is significantly less stressful than killing a tmuxpane and hoping you committed recently enough.Both agents finishingEventually both agents settle. The refactor agent has carved out a domain layer; the testing agent has produced a Swift Testing suite against it.At that point my job as the human starts: review the two branches, merge them onto an integration branch in the right order (architecture first, tests on top), let SonarQube run, and only then open a pull request againstmain. Again, that pipeline is the subject ofChapter 8 of the book; the article you are reading is intentionally focused on the agent runtime itself.What Claude Agents changes for iOS multi-agent workflowsIf I had to summarise, three things change compared to the February 2026tmuxworkflow:The orchestrator is in-process.You no longer need an external multiplexer to keep track of N agents. The agents viewisthe orchestrator.State is explicit.Working, Needs input, Idle, Completed, Failed, Stopped, six states, each visible, each actionable. You stop guessing whether an agent is “stuck” or “thinking.”Isolation is automatic.Every agent gets its own worktree and branch without you typinggit worktree addonce. That alone removes a whole category of “two agents overwrote the same file” incidents.What doesnot change is the engineering discipline around it. The agents still produce branches you have to review. The synchronisation between two agents working on the same domain still requires you to tell them, in their prompts, where the contract lives and when to rebase.Multi-agent AI does not remove the need for an architect, it just lets one architect direct three or four streams of work at once.Closing thoughts on multi-agent iOS developmentClaude Agents is, to me, the first time the multi-agent story inside a CLI coding tool feels operationally honest. Thetmux era worked for early adopters who did not mind being the human router; this new version works for teams.The fact that it is still flagged as a research preview should not stop you from trying it, but it should remind you that the surrounding workflow (review, merge, quality gates, CI integration) is still very much your responsibility.If you want to go deeper into how we run that surrounding workflow on a real Swift codebase, including the review process, the SonarQube hookup, and the way we structure prompts so that two agents can synchronise without stepping on each other, that is the entire subject ofChapter 8 ofAI Driven Swift Architecture. The book picks up exactly where this article stops.In the meantime:claude update, open the agents view, and try spawning two agents on a small project. Pick something boring, a to-do list, a notes app, a weather screen, and watch how the lifecycle plays out. Half an hour with the new view is worth more than any blog post about it, including this one.📚 Go DeeperIf you’re exploring how AI-assisted workflows are reshaping real-world software engineering,AI-Driven Swift Architectureby Walid SASSI and Dave Poirier offers a practical look at building modern iOS systems with AI-assisted development, architecture patterns, concurrency, and production-ready engineering practices.🧑💻 Master Clean Architecture, TDD, and modernization with Claude Code support🛠️ Build SwiftUI apps powered by Apple Foundation Models and on-device intelligence📱 Apply MCP workflows to create AI-driven feature agents in real projectsAI Driven Swift ArchitectureBuy now at 44.99💭 Let’s TalkHow often do you actually update your paywall after shipping it?Reply and let me know — curious how teams approach iteration.Advertise with usInterested in sponsoring this newsletter and reaching a highly engaged audience of tech professionals? Simply reply to this email and our team will get in touch with next steps.Cheers,Runcil Rebello,Editor-in-Chief, MobilePro*{box-sizing:border-box}body{margin:0;padding:0}a[x-apple-data-detectors]{color:inherit!important;text-decoration:inherit!important}#MessageViewBody a{color:inherit;text-decoration:none}p{line-height:inherit}.desktop_hide,.desktop_hide table{mso-hide:all;display:none;max-height:0;overflow:hidden}.image_block img+div{display:none}sub,sup{font-size:75%;line-height:0}#converted-body .list_block ol,#converted-body .list_block ul,.body [class~=x_list_block] ol,.body [class~=x_list_block] ul,u+.body .list_block ol,u+.body .list_block ul{padding-left:20px} @media (max-width: 100%;display:block}.mobile_hide{min-height:0;max-height:0;max-width: 100%;display:none;overflow:hidden;font-size:0}.desktop_hide,.desktop_hide table{display:table!important;max-height:none!important}.social_block .social-table{display:inline-block!important}.row .side{display:none}}
Read more