Section 01

What is Mobile Development?

An overview of the mobile ecosystem -- platforms, approaches, and the tools that power it all.

🌍 The Mobile Ecosystem

Mobile development is the process of building software applications that run on mobile devices -- smartphones and tablets. The mobile world is dominated by two major platforms:

  • iOS -- Apple's operating system for iPhones and iPads. Apps are distributed through the App Store.
  • Android -- Google's open-source operating system used by Samsung, Google Pixel, OnePlus, and many other manufacturers. Apps are distributed through the Google Play Store.

Together, these two platforms account for over 99% of all mobile devices worldwide. When you build a mobile app, you need to decide: do you build for one platform, or both?

⚖️ Native vs Cross-Platform

There are two main approaches to mobile development:

  • Native development -- Building separate apps for each platform using that platform's official language and tools. iOS uses Swift and Xcode; Android uses Kotlin and Android Studio. Native apps have the best performance and deepest access to device features.
  • Cross-platform development -- Writing one codebase that runs on both iOS and Android. Frameworks like React Native, Flutter, and .NET MAUI make this possible. You trade some platform-specific polish for faster development and code sharing.

Neither approach is universally "better" -- the right choice depends on your project's requirements, timeline, and team expertise.

🧰 What is an SDK?

An SDK (Software Development Kit) is a collection of tools, libraries, documentation, and code samples that developers use to build apps for a specific platform. Think of it as a toolbox provided by the platform maker.

  • Apple's iOS SDK includes frameworks like UIKit, SwiftUI, Core Data, and MapKit -- everything you need to build iPhone apps
  • Google's Android SDK includes Jetpack libraries, Material Design components, and APIs for cameras, sensors, and location

When someone says "install the SDK," they mean downloading the official set of tools you need to start building. Without the SDK, you can't compile or test your app for that platform.

📊 App Stores at a Glance

🍎
Apple App Store
Strict review process, $99/year developer account, ~1.8M apps
📦
Google Play Store
Faster review, $25 one-time fee, ~3.5M apps
💰
Revenue Split
Both stores take 15-30% commission on in-app purchases
🌐
Global Reach
6.8 billion smartphone users worldwide
Section 02

iOS Development

Building apps for iPhone and iPad with Swift, Xcode, and Apple's ecosystem.

Step 1: Install Xcode
🔨 Xcode -- Apple's IDE

Xcode is Apple's official Integrated Development Environment (IDE) for building iOS, macOS, watchOS, and tvOS apps. It's a free download from the Mac App Store, but it's macOS-only -- you need a Mac to build iOS apps.

Xcode includes everything: a code editor, a visual interface builder, debugging tools, performance profilers, and the iOS Simulator.

Install Xcode command line tools
$ xcode-select --install
Note
For the full Xcode IDE, download from the Mac App Store. The command above installs command-line tools only.
Step 2: Learn Swift
🐦 Swift -- Apple's Modern Language

Swift is Apple's programming language for building iOS apps. It replaced Objective-C as the primary language and is designed to be safe, fast, and expressive. If you're starting iOS development today, Swift is the language to learn.

  • Type-safe -- catches errors at compile time, not at runtime
  • Modern syntax -- clean, readable code with features like optionals, closures, and generics
  • Memory-safe -- automatic reference counting (ARC) manages memory for you
  • Open source -- developed in the open at swift.org
Swift example -- a simple view
import SwiftUI
struct ContentView: View {
var body: some View {
Text("Hello, World!")
}
}
Step 3: Choose a UI Framework
🎨 SwiftUI vs UIKit

Apple offers two frameworks for building user interfaces:

  • SwiftUI -- Apple's modern, declarative UI framework (introduced in 2019). You describe what the UI should look like, and SwiftUI handles the how. It uses less code and provides live previews in Xcode. Best for new projects.
  • UIKit -- The older, imperative UI framework that's been around since the first iPhone SDK. You manually create and manage UI elements. It's more verbose but has full control and a massive library of existing code. Most production apps still use UIKit.

Recommendation for beginners: Start with SwiftUI. It's easier to learn, Apple is investing heavily in it, and it's the future of iOS development. You can always learn UIKit later for specific needs.

Step 4: Use the iOS Simulator
📱 What is a Simulator / Emulator?

A simulator (or emulator) is a software program that mimics a real mobile device on your computer. Instead of needing a physical iPhone to test your app, you can run it in a virtual iPhone right on your Mac.

  • iOS Simulator (built into Xcode) -- simulates iPhones and iPads of various sizes and OS versions. It's fast because it runs native macOS code, not actual iOS.
  • Why it matters -- you can test on devices you don't own, rapidly iterate on designs, and debug more easily than on a real device
  • Limitations -- no camera, no accelerometer, no GPS hardware. For those features, you need a real device.

To launch the simulator, just click the "Run" button in Xcode (or press Cmd + R). Xcode will compile your app and open it in the simulator automatically.

Step 5: Testing & Deployment
🚀 TestFlight & App Store Submission

TestFlight is Apple's official beta testing platform. Before releasing your app to the public, you can invite up to 10,000 testers to try it out and give feedback.

  • Internal testing -- share builds with up to 100 team members instantly
  • External testing -- invite public testers via email or a shareable link
  • Automatic crash reports -- see issues your testers encounter

When you're ready to go public, you submit your app through App Store Connect. Apple reviews every app for quality, security, and content guidelines. The review process typically takes 24-48 hours.

💡
You need an Apple Developer Account ($99/year) to distribute apps on the App Store or TestFlight. You can develop and test on the simulator for free.
Section 03

Android Development

Building apps for the world's most popular mobile OS with Kotlin, Android Studio, and Google's tools.

Step 1: Install Android Studio
💻 Android Studio -- Google's IDE

Android Studio is Google's official IDE for Android development, built on JetBrains' IntelliJ IDEA. Unlike Xcode, it runs on macOS, Windows, and Linux -- you don't need specific hardware to build Android apps.

Android Studio includes a code editor, visual layout editor, APK analyzer, built-in emulator, and the Android SDK manager. Download it for free from developer.android.com/studio.

Verify Android SDK (after install)
$ sdkmanager --list
Shows installed SDK packages
Installed packages: build-tools;34.0.0 platforms;android-34 emulator
Step 2: Learn Kotlin
🟣 Kotlin -- Android's Primary Language

Kotlin is now Google's preferred language for Android development. It's developed by JetBrains (the same company behind Android Studio's foundation) and has been the recommended language since 2019.

  • Concise -- significantly less boilerplate than Java
  • Null-safe -- the type system distinguishes between nullable and non-nullable references, preventing the dreaded NullPointerException
  • Interoperable with Java -- you can call Java code from Kotlin and vice versa, so you can adopt it gradually
  • Coroutines -- built-in support for asynchronous programming

Java is still widely used in existing Android apps and is perfectly valid for new projects. However, most new tutorials and Google's official samples now use Kotlin.

Kotlin example -- a simple composable
@Composable
fun Greeting(name: String) {
Text(
text = "Hello, $name!",
style = MaterialTheme.typography.headlineMedium
)
}
Step 3: Choose a UI Approach
🎨 Jetpack Compose vs XML Layouts

Just like iOS has SwiftUI and UIKit, Android offers two approaches to building UIs:

  • Jetpack Compose -- Google's modern, declarative UI toolkit (stable since 2021). You write UI in Kotlin code using composable functions. Less boilerplate, live previews, and easier state management. The future of Android UI.
  • XML Layouts -- The traditional approach where you define UI in XML files and connect them to code. Still used in millions of existing apps and remains fully supported, but new projects should prefer Compose.

Recommendation for beginners: Start with Jetpack Compose. Like SwiftUI on iOS, it's the modern approach that Google is actively investing in.

Step 4: Use the Android Emulator
📲 Android Emulator

The Android Emulator (built into Android Studio) creates virtual Android devices on your computer. Unlike Apple's Simulator, the Android Emulator actually runs a full Android operating system -- making it a true emulator.

  • Virtual Device Manager (AVD) -- create emulators that mimic specific phones (Pixel 8, Galaxy S24, etc.) with different screen sizes and Android versions
  • Hardware acceleration -- uses your computer's virtualization to run smoothly (enable Intel HAXM on Windows or use the built-in hypervisor on macOS)
  • Simulated features -- GPS location, phone calls, SMS, battery states, and even camera input can be simulated

Open the AVD Manager in Android Studio, create a virtual device, then click "Run" to launch your app on it.

💡
Emulator vs Simulator: An emulator replicates the entire operating system (Android Emulator runs real Android). A simulator only mimics the behavior (iOS Simulator runs translated code on macOS). Both let you test without a physical device.
Step 5: Publish to Google Play
🏪 Google Play Store Submission

Publishing to the Google Play Store is generally faster and less restrictive than the Apple App Store:

  • Developer account -- one-time $25 fee (vs Apple's $99/year)
  • Google Play Console -- manage your app listing, upload builds, view analytics, and respond to reviews
  • Testing tracks -- internal testing, closed testing, open testing, and production. Roll out to a small percentage of users before going public.
  • Review process -- automated and typically takes hours (sometimes minutes), though manual review can take longer

You'll need to build a signed AAB (Android App Bundle) file and upload it through the Play Console.

Section 04

Cross-Platform Frameworks

Write once, run everywhere -- the frameworks that let you build for iOS and Android from a single codebase.

React Native
⚛️ React Native (JavaScript / TypeScript)

React Native is Meta's open-source framework for building mobile apps using JavaScript or TypeScript. If you already know React for web development, the transition is natural -- you use the same component-based architecture.

  • Language -- JavaScript or TypeScript
  • How it works -- your JS code communicates with native platform components through a "bridge." The UI you see is truly native (not a web view).
  • Ecosystem -- massive community, thousands of third-party libraries, and tools like Expo that simplify setup
  • Used by -- Instagram, Facebook, Shopify, Discord, Bloomberg
Create a new React Native app with Expo
$ npx create-expo-app@latest my-app
Flutter
💠 Flutter (Dart)

Flutter is Google's open-source UI toolkit for building natively compiled apps from a single codebase. It uses the Dart programming language and renders everything using its own graphics engine (Skia/Impeller), so the UI looks identical on iOS and Android.

  • Language -- Dart (easy to learn if you know JavaScript, Java, or C#)
  • How it works -- Flutter draws every pixel itself using a custom rendering engine, bypassing native UI components entirely
  • Hot reload -- see changes instantly without rebuilding the app, making development extremely fast
  • Used by -- Google Pay, BMW, Alibaba, eBay, Toyota
Create a new Flutter app
$ flutter create my_app
.NET MAUI
🟦 .NET MAUI (C#)

.NET MAUI (Multi-platform App UI) is Microsoft's framework for building cross-platform apps with C# and XAML. It's the evolution of Xamarin and targets iOS, Android, macOS, and Windows from a single codebase.

  • Language -- C# (one of the most popular enterprise languages)
  • How it works -- uses native platform controls, so your app looks and feels native on each platform
  • Visual Studio integration -- deep tooling support in Visual Studio and VS Code
  • Best for -- teams already in the .NET / Microsoft ecosystem

⚖️ Comparing the Approaches

Approach Language Best For
Native iOS Swift Best performance, full Apple ecosystem access
Native Android Kotlin Best performance, full Google ecosystem access
React Native JavaScript / TS Web developers moving to mobile, large JS ecosystem
Flutter Dart Beautiful custom UIs, rapid prototyping, startups
.NET MAUI C# Enterprise teams in the Microsoft ecosystem
🤔 When to Choose Which?
  • Choose native when performance is critical (games, AR, complex animations), you need deep platform integration, or you're building for only one platform
  • Choose cross-platform when you need to ship on both platforms quickly, your team is small, or the app doesn't need heavy native features
  • Choose React Native if your team already knows JavaScript/React
  • Choose Flutter if you want maximum UI consistency across platforms or are starting fresh
  • Choose .NET MAUI if your backend is .NET and your team knows C#
⚠️
No approach is "wrong." Instagram (React Native), Google Pay (Flutter), and the entire iPhone app ecosystem (native Swift) are all massive successes. Pick the tool that fits your team and project, not the one with the most hype.
Section 05

AI + Mobile Development

How AI tools accelerate mobile development and how to build AI-powered features into your apps.

🤖 AI-Assisted Mobile Development

AI coding tools are transforming how mobile apps are built. Instead of searching Stack Overflow or reading through documentation, you can use AI agents to help you code faster:

  • Claude Code -- Anthropic's AI coding agent can generate SwiftUI views, Kotlin composables, React Native components, and Flutter widgets. It understands your project structure and writes code that fits your existing patterns.
  • OpenAI Codex / ChatGPT -- can help debug layout issues, explain error messages, generate boilerplate code, and convert between frameworks
  • AI for UI generation -- describe a screen in plain English and get a working SwiftUI or Compose layout back
  • AI for testing -- generate unit tests, UI tests, and integration tests from your existing code
🧠 On-Device Machine Learning

Modern mobile devices have powerful chips capable of running AI models directly on the phone -- no internet connection required. This enables features like real-time translation, image recognition, and voice processing:

  • Core ML (iOS) -- Apple's framework for running machine learning models on iPhone. Powers features like photo search, Siri, and Live Text. You can train custom models using Create ML.
  • ML Kit (Android) -- Google's on-device machine learning SDK. Provides ready-to-use APIs for text recognition, face detection, barcode scanning, image labeling, and more.
  • TensorFlow Lite -- Google's lightweight ML framework that runs on both iOS and Android. Great for custom models and cross-platform ML.

On-device ML is faster (no network latency), works offline, and keeps user data private since nothing leaves the phone.

Practical AI Workflows for Mobile

Here are concrete ways to use AI tools in your mobile development workflow:

  • Generate UI components -- "Create a SwiftUI card component with an image, title, and subtitle" and get working code instantly
  • Debug layouts -- paste your layout code and describe the problem: "The text is cut off on smaller screens" and get a fix
  • Write networking code -- "Write a Kotlin function that fetches weather data from this API and parses the JSON response"
  • Convert between platforms -- "Convert this SwiftUI view to Jetpack Compose" to quickly port UI between iOS and Android
  • Explain error messages -- paste a cryptic Xcode or Gradle error and get a plain-English explanation with a fix
Learn more about these AI tools on our Claude Code and Codex pages. AI is not a replacement for understanding mobile development fundamentals -- it's a multiplier for your existing skills.
Section 06

Getting Started Projects

Hands-on project ideas to build your mobile development skills. Start simple, then level up.

🔢 Calculator App
Beginner
Build a basic calculator with a clean number pad UI. Learn about button layouts, state management, and handling user input. A perfect first project for any platform.
To-Do List App
Beginner
Create a task manager with add, complete, and delete functionality. Learn about lists, local data persistence (Core Data, Room, or AsyncStorage), and CRUD operations.
🌦️ Weather App
Intermediate
Fetch weather data from a public API (like OpenWeatherMap) and display current conditions and forecasts. Learn about networking, JSON parsing, async/await, and API keys.
👤 Portfolio App
Intermediate
Build a personal portfolio app showcasing your projects, skills, and contact info. Learn about navigation (tab bars, stack navigation), images, and custom theming.
🚀
Pro tip: Pick any of these projects and build it with Claude Code as your pair-programming partner. Describe what you want to build, and Claude can scaffold the project, generate components, and help you debug along the way.