Native or cross-platform: deciding on evidence rather than preference
Both approaches build excellent products. The decision follows device capability requirements, team composition and roadmap shape.
Anything shipped to a device can be inspected and modified. Security has to live on the server, with the client hardened rather than trusted.
Applications can be decompiled, network traffic intercepted and runtime behaviour modified. Any secret in the binary is not a secret, and any check performed only on the client can be bypassed.
Authorisation, business rules and validation must be enforced server-side. Client-side versions of those checks are a user experience feature, not a control.
Enforce TLS and consider certificate pinning for high-value applications, understanding that pinning complicates certificate rotation and needs an update strategy.
Treat the mobile API as a public API, because it is. Rate limit it, authenticate every request, and never assume a request came from your app.
Obfuscation, root and jailbreak detection and integrity checks do not make an application secure, and they do raise the effort required for casual attacks.
Treat them as friction rather than protection, and keep the real controls on the server where they cannot be removed by editing the client.
Token handling is where most practical mobile security problems appear. Store refresh tokens in the platform keystore, keep access tokens short-lived, and ensure logout genuinely revokes server-side rather than only clearing local state.
That last point matters: protecting a screen while leaving the token readable protects nothing against anyone with device access.
For applications handling sensitive transactions, often yes. It defends against intercepting proxies and requires a plan for certificate rotation so an expiry does not break the installed base.
Ideally you do not ship them. Where a key must reach the device, obtain it after authentication and store it in the platform keystore, scoped as narrowly as possible.
For applications handling payments, health or personal data, it is expected and often contractually required. It also finds issues that code review does not.
Keep reading
Both approaches build excellent products. The decision follows device capability requirements, team composition and roadmap shape.
Users judge an app in the first few seconds. Startup time, scroll smoothness and battery drain are what they actually notice.
Store listings are a search and conversion problem. Most of the available improvement is in the first screenful.