· 6 min read Posted by Sam Hill
KMP's Role In Modern Native Mobile
The rapidly improving capabilities of AI in mobile development have triggered a new conversation around how mobile teams approach multiplatform development. Notably, Shopify has recently been discussing their move from React Native back to independent native Android and iOS applications. Their justification for this transition is that AI has made it easier to port functionality between platforms. They built an AI harness for migrating their React Native codebase piece by piece to each platform with extensive validation at each step. This isn’t the first team to take this approach. We’ve heard from others who are asking a similar question: “What’s the value of KMP, when AI makes replicating code across platforms easy?” The two mistakes in this line of thinking are: glossing over the long-term iteration costs, and assuming that AI ports and KMP are mutually exclusive.
What’s Possible
It’s true that AI ports are now a legitimate option. You can start with an iOS application, and with some careful planning and prompting, arrive at a functional implementation of that application on Android. How long that takes will depend on how much control you want over the design, architecture, and quality. Shopify says it took about 12 weeks to go from React Native to production-ready Android and iOS. For apps at their scale, that’s really impressive. It’s definitely faster and cheaper than it would have been to complete it by hand. This is a true advantage of AI, but it is focused only on that initial port. What does the next commit look like? The next hundred?
A port is ultimately a snapshot. You’ve taken your app at a point in time and copied it over to other platforms. But development continues, what happens when an iOS developer delivers the next new feature? Obviously, you don’t want to manually maintain parity. That will only lead to the platform drift which drove you to cross-platform in the first place. The process you developed for your initial port assumes it’s starting from zero and won’t be effective for iterative development. Instead, you’ll need to develop new tooling and workflows to automate continuous porting of new development. AI can handle the code changes, but it doesn’t make them free. There is a real cost for maintaining multiple platforms, and it isn’t just tokens.
The Verification Tax
Organizations are seeing an explosion in code output and individual productivity, but those gains are rarely realized as they get absorbed by “downstream disorder”. More code means more process, review, and approval bottlenecks. The 2026 DORA report on The ROI of AI-Assisted Software Development defines this as the “Verification Tax”. Process, platforms, and architecture must scale and adapt to overcome this tax before teams can start reaping the benefits promised by AI.
“AI does not necessarily make friction vanish; rather, the friction moves.”
The scale of this tax and the cost to overcome it are generally dependent on the health of the existing systems. This aligns with an existing finding of AI working as a mirror and an amplifier. AI doesn’t fix a team, and it doesn’t fix a codebase. It reflects the existing strengths and weaknesses of each back and amplifies them.
Maintaining separate platforms without establishing a scalable architecture means doubling the verification tax for every change you want to ship to mobile.
The Propagation Tax
Coding agents continue to make great strides in capabilities and quality, but no one would claim they are perfect. Neither are human developers. Whatever the source, bugs still happen. Duplicate code has always been a problem for codebases. When code gets duplicated (either through copy/paste or by an agent), any bugs in that block get propagated. Every time a developer/agent needs to fix a bug, or otherwise change the block, they must discover everywhere it’s been copied to and evaluate if it needs to be changed. This leads to a high likelihood of creating latent bugs throughout the codebase. GitClear describes this as a “propagation tax” in their study of AI impact on code quality signals. They highlight an 81% increase in duplicated code blocks in the past 3 years. This is concerning in the same-language context of the study, even more so when crossing between Kotlin and Swift. Intentionally introducing code duplication across platforms will add significantly to this technical debt.
The Role of KMP
Kotlin Multiplatform acts as a complementary tool to your agentic workflow. It enables significant code sharing, without giving up the benefits of native development. Familiar tooling, seamless interop, and native performance mean there is very little reason not to leverage KMP, and a lot to gain.
Write and verify once
Shared implementation means one test suite, one code review, and easier to follow changes. Shared code simplifies context, so you avoid paying for agents to discover, understand, and update functionality across multiple versions of the same logic. Making changes in a single place also reduces opportunities for bugs to be propagated and for inconsistencies to creep in. Cutting both your verification and propagation taxes allows you to overcome them more quickly and see real organizational productivity.
Amplifying your AI budget
It’s true iterative porting is possible without KMP. Invest enough time and tokens into the workflows, skills, documentation, and verification harness. A team could definitely overcome the various headwinds associated with AI duplicated applications, but this is trying to solve divergence through process. It’s becoming increasingly feasible but, as long as parity depends on human input or a non-deterministic agentic process, it’s still valuable to enforce it with shared code, rather than simply encourage it with convention. By all means, build out these processes, but let KMP amplify their impact.
What To Do
Understand where you’re at
If you are already juggling multiple mobile apps, it’s easy to lose track of just how far your platforms have diverged. Review the application and identify the most significant differences and how they impact your users (Touchlab has been previewing Parive for this step).
Go for the initial port
A 1:1 port is undeniably the fastest way to get your platforms in line. Porting before fixing your foundational issues will introduce technical debt as described above, but it will deliver results to your users quickly while you work on your architecture foundations and sustainability.
Converge your logic layer in KMP
Bring your networking, data, auth, and domain layers into shared code. These are the places where platform drift is most problematic and also where sharing code has minimal cost. Leverage agents to drive the refactor and walk away with a more sustainable codebase.
More Signal, Less Noise
AI amplifies both the strengths and the weaknesses of your team, the signal and the noise. It allows you to move fast, and to diverge fast. Now more than ever, it’s critical to build foundational architectures that can support accelerated development. KMP lets you enforce consistency with shared code, rather than hoping for it through process.
“Invest in engineering excellence today to ensure AI acts as an amplifier of value rather than a catalyst for downstream chaos.”