Second in a three-part series inspired by the roundtable Bitrock organized with nine Mobile Development and AI Professionals.
It only takes a small experiment to spot a curious pattern. Samantha Giro, Mobile Manager at Bitrock, asked an AI to generate an app without specifying which architecture to use, then repeated the test across different platforms. The result left her puzzled: for cross-platform work, the agent almost always suggested React Native. Not Flutter, not Kotlin Multiplatform. Why?
That question kicked off one of the most interesting threads at the Bitrock roundtable on the relationship between AI and mobile development. In this second blog post, we get into the details of tech choices: how AI behaves with different frameworks, and what that means in practice for people designing apps.
It’s a Numbers Game (and a Training Data Game)
The most widely shared explanation is as simple as it is telling: AI knows best whatever has the most code written about it. Stefano Mondino, an iOS developer at Synesthesia, nails it: “It comes down to numbers. React Native draws on a JavaScript developer pool that’s massively bigger than, say, Flutter’s, which starts from a less widely known language like Dart.”
Marco Riva, AI engineer at Fortitude Group, confirms this from the model-building side: without precise instructions or a preliminary web search, the model heads straight for whatever its training data covers best — which means JavaScript and React Native.
Carlo Lucera, Flutter Team Lead at Pivotal Technologies, adds an original take rooted in where these tools came from: many were built for the web, where getting an instant app preview meant using technologies that run in the browser. “That’s where the preference came from, and it stuck around, becoming a cornerstone of agentic coding.”
Every Framework Has Its Own Pitfalls
AI’s behavior shifts quite a bit from one technology to the next, and knowing where those limits lie is simply part of the job.
On Flutter, Carlo Lucera points less to glaring errors than to slightly dated habits: “Every so often it uses outdated conventions, like declaring the type of a constant when it’s no longer needed. They’re not bugs, just extra clutter to clean up. Reliability-wise, though, we’re at close to 90% correct.”
On Kotlin Multiplatform, Marco Gomiero acknowledges the training data is thinner, “but with the right pointers and a few skills or guardrails, it actually works out pretty well — the key is giving it precise instructions.”
On iOS, Federico Nessi noticed a stark difference between projects: on a messy implementation, the AI tended to lose its way in the logic flow, whereas on a clean, widely-adopted architecture like TCA it was “extremely precise.” His take: patterns implemented consistently across the whole community generate sharp, well-defined skills — and that lines up perfectly with how an AI reasons.
On Android, Federico Monti describes refactors complicated by outdated library references: “Getting to the final version took a lot of prompting and a lot of digging online.” And he flags a real risk with Jetpack Compose: AI also draws on mountains of dated code built on XML or older Compose versions, which can saddle you with technical debt “from day one” if you don’t have the expertise to catch it.
The Real Difference-Maker: Project Structure
On one point, everyone agrees: the more organized the project, the better the outcome. Stefano Mondino sums it up with a practical, often-underrated detail — folder structure. “With a really solid setup and well-organized folders, the folder name itself becomes context for the AI. Claude works like a dream.” Federico Monti makes the same point from another angle: sensible file and folder names, internal documentation, and comments cut down maintenance work dramatically down the line.
Native or Hybrid? The Question Itself Is Changing
The inevitable provocative question: if agents can generate solid native code, does hybrid development still make sense? The answers converge less on a clear winner than on a shift in perspective.
Marco Gomiero suggests staying flexible: “The real shift is not getting fixated on native versus multiplatform, but using whatever the agent handles best. It’s a mindset change too.” Stefano Mondino brings the focus back to people: “If I’ve got a highly skilled iOS team and a highly skilled Android team, I’d rather help them collaborate better and stay native, instead of taking on the risk of a drastic architecture change.” In the end, the choice comes down to time, budget, the quality bar, and the team you’ve got.
And looking ahead? Mondino is betting on a fairly stable division of labor: native will hold onto its share for premium, high-performance apps with deep hardware integration, while cross-platform frameworks like React Native and Flutter — increasingly powered by AI agents — will dominate everyday utility apps.
The Bottom Line
AI isn’t neutral when it comes to frameworks: it reflects what it’s learned, and what it’s learned depends on how much code is out there to learn from. Knowing this lets you make informed choices, give the right instructions, and structure projects so the agent can do its best work.
In the third and final piece, we’ll tackle the trickiest question of all: what remains irreplaceably human, from growing junior developers to managing client expectations.
Three-part series — Watch the Roundtable again
Speakers: Federico Monti (MOLO17), Stefano Mondino (Synesthesia), Carlo Lucera (Pivotal Technologies), Marco Gomiero (Airalo / Google Developer Expert), Federico Nessi (Bitrock), Emanuele Maso (Bitrock), Alberto Dallaporta (Novalab), Mauro Marinello (Fortitude Group), Marco Riva (Fortitude Group).
Moderator: Samantha Giro, Mobile Manager at Bitrock.