LevelUpWith

Explore / Scaling Apps Beyond the Chat Window: Part 3, Mobile Apps, Games and Growth / Lesson 2

Lesson 2: Going Native with an AI Coding Agent: Swift and Kotlin

Why building fully native iOS and Android apps was long avoided, what AI coding agents change about that trade-off, what they do not change, and how to try it on a small screen. Taught straight after the lesson that introduces the four ways to go mobile, and before the lesson on choosing one; refer to other lessons by name, never by number.

Free to read, no account needed. Part of Scaling Apps Beyond the Chat Window: Part 3, Mobile Apps, Games and Growth.

By the end of this level you'll be able to

  • Explain what fully native means: Swift and SwiftUI in Xcode on a Mac for iOS, and Kotlin with Jetpack Compose in Android Studio for Android, noting Java as the older Android language still found in existing projects.
  • Explain why teams avoided native: two codebases, two languages and two sets of bugs, which is why cross-platform tools such as React Native won.
  • Show what AI coding agents change: translating a feature between platforms, working in an unfamiliar language, and keeping two apps in step, stating plainly that this is a recent shift, where the evidence is practitioner experience and where it has been measured.
  • Give the advantages over React Native: new platform features on day one, performance, smaller apps, full use of system features such as widgets and watch apps, and fewer framework upgrades, with the current limits of each claim checked against official sources.
  • Be honest about what AI does not remove: two apps to test and release, features drifting apart, an Apple Mac and Xcode being needed for iOS, no over-the-air updates, and a learner less able to review two languages; give a simple rule for when native is worth it.
  • Walk through asking a coding agent to build one small screen in SwiftUI and the same screen in Jetpack Compose, running each in the simulator or emulator, with a route for learners who have no Mac.

What "fully native" means

The previous lesson covered the four ways to put an app on a phone. This lesson looks closely at the hardest one: writing a separate native app for each platform. An AI coding agent makes this option more realistic than it used to be.

Native means you write the app in the language and tools that the phone's maker provides. No extra layer sits in between.

  • iOS (iPhone and iPad): you write the code in Swift. You build the screens with SwiftUI, Apple's toolkit for describing a screen in code. The work happens in Xcode, Apple's development app, which runs only on a Mac. Xcode 26 needs macOS Sequoia 15.6 or later. Since 28 April 2026, every app uploaded to the App Store must be built with Xcode 26 or later and the iOS 26 SDK (checked October 2026).
  • Android: you write the code in Kotlin. You build the screens with Jetpack Compose, and the work happens in Android Studio, which runs on Windows, macOS, Linux and ChromeOS. Google has recommended Kotlin since 2019. Java is the older Android language, and you will still see it in existing projects.

Think of it like publishing a book in two languages. React Native is like writing once and printing with a translation layer. Native is like writing two original editions.

Why teams avoided native

Going native meant:

  1. Two codebases. Every feature had to be built twice.
  2. Two languages. The team needed Swift skills and Kotlin skills, which usually meant two different people.
  3. Two sets of bugs. Each app broke in its own way.

That cost is why cross-platform tools such as React Native won. One JavaScript codebase could ship to both stores.

What an AI coding agent changes

This shift is recent, so be clear about how good the evidence is.

  • Translating a feature. You can give the agent a finished SwiftUI screen and ask for the same screen in Compose.
  • Working in an unfamiliar language. The agent writes the Kotlin, and you ask it to explain each part.
  • Keeping two apps in step. Agents can compare the two codebases and list where they differ.

How good is the evidence? The benefits above come mostly from practitioner experience, meaning developers' own reports. They have not yet been measured in careful studies. Where productivity has been measured, the results are mixed. In a 2025 randomised controlled trial, METR studied experienced open-source developers using early-2025 AI tools. They took 19% longer to finish their tasks, even though they believed the tools had made them faster. Treat "AI makes native cheap" as something to test for yourself, not a proven fact.

What native gives you over React Native

Each advantage is real, but each has limits:

  • New platform features on day one. Apple and Google release new features for their own toolkits first. Cross-platform libraries catch up later.
  • Performance. There is no JavaScript layer. The gap is small for simple screens and matters most for heavy animation or graphics.
  • Smaller apps. You do not ship a JavaScript engine inside the app.
  • Full use of system features. This advantage is smaller than it was. Expo's expo-widgets library now builds home-screen widgets for both Android and iOS in React, though it needs a development build. Apple Watch apps and the newest system features are still easiest in Swift.
  • Fewer framework upgrades. You avoid the regular React Native and Expo version upgrades. You still have to keep up with yearly Xcode and SDK requirements.

