- What's the difference between native and cross-platform mobile development?
- Native development writes separate code for each platform using platform-specific languages—Swift for iOS, Kotlin for Android. Cross-platform frameworks like React Native or Flutter use a single codebase that compiles or translates to run on both systems. Native typically offers better performance and immediate access to new platform features, while cross-platform reduces development time but may require platform-specific code for complex features.
- How do mobile apps handle working offline or with poor connectivity?
- Apps store data locally on the device using databases like SQLite or Realm, then sync changes when connectivity returns. Well-designed apps queue actions performed offline, show cached content immediately, and indicate sync status clearly. The implementation needs conflict resolution logic for when local and server data diverge, and must handle partial syncs when connections drop mid-transfer.
- Why do iOS and Android versions of the same app often launch at different times?
- The platforms use different programming languages, UI frameworks, and design patterns, so features must be implemented twice. Apple's App Store review process typically takes one to three days and can reject apps for guideline violations, while Google Play reviews are usually faster but less predictable. Bug fixes on one platform don't automatically apply to the other, creating staggered release schedules.
- What determines whether an app needs to request permissions, and when do those requests appear?
- Both platforms require explicit user permission for sensitive capabilities like camera access, location tracking, contacts, or push notifications. Permissions should be requested contextually—when the user attempts an action requiring that capability—rather than all at once at launch. The app must function gracefully when permissions are denied, either by disabling specific features or explaining why the capability matters.
- How does app size affect performance and distribution?
- Large apps take longer to download, consume device storage, and may prevent downloads over cellular connections depending on size thresholds. iOS uses app thinning to deliver only assets needed for specific devices, while Android uses app bundles. Size impacts update adoption—users on limited data plans often defer large updates. Keeping apps under 150MB allows cellular downloads without WiFi on most configurations.
- What happens to an app when the operating system updates?
- OS updates can deprecate APIs the app relies on, change system behaviour, or introduce new screen sizes and hardware capabilities. Apps built against older SDK versions usually continue working through compatibility layers, but may look outdated or lose access to new features. Regular maintenance updates the app to use current APIs, tests against beta OS releases, and adapts to new interface guidelines.