Programming and Software Development
Mobile development
Mobile development builds for devices whose platform owners keep tight control. iOS apps are written in Swift against Apple's frameworks, Android apps mostly in Kotlin, and cross-platform toolkits such as Flutter and React Native trade some native polish for one shared codebase. What sets the field apart is less the code than its constraints: small screens, patchy networks, battery limits and a store review standing between every release and its users.
Why this topic exists: iOS, Android and the cross-platform frameworks are their own toolchains, stores and review rules (SFIA Systems development; Udemy's Mobile shelf).
Mobile development means building apps that live on a phone or tablet, installed from a store, running on hardware the developer does not control and on networks that come and go. Much of the code resembles any other client application: screens, navigation, state and calls to a server. What makes the field distinct is the environment the code has to survive in.
Constraints that shape every decision
- Small screens and touch input, which leave little room for anything but the essential.
- Unreliable connectivity. An app should show something useful offline and retry sensibly when the signal returns.
- Battery and background limits imposed by the operating system, which will suspend or stop work it considers wasteful.
- Store review. Every release passes the platform owner's checks before users see it, so a bug fix cannot ship in minutes.
- A long tail of devices and OS versions, particularly on Android, that all need to work.
- Permissions for the camera, location, contacts and notifications, each requested at a moment the user will understand.
Native or shared code
| Approach | Language | How the interface is drawn | Suits |
|---|---|---|---|
| Native iOS | Swift, with SwiftUI or UIKit | Apple's own controls | Apps that lean on platform features and polish |
| Native Android | Kotlin, with Jetpack Compose or Views | Android's own controls | Deep integration with Android and its hardware range |
| Flutter | Dart | Its own rendering engine paints every pixel | One team shipping a consistent design to both platforms |
| React Native | JavaScript or TypeScript with React | Maps components onto native controls | Teams that already build for the web in React |
Almost every app is a client of something else. It fetches and sends data through a REST API over HTTP, and much of mobile engineering lies in doing that gracefully: paging long lists, caching responses, refreshing expired tokens without logging the user out, and coping when a request dies halfway. Old versions of an app stay installed for months, so a server change that breaks them breaks users who never chose to update. SFIA has no separate mobile skill; the work falls under its general programming and software design skills, and the platform owners' own documentation acts as the real syllabus. No credential dominates hiring here, and a published app with real users is the evidence employers ask for.
Beginners tend to build on a fast office Wi-Fi connection and a new phone, then discover the app freezes on a train or crawls on an older device. Test on slow networks and modest hardware from the start, and treat accessibility settings such as larger text as part of the design rather than an afterthought. From here, the server side continues under back-end development and APIs, interface work under UX and interaction design, and release confidence under software testing. For apps that could live in a browser instead, see web development.
Next to this topic
- Programming fundamentalsOne language learned properly plus enough of the machine beneath it: variables, control flow, data structures, debugging and reading code (SFIA Programming/software development; MDN's getting-started modules).
- Programming languagesPython, JavaScript, Java, C#, C and C++, Go, TypeScript, Rust, Kotlin, Swift: what each is for and where it is hired, so the first choice is a career decision rather than a syntax preference (Udemy's Programming Languages shelf names the market).
- Web developmentHTML, CSS and JavaScript, then a framework and the browser's APIs: MDN's core and extension modules are the syllabus of the largest development field.
- Back-end development and APIsServers, frameworks, databases behind them and the HTTP and REST contracts between services (MDN server-side modules; DVA-C02; the freeCodeCamp back-end certificate).
- Databases and SQLThe relational model, SQL, schema design and the document and key-value stores next to it: the layer every application and every analyst stands on (SFIA Database design; DP-900 relational concepts).
- Software engineering practiceVersion control, code review, testing habits, architecture, design patterns and clean code: the slow layer hiring quietly filters on (SFIA Systems and software lifecycle engineering; MDN version-control module).
- Software testing and QATesting as a discipline: the ISTQB Foundation syllabus v4.0.1 (fundamentals, testing through the lifecycle, static testing, analysis and design, managing test activities, tools) plus the automation frameworks (Selenium, Cypress, Playwright).
- DevOps, Git and CI/CDVersion control workflows, pipelines, containers for developers and the culture that joins build and run (AZ-400; GitHub Foundations and Actions; the cloud field owns infrastructure as code and operations).
- Game developmentEngines, graphics, physics and the design loop are a development field with its own tooling and job market (Udemy's Game Development shelf; SFIA Animation development).
- No-code and low-code developmentBuilding software without writing most of it (Bubble, Webflow, Zapier, Make, Airtable) is a recognised route into shipping products; Microsoft's Power Platform is the office-suite version of the same idea.
- AI-assisted developmentAssistants changed how fast plausible code appears, not what makes it correct; reading, testing and correcting generated code is now part of the craft (GitHub certifies Copilot use and, on its 2026 credentials page, agentic AI development).
Concepts to know
Glossary entries with the reason each one matters here.
Tools of the trade
- Kotlin
Android's preferred language.
- Swift
Apple's language for iOS and macOS.
- Flutter
Google's cross-platform toolkit.
- React Native
React for phones.
Frequently asked
- Should I start with native or cross-platform development?
- If you know which platform your target employers or users favour, start native there, because the platform's conventions are easier to learn directly. If you already work in React or want one codebase for both stores, React Native or Flutter is a reasonable first choice.
- Do I need a Mac to build iOS apps?
- In practice, yes. Apple's development tools run on macOS, and signing and submitting an app goes through them. Cloud build services can compile for you, but day-to-day development and testing are far easier on a Mac.
- Kotlin or Java for Android?
- Kotlin. It is the language Android's current documentation and modern interface toolkit are built around, and it runs alongside existing Java code, so older projects can adopt it gradually.
Courses in the directory
981 courses are filed here; the top 6 by our ranking, details and the provider link on each course page.
Last reviewed 26 September 2026 · Getting Digital
