Skip to content

Mobile app development

Build native apps for Android with Kotlin and iOS with SwiftUI, then go cross-platform with Flutter or React Native, add backend services, test them and ship them.

Intermediate 11 steps

Steps

Languages and design

  1. Kotlin for AndroidLearn Kotlin's syntax, null safety, classes and coroutines, since it is the main language for modern Android apps.
    • Kotlin Documentation kotlinlang.orgfree

      Official Kotlin language documentation with a tour, reference and guides for Android, server and multiplatform use.

  2. Swift for Apple platformsLearn Swift's optionals, structs, protocols and closures, the language foundation for every iPhone and iPad app you will build.
    • Swift Documentation swift.orgfree

      Official documentation of the Swift language, including the language guide, standard library and API design guidelines.

  3. Platform design guidelinesStudy how each platform handles navigation, typography, gestures and accessibility, so your apps feel at home on Android and iOS.
    • Material Design 3 m3.material.iofree

      Google's design system for Android and other platforms, with components, layout, colour and accessibility guidance.

    • Human Interface Guidelines developer.apple.comfree

      Apple's design guidance for apps on its platforms, covering layout, navigation, accessibility and platform conventions.

Native development

  1. Android apps with Jetpack ComposeFollow the official courses to build Android screens with Compose, manage state, navigate between screens and store data locally.
    • Android Developers Courses developer.android.comfree

      Free official courses for building Android apps with Kotlin and Jetpack Compose, from first app to architecture.

    • Android Developer Documentation developer.android.comfree

      Official reference and guides for the Android platform, its APIs, tooling and app quality requirements.

  2. iOS apps with SwiftUIBuild complete iOS apps step by step with SwiftUI views, data flow and lists, then explore the platform frameworks in depth.
    • SwiftUI Tutorials developer.apple.comfree

      Step-by-step official tutorials that build complete iOS apps with SwiftUI, covering layout, data and navigation.

    • Apple Developer Documentation developer.apple.comfree

      Official documentation for building apps on iOS, iPadOS, macOS, watchOS and visionOS with Apple frameworks.

Cross-platform development

  1. FlutterWrite one Dart codebase that renders the same widgets on Android and iOS, and compare that model with native development.
    • Flutter Documentation docs.flutter.devfree

      Official guides and API reference for building cross-platform mobile, web and desktop apps with Flutter and Dart.

  2. React Native with ExpoUse React and JavaScript to build native mobile apps, letting Expo handle project setup, device testing and builds.
    • React Native Documentation reactnative.devfree

      Official guide to building native iOS and Android apps with React and JavaScript, from setup to native modules.

    • Expo Documentation docs.expo.devfreemium

      Documentation for Expo, a framework and toolset that simplifies building, testing and publishing React Native apps.

  3. TypeScript for mobile code (optional)Add static types to React Native projects to catch mistakes early and keep a growing mobile codebase easy to change.
    • TypeScript Handbook typescriptlang.orgfree

      Official handbook for the TypeScript language, explaining its type system and features from the basics through advanced topics for JavaScript developers.

Backend, testing and release

  1. Backend servicesConnect your app to authentication, cloud databases, storage and push notifications without running your own servers.
    • Firebase firebase.google.comfreemium

      Backend services for mobile and web apps, including authentication, databases, push notifications and analytics.

  2. Testing mobile appsWrite fast unit tests for app logic and fewer UI tests on top, following the test pyramid to keep releases reliable.
    • JUnit 5 junit.orgfree

      Standard programmer-friendly testing framework for Java that provides foundation for developer-side unit testing.

    • Martin Fowler's Bliki martinfowler.comfree

      An influential software engineering blog providing in-depth analysis of programming practices, testing, and agile principles.

    • Google Testing Blog testing.googleblog.comfree

      Insights and practical articles on testing practices, test automation at scale, and engineering productivity from Google.

  3. Publishing to the app storesLearn app signing, store listings, review rules and staged rollouts for Google Play and the App Store before your first release.
    • Android Developer Documentation developer.android.comfree

      Official reference and guides for the Android platform, its APIs, tooling and app quality requirements.

    • Apple Developer Documentation developer.apple.comfree

      Official documentation for building apps on iOS, iPadOS, macOS, watchOS and visionOS with Apple frameworks.

See also

External links, by their respective authors. This path is original IPL content.