In a Flutter or React Native app, you need a feature that only exists in native SDKs, such as a payment terminal SDK. How would you integrate it well?
What the interviewer wants to hear
- Write a native module or plugin (platform channels, Pigeon, TurboModules/Expo modules)
- Design a small, typed, async API surface
- Handle threading and lifecycle on the native side
- Map native errors to clear errors in Dart/JS
- Test on both platforms and keep versions in sync
Model answer
I would wrap the native SDK in a plugin with a small, focused API. In Flutter I would use platform channels, ideally with Pigeon to generate type-safe code on both sides. In React Native I would write a TurboModule or an Expo module, which works with the New Architecture and gives typed bindings. The API should be async and high level, like startPayment(amount) returning a result, instead of exposing every SDK method. On the native side I handle threading, because many SDKs call back on background threads, and lifecycle events like the app going to background. Native errors are mapped to clear error codes in Dart or JavaScript. I keep the Android and iOS implementations behaving the same, write tests on both, and document which SDK versions are supported.
Can you answer it under time pressure?
Take a timed hard round and get scored on every answer.
More hard Mobile App Developer questions
- How would you design the mobile client for a chat app like WhatsApp?
- Your app has grown to 40 developers and one huge module. Builds are slow and teams block each other. How would you restructure it?
- A delivery app must track the rider location all day. How do you balance accuracy with battery life and OS limits?
- How would you measure and improve app performance for real users in production, not just on your test phone?
- Users keep running old versions of your app for months. How do you evolve the API and decide when to force an update?
- Your crash reports show rising out-of-memory crashes after a release. How do you find and fix the problem?
- How would you implement secure login with an OAuth or OpenID Connect provider in a mobile app?
- How would you migrate a large UIKit or Android View app to SwiftUI or Jetpack Compose without stopping feature work?
- Millions of users have data in your app local database. How do you change the schema safely?