Mobile Development Vocabulary: iOS, Android, and Cross-Platform Terms

35 essential mobile development terms explained: native vs cross-platform, APK, IPA, lifecycle, push notifications, deep links, App Store review, and more.

Mobile development has its own vocabulary that overlaps with but differs from web and backend development. Whether you are working with native iOS/Android apps or cross-platform frameworks like React Native and Flutter, these are the terms you will encounter from day one.


Platforms & Approaches

Native App

A native app is built specifically for one platform using its official programming language and SDK:

  • iOS: Swift or Objective-C with Apple’s SDKs
  • Android: Kotlin or Java with Google’s Android SDK

Native apps have full access to device features and typically offer the best performance and user experience.

Cross-Platform App

A cross-platform app is built with a single codebase that runs on both iOS and Android. Examples: React Native (JavaScript), Flutter (Dart), Xamarin (C#), Ionic (HTML/JS).

Trade-off: write once, run everywhere — but with some performance and native UI limitations.

Hybrid App

A hybrid app is a web application wrapped in a native container. The UI is rendered in a WebView. Examples: Cordova, older Ionic apps. Generally less performant than native or modern cross-platform.

PWA (Progressive Web App)

A PWA is a web application that behaves like a native app — installable from the browser, works offline, sends push notifications. Does not require app store submission.


App Distribution

APK (Android Package Kit)

An APK is the file format for Android applications — the bundle that contains the app’s code, resources, and manifest. You can install an APK directly (sideloading) or distribute via the Google Play Store.

AAB (Android App Bundle)

An AAB is the newer app distribution format for the Google Play Store. Play generates smaller APKs for each device type from the bundle, reducing download size. Google Play now requires AAB.

IPA (iOS App Archive)

An IPA is the file format for iOS applications (iPhone Application). It is used for distribution via TestFlight or the App Store, and for direct enterprise distribution.

App Store / Google Play Store

The official distribution platforms:

  • App Store (Apple) — for iOS apps; requires developer account, app review
  • Google Play Store (Google) — for Android apps; review process is faster

Sideloading

Sideloading means installing an app directly on a device without going through the official app store. On Android it is allowed (with a setting enabled); on iOS it is much more restricted.

TestFlight

TestFlight is Apple’s official platform for distributing pre-release iOS apps to testers before App Store submission.

Beta Testing / Internal Testing Track

Google Play equivalent of TestFlight — an internal testing track lets you distribute to a small set of testers directly. A beta track allows broader pre-release distribution.


iOS Terms

SDK (Software Development Kit)

Apple’s iOS SDK (now part of Xcode) provides the APIs, frameworks, and tools needed to build iOS apps.

Xcode

Xcode is Apple’s official IDE for iOS, macOS, watchOS, and tvOS development. Required for building and submitting iOS apps.

Swift

Swift is Apple’s modern programming language for iOS and macOS development. Introduced in 2014, it replaced Objective-C as the primary iOS language.

Objective-C

Objective-C is the older language used for iOS and macOS development. Still present in legacy codebases.

Storyboard / SwiftUI

  • Storyboard — Apple’s visual UI builder (XML-based)
  • SwiftUI — Apple’s modern declarative UI framework, introduced in 2019

Provisioning Profile

A provisioning profile links your developer certificate, app ID, and allowed devices (in development) or distribution method. Required to install or distribute iOS apps.


Android Terms

Android Studio

Android Studio is Google’s official IDE for Android development, based on JetBrains IntelliJ.

Kotlin

Kotlin is Google’s preferred language for Android development — modern, concise, and fully interoperable with Java.

Gradle

Gradle is the build system used in Android projects. Controls dependencies, build variants, and signing configurations.

Manifest (AndroidManifest.xml)

The Android Manifest declares the app’s components (activities, services, receivers), permissions, and metadata.

Activity

An Activity in Android represents a single screen with a user interface. An app typically has multiple activities.

Fragment

A Fragment is a reusable portion of UI that can be embedded in an Activity. Allows building modular, flexible layouts.


Lifecycle & State

App Lifecycle

The app lifecycle describes the states an app moves through: foreground (active, visible), background (running but not visible), and killed/terminated. Developers must handle state transitions — saving data when backgrounded, restoring state when resumed.

Foreground / Background

  • Foreground — app is visible and running
  • Background — app is running but not visible (e.g., playing music, tracking location)

A deep link is a URL that opens a specific screen inside an app (rather than the home screen). Example: a notification with a deep link that opens the order details screen.

Variants: Universal Links (iOS), App Links (Android), Custom URI Schemes (myapp://).


Push Notifications

Push Notification

A push notification is a message sent from a server to a user’s device, displayed even when the app is not open.

APNs (Apple Push Notification service)

APNs is Apple’s service for delivering push notifications to iOS devices. Your backend sends messages to APNs; APNs delivers them to the device.

FCM (Firebase Cloud Messaging)

FCM is Google’s cross-platform push notification service — handles delivery to both Android and iOS.


Performance & Quality

Crash Report

A crash report records details about an app crash — stack trace, device info, OS version. Services: Firebase Crashlytics, Sentry, Bugsnag.

ANR (Application Not Responding)

ANR is an Android-specific error shown when the app’s main thread is blocked for too long (usually 5+ seconds). The user sees a dialog asking to close the app.

Jank

Jank refers to visible stuttering or frame drops in animations and scrolling. Jank occurs when the UI thread cannot render 60 frames per second. Measured by frame rate.

OTA Update (Over-the-Air)

An OTA update delivers changes to an app without requiring a full store release. For React Native and Expo, tools like Expo Updates allow JavaScript code updates OTA.


Quick Reference

TermOne-liner
Native appBuilt specifically for one platform (iOS or Android)
Cross-platformSingle codebase for both iOS and Android
APKAndroid app package file
IPAiOS app archive file
TestFlightApple’s pre-release distribution for beta testers
Deep linkURL that opens a specific screen in the app
ANRAndroid app blocked the main thread too long
JankVisible stuttering/frame drops in the UI
APNsApple’s push notification delivery service
FCMGoogle’s push notification service (iOS + Android)
LifecycleApp states: foreground, background, killed