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
-
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.
-
Kotlin Documentation
kotlinlang.orgfree
-
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.
-
Swift Documentation
swift.orgfree
-
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.
-
Material Design 3
m3.material.iofree
Native development
-
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.
-
Android Developers Courses
developer.android.comfree
-
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.
-
SwiftUI Tutorials
developer.apple.comfree
Cross-platform development
-
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.
-
Flutter Documentation
docs.flutter.devfree
-
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.
-
React Native Documentation
reactnative.devfree
-
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.
-
TypeScript Handbook
typescriptlang.orgfree
Backend, testing and release
-
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.
-
Firebase
firebase.google.comfreemium
-
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.
-
JUnit 5
junit.orgfree
-
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.
-
Android Developer Documentation
developer.android.comfree
See also
- Android Developer Roadmap (roadmap.sh)
- iOS Developer Roadmap (roadmap.sh)
- Flutter Roadmap (roadmap.sh)
- React Native Roadmap (roadmap.sh)
External links, by their respective authors. This path is original IPL content.