SwiftUI & TCA Migration Consulting
UIKit-to-SwiftUI migrations, The Composable Architecture adoption, legacy codebase modernisation. I led the SwiftUI/TCA rewrite that took a medical app to 99.9% crash-free and a CES Innovation Award.
- full UIKit-to-SwiftUI rewrites for production apps
- TCA adoption with the judgment calls about reducer granularity and effects
- rescuing migrations that stalled at 40% and got worse than before
- Composable Architecture 2.0 migrations using the @Feature macro, spawned stores, and the new event/preference/trigger patterns
What clients say
"Vadim was instrumental to the success Epsy enjoyed on iOS, taking it from an idea on a Miro board to the highest rated and most downloaded app of its kind on the store."
James C. · Mobile Engineering Lead, Epsy
"We had a strict deadline, and Vadim managed to complete the job in time. He gave us meaningful feedback and suggested better approaches, not trying to blindly stick to our specification."
Founder · Pre-seed streaming service
"I can say with confidence that it will be difficult to find a better developer. Vadim is achievement-oriented, highly organized, with very good communication skills."
Alex Z. · Co-Founder, eda.so
Related work
Common engagements
Architecture review before the migration
I spend a few days reading the codebase. You get a one-page migration plan: what to migrate, in what order, and where the risks are.
Lead the migration
6-16 weeks. I architect, pair with the team, migrate the highest-risk modules myself, and leave patterns the team can replicate.
Rescue a stalled migration
Team started gradual, got to 40%, now the app is worse than before. Two paths out: resume the migration and finish module-by-module, or rewrite the remaining 60% in one go. Which one fits depends on how much of the migrated code is worth keeping and what's blocking the team from moving forward.
Pricing
Architecture reviews, hiring help, second opinions on that thing that's been bugging you.
Available nowFeatures, MVPs, migrations, firefighting. Minimum 5 days.
Available nowPriority support: review agency code, join architecture calls, catch problems before they ship.
Questions
Can you migrate us to SwiftUI without TCA?
Yes. About a third of my SwiftUI work is vanilla SwiftUI plus @Observable. TCA fits apps with substantial business logic and multi-person teams. For smaller or UI-focused apps, vanilla is cleaner and often faster.
Will our UIKit screens still work during the SwiftUI migration?
Yes. UIHostingController at the seams, UIViewRepresentable for UIKit views SwiftUI can't yet do cleanly, and a clear rule about who owns state at each boundary. I document this early so the team doesn't invent conflicting patterns.
We use MVVM / VIPER / Redux-style. Does TCA help?
Sometimes. TCA has specific strengths around testability, effect handling, and navigation modelling. If those are your current bottlenecks, the adoption cost is usually worth it. If your architecture problems are team-process problems, a new framework won't fix them.
Our UIKit migration stalled at 40%. What's the path out?
Two options. Either resume the gradual migration and finish module-by-module (months, but safer). Or commit to a full rewrite of the remaining 60% (shorter timeline, higher risk). Which one fits depends on how much of the migrated code is worth keeping and what's currently blocking the team.
Should we adopt TCA or stick with vanilla SwiftUI?
TCA fits apps with substantial business logic and multi-person teams. The structure pays for itself in testability and navigation modelling. Vanilla SwiftUI plus @Observable fits smaller apps, UI-focused products, and one-person teams. The adoption cost is only worth paying when the codebase has the state and effects that TCA is designed to organise.
Can you work alongside our existing iOS team during a migration?
Yes. Most of my migration work is pairing with an internal team: I architect and migrate the highest-risk modules, the team replicates the pattern on the rest. Leaves behind conventions the team can enforce in PR review after I'm out. 6-16 weeks depending on scope.
How quickly can you start?
Advisory calls can happen within days. For project work, I typically need 1-2 weeks notice to clear the calendar, though I keep some buffer for urgent firefighting. Check the availability badges above for current openings.
Do you work with early-stage startups?
Yes, from pre-seed to Series C and beyond. For very early teams, the advisory tier often makes more sense than project work: you get architecture guidance without committing to a large engagement before you've validated the product.
What's included in the day rate?
Everything: code, architecture decisions, code review, documentation, async Slack availability during working hours. No surprise add-ons. I bill for time spent working on your project, not for "thinking about it in the shower."
We're in a different timezone. Will that slow things down?
I'm currently in Vancouver (PST), with full overlap for North American teams. For UK and Europe, I'm online by their afternoon. For Gulf or APAC, we'd agree on overlap hours and handle the rest async. I've worked with teams from San Francisco to Dubai.
Areas I cover
Where I've worked CV · LinkedIn
Planning a SwiftUI migration?
Tell me what you're working on. I reply within 48 hours.
work@drobinin.com