Software Development
Mobile Development
Mobile engineers work under constraints the web mostly ignores: unreliable connections, limited battery, small screens and app store review. That constraint is the craft, and it is why mobile apps that work well feel noticeably better than the sites they replaced.
Start here
Start at Stage 1. If you already know JavaScript, the cross-platform route in Stage 2 will take you to a working app fastest.
Programming foundations
Mobile adds constraints on top of ordinary programming. Get the ordinary part first.
RequiredProgramming fundamentals
Every route below assumes you can already express logic in code.
Programming fundamentals
Every route below assumes you can already express logic in code.
What to learn
- Types and control flow
- Functions
- Data structures
- Async and callbacks
- Git
Next: Choosing a platform.
RequiredHow mobile differs
The constraints, not the syntax, are what make mobile a different discipline.
How mobile differs
The constraints, not the syntax, are what make mobile a different discipline.
What to learn
- Lifecycle and background states
- Permissions
- Unreliable networks
- Battery and data cost
- Touch targets and small screens
Practice
Next: A platform.
Choose a platform
This is the decision that shapes the rest of the path. All three routes lead to employment.
Choose one route and commit.
Cross-platform reaches both stores fastest and dominates the local freelance market. Native gives the deepest control and the strongest platform-specific roles.
Pick oneReact Native
If you know React, you are most of the way there already, and one codebase covers both stores.
React Native
If you know React, you are most of the way there already, and one codebase covers both stores.
What to learn
- Components and navigation
- Native modules in outline
- Platform-specific code
- Expo versus bare workflow
Tools
- React Native
- Expo
- TypeScript
First understand
- JavaScript
- React
Next: State and data.
Pick oneFlutter
Excellent performance and a genuinely consistent look across platforms. Growing fast in the region.
Flutter
Excellent performance and a genuinely consistent look across platforms. Growing fast in the region.
What to learn
- Dart
- Widgets and composition
- Navigation
- State management
Tools
- Flutter
- Dart
Next: State and data.
Pick oneNative Android or iOS
The deepest platform access and often the highest-paid mobile roles, at the cost of covering one platform at a time.
Native Android or iOS
The deepest platform access and often the highest-paid mobile roles, at the cost of covering one platform at a time.
What to learn
- Kotlin and Jetpack Compose, or Swift and SwiftUI
- Platform lifecycle
- Platform design guidelines
Tools
- Android Studio and Kotlin
- or Xcode and Swift
Next: State and data.
The core of an app
What every application needs regardless of the route you chose.
RequiredInterface and state
Mobile state is harder than web state, because the operating system can suspend or kill your app at any moment.
Interface and state
Mobile state is harder than web state, because the operating system can suspend or kill your app at any moment.
What to learn
- Layout for varied screen sizes
- Navigation patterns
- Managing state
- Handling rotation and suspension
- Lists that stay smooth
Practice
Project
beginnerA single-purpose app
An app that does one thing well: a habit tracker, a bus timetable, an expense log. Local storage only, no backend.
- Your chosen platform
You have an app running on a real device that you use yourself.
Next: Talking to a server.
RequiredNetworking and local data
Assuming a connection is the single most common mistake in apps built for markets with patchy data.
Networking and local data
Assuming a connection is the single most common mistake in apps built for markets with patchy data.
What to learn
- Consuming APIs
- Local databases
- Caching and offline-first
- Sync and conflict resolution
- Retry and backoff
Tools
- SQLite or the platform equivalent
- An HTTP client
Practice
Next: Device capabilities.
RecommendedDevice features
Camera, location and notifications are what make an app worth installing rather than bookmarking.
Device features
Camera, location and notifications are what make an app worth installing rather than bookmarking.
What to learn
- Permissions done respectfully
- Camera and media
- Location
- Push notifications
- Deep links
Next: Shipping to a store.
Getting it into people's hands
The stage that surprises people, because it has almost nothing to do with code.
RequiredStore release
An app that never passes review does not exist. The process has real rules and real rejection reasons.
Store release
An app that never passes review does not exist. The process has real rules and real rejection reasons.
What to learn
- Signing and certificates
- Store listings and screenshots
- Review guidelines
- Staged rollout
- Versioning and forced updates
Tools
- Google Play Console
- App Store Connect
Next: Testing and quality.
RequiredTesting and crash reporting
You cannot reach into a user's phone to debug. Crash reports are the only visibility you get.
Testing and crash reporting
You cannot reach into a user's phone to debug. Crash reports are the only visibility you get.
What to learn
- Unit and widget tests
- Testing on real low-end devices
- Crash reporting
- Reading a stack trace from the wild
- Beta channels
Tools
- A crash reporting service
- TestFlight or Play internal testing
Practice
Project
advancedA published app with a backend
An app with accounts, server-synced data, offline support, push notifications, and crash reporting, published to at least one store.
- Your platform
- A backend service
- A crash reporter
Someone who is not you has installed your app from a store and used it offline.
Where this leads
You do not have to pick one now. These are the directions this path opens up once you are working.
Continue your journey
The paths closest to this one. Skills overlap more than the job titles suggest.
Frontend Development
Build the part of the product people actually touch.
ViewFull Stack Development
Own a feature from the database to the button someone clicks.
ViewUI/UX Design
Decide how something should work before anyone builds it.
ViewQA & Test Automation
Find the problems before your users do, and automate the finding.
ViewYou do not have to do this alone
Our programs are free, taught live, and built around the same progression. Join one and work through it alongside other people.
