Native app
Native app is an application built specifically for a platform using its supported languages and development tools, such as Swift for iOS or Kotlin for Android. It can use platform APIs within device and permission limits. Supporting multiple platforms usually requires platform-specific implementation, testing and release work.
Also known as: native mobile app, platform-native app
Last reviewed
Why native matters
Everything a phone can do is exposed first, and sometimes only, to native code. New operating-system features, widgets, background processing modes, advanced camera controls, health and payment frameworks, and the more demanding graphics APIs all arrive in the platform toolkit before any cross-platform layer wraps them.
Native code is also the reference point for performance and for how an app feels. Gestures, transitions and scroll behaviour come from the platform's own components rather than an approximation of them, which matters most in apps people use for long stretches.
The cost is duplication. Supporting both platforms natively means two codebases, two sets of tests and two release processes, written by people with different specialisms.
How a native app is built
An iOS app is written in Swift using Apple's SDKs and built in Xcode; an Android app is written in Kotlin using the Android SDK and built in Android Studio. Each targets its platform's runtime and distribution requirements, with separate build and release processes.
Shared logic, when there is any, usually lives behind an API rather than in shared client code. That means a native project generally needs a back end designed for it: authentication, data, push notifications and any business logic both apps rely on.
Native app vs cross-platform
A cross-platform framework such as React Native or Flutter lets one codebase produce apps for both platforms. React Native uses native platform components; Flutter normally draws its own widget UI through its rendering engine. Both can produce installed apps. Assess the experience on your target devices.
The trade is at the edges:
- Cost and speed. Sharing code can reduce duplicated work, although platform-specific features and testing still add cost.
- Device capability. Native code uses platform APIs directly; cross-platform projects use available libraries or custom native integration where needed.
- New OS features. Check SDK availability and support. Cross-platform teams can add native code rather than always waiting for framework support.
- Sustained performance. Benchmark demanding graphics, camera and sensor workloads. Architecture and implementation matter alongside the framework.
- Team shape. Cross-platform needs one team; native needs Swift and Kotlin specialists.
When you need a native app
Choose native when a device capability, a performance requirement or a platform framework is central to what the app does, or when you are supporting only one platform and the second codebase never arises. Choose React Native or Flutter when the app is primarily screens, data and workflow and you want both platforms from one team. Explore our iOS development and Android development pages.
Further reading
Flutter: rendering architecture explains the underlying approach.
Native app: common questions
Platform-specific development uses a platform's tools and APIs directly. Cross-platform frameworks share substantial code across platforms but can still require native modules and platform-specific testing. The best fit depends on device features, user experience, team skills and lifetime cost.
Performance depends on the workload and implementation. Benchmark demanding graphics, camera, sensor and background tasks on supported devices. Typical forms and business workflows can work well in either approach.
Only if its features need server-side services, shared records or online coordination. An offline utility may not need a server. Where both iOS and Android use the same accounts and data, they can share a back-end API.
Want to talk about your project?
Tell us what you’re trying to achieve and we’ll map the fastest credible path.