What AI does not remove

  • Two apps to test and release. You need two store submissions and two review queues.
  • Feature drift. A fix made on iOS gets forgotten on Android.
  • A Mac and Xcode for iOS. There is no way around this for the full toolchain.
  • No over-the-air updates. React Native with EAS Update can push JavaScript fixes to users within minutes, as long as the app store rules allow the change. A native fix needs a full store release.
  • Harder reviewing. A later lesson covers when to get human help. Checking AI code in two languages you cannot read is harder still.

Simple rule: go native only when your app's main value depends on a platform feature, and you can test and release two apps. Otherwise, choose a cross-platform route.

Do this: build one screen twice

The example screen is a Streak counter: a title, a number, a "Done today" button that adds 1, and a "Reset" button.

  1. Write one spec. Put the screen's text, buttons and behaviour in a plain text file. Both apps get built from this file.
  2. iOS (Mac only): In Xcode, choose File > New > Project > iOS > App and set the interface to SwiftUI. Paste in your spec and ask the agent: "Write ContentView.swift in SwiftUI to match this spec. Explain each line." Pick an iPhone simulator and press Run.
  3. Android (any computer): In Android Studio, create a project from the Empty Activity template, which uses Compose. Ask the agent: "Write the same screen in Jetpack Compose in MainActivity.kt to match this spec." Create a virtual device in Device Manager, then press Run.
  4. Check for drift. Go through the spec line by line on both screens. Then ask the agent to compare the two files and list any differences.
  5. Commit both to GitHub with a message that names the spec.

No Mac? Do the Android part in full. For iOS, use Swift Playgrounds on an iPad to build a SwiftUI app; it cannot do in-app purchases. Another option is to read the agent's Swift code with its explanation, without running it.

Key takeaways

  • Native means Swift and SwiftUI in Xcode (Mac only) for iOS, and Kotlin and Compose in Android Studio for Android. Java is the older Android language.
  • AI agents lower the cost of two codebases. The evidence is mostly practitioner reports, and measured results are mixed.
  • Native's advantages are real but smaller than they were. Expo now handles widgets.
  • You still have two releases, a risk of drift, the need for a Mac, no over-the-air fixes, and code in two languages to review.
  • Go native only when a platform feature is central to your app and you can run two apps.

A 6-question knowledge check follows this lesson in the app, free and without an account.

Keep going: levels 3 and 4 are free

Create a free account to open the next two levels, save your progress and pick up where you left off. No card needed.

Next: Level 3, Choosing Your Path and Testing on a Real Phone.

Create a free account →See the whole course

More like this

  • GitHub Copilot (GH-300) Exam Prep

    Learn GitHub Copilot hands-on in the editor, in the CLI and on github.com, and work through every skill in the GH-300 study guide (skills measured as of August…

    Exam prep · GH-300 · Software & Engineering · Capable · 18 levels · 4 free · Professionally curated by levelupwith.com

  • Scaling Apps Beyond the Chat Window: Part 2, Online, Secure and AI-Powered

    Take one small app from your GitHub repository to a public web address. You will host it on Vercel and give it a Supabase database, sign-in and file storage, w…

    Course · Software · Software & Engineering · Capable · 16 levels · 4 free · Professionally curated by levelupwith.com

  • Scaling Apps Beyond the Chat Window: Part 1, From Prompt to Project

    Move an app you built in an AI chat onto your own computer and work on it step by step with a coding agent. Save your work with Git, keep secrets out of your c…

    Course · Software · Software & Engineering · Capable · 19 levels · 4 free · Professionally curated by levelupwith.com

  • Right Chip, Right Job: CPUs, GPUs, TPUs and Beyond

    Profile a workload, place it on a roofline and pick the processor that actually suits it, whether CPU, GPU, TPU, ASIC, inference chip, NPU, FPGA or DPU. You wi…

    Beyond the Obvious · Software & Engineering · Expert · 61 levels · 4 free · Professionally curated by levelupwith.com

  • Build Your First Website with HTML and CSS

    Start from a blank file and build a real, accessible personal or small-business website that works on phones. Each level adds to the same site, covering semant…

    Course · Software · Software & Engineering · Capable · 18 levels · 4 free · Professionally curated by levelupwith.com

  • JavaScript from Zero: Build Interactive Web Pages

    Start with no coding experience and finish with a working to-do app you built yourself in plain JavaScript. Along the way you will learn to change the page thr…

    Course · Software · Software & Engineering · Capable · 20 levels · 4 free · Professionally curated by levelupwith.com