Mobile App Developer
Flutter and React Native questions
166 questions on Flutter and React Native for mobile app developers, easiest first.
Easy 49
- StatelessWidget or StatefulWidgeteasy
- Flutter hot reload vs restarteasy
- Why list items need keyseasy
- Dart null-aware operatorseasy
- Calling setCount twiceeasy
- Dart final versus consteasy
- What a BuildContext iseasy
- Reading the screen widtheasy
- Expanded inside a Roweasy
- ListView.builder for a long feedeasy
- Role of pubspec.yamleasy
- Future or Streameasy
- The Dart cascade operatoreasy
- Validating a Flutter formeasy
- Cleaning up a TextEditingControllereasy
- Animating a size change simplyeasy
- Hero animation between screenseasy
- Flutter build for Google Playeasy
- Testing on a real deviceeasy
- What flutter doctor reportseasy
- Text outside a Text componenteasy
- Default flexDirection in React Nativeeasy
- What flex: 1 doeseasy
- Why React Native uses Hermeseasy
- What Metro doeseasy
- What EAS Build is foreasy
- Platform-specific component fileseasy
- Using Platform.selecteasy
- Content under the notcheasy
- Choosing a touch componenteasy
- Saving an object in AsyncStorageeasy
- iOS build fails after adding a libraryeasy
- Detecting app moving to backgroundeasy
- End-to-end tests for a React Native appeasy
- TypeScript in new React Native appseasy
- Remote image does not appeareasy
- How Flutter and React Native draw UIeasy
- Picking a framework for a React teameasy
- Generating JSON code in Darteasy
- Integer division in Darteasy
- String interpolation with an expressioneasy
- Required named parameterseasy
- Material 3 theming from one coloureasy
- Adapting to available widtheasy
- Platform-looking switcheseasy
- Speeding up mobile CI buildseasy
- Static checks for a Flutter codebaseeasy
- Measuring test coverage in Fluttereasy
- Expo Go and custom native codeeasy
Medium 69
- React Native New Architecturemedium
- const constructors in Fluttermedium
- setState called after disposemedium
- FutureBuilder refetching on rebuildmedium
- Listener without effect cleanupmedium
- Timer counter stuck at onemedium
- Reading a late variable too earlymedium
- Getting a result back from a screenmedium
- Yellow and black overflow stripesmedium
- ListView inside a Columnmedium
- Caret version range in pubspecmedium
- Should an app commit pubspec.lockmedium
- Loading data in initStatemedium
- How isolates share datamedium
- Adding a method to Stringmedium
- Returning two values with a recordmedium
- Reusing behaviour with a mixinmedium
- Factory constructor for a singletonmedium
- context.watch or context.readmedium
- ref.watch versus ref.read in Riverpodmedium
- Bloc or Cubitmedium
- Calling native code from Fluttermedium
- What Impeller changesmedium
- Dev, staging and prod buildsmedium
- Passing config with dart-definemedium
- What a golden test checksmedium
- Taps ignored on empty spacemedium
- What expo prebuild doesmedium
- Limits of over-the-air updatesmedium
- Keyboard covers the inputmedium
- navigate versus push in a stackmedium
- Passing a callback as a route parammedium
- Refreshing when a screen regains focusmedium
- Mapping URLs to screensmedium
- What Fabric ismedium
- Why use react-native-gesture-handlermedium
- Why teams adopt MMKVmedium
- Remote images flicker on scrollmedium
- console.log in production buildsmedium
- What autolinking doesmedium
- Handling the Android back buttonmedium
- Layout ignores device rotationmedium
- Requesting the right image sizemedium
- Large text breaks the layoutmedium
- Querying in React Native Testing Librarymedium
- Native module undefined in Jestmedium
- Debugging a modern React Native appmedium
- Sharing screens with the webmedium
- What Kotlin Multiplatform sharesmedium
- Adding Flutter to an existing appmedium
- React Native in a native appmedium
- How Dart is compiled in Fluttermedium
- Running two API calls togethermedium
- What an async* function returnsmedium
- Closing a StreamControllermedium
- Updating an immutable state classmedium
- Using BuildContext after an awaitmedium
- Protecting routes with go_routermedium
- Collapsing header plus a listmedium
- Localizing a Flutter appmedium
- Labelling a custom-painted chartmedium
- App lifecycle in Fluttermedium
- Shrinking a React Native Android appmedium
- EXPO_PUBLIC variables and secretsmedium
- Unreadable JS stack traces in crashesmedium
- Expo push token or FCM tokenmedium
- Faking a repository in a Dart testmedium
- setState called during buildmedium
- Effect runs on every rendermedium
Hard 48
- Jank when parsing a big JSONhard
- Swapped Flutter tiles keep colorshard
- Dart microtask and event orderhard
- Animation stutters while JS is busyhard
- Memoized rows still re-renderhard
- Widget, element and render treeshard
- Listening to a stream twicehard
- Sealed classes and exhaustive switchhard
- Overriding == without hashCodehard
- When InheritedWidget dependents rebuildhard
- AnimationController and vsynchard
- Why teams use Pigeonhard
- Calling a C library from Darthard
- Reading the performance overlayhard
- A spinner repaints the whole screenhard
- Fading a widget cheaplyhard
- shrinkWrap lists inside a scroll viewhard
- Obfuscating a Flutter releasehard
- pumpAndSettle times outhard
- Jumping to row 800 in a FlatListhard
- Tuning FlatList windowSizehard
- State leaking in FlashList rowshard
- OTA update crashes older installshard
- Turbo Modules and Codegenhard
- What JSI enableshard
- Bridgeless mode in React Nativehard
- Why Reanimated stays smoothhard
- Reading a shared value during renderhard
- Fast Refresh loses statehard
- Search results from an old queryhard
- Selected row does not highlighthard
- canOpenURL returns false on iOShard
- Old library on the New Architecturehard
- Flutter web renderershard
- Plugin call fails in a background isolatehard
- List<dynamic> is not a List<String>hard
- dynamic versus Object?hard
- Flutter's layout rulehard
- Container ignores its widthhard
- Photo grid uses too much memoryhard
- Blocking back with unsaved changeshard
- Heavy work during a screen transitionhard
- What an error boundary does not catchhard
- Reading the React Native perf monitorhard
- Fixed-height rows in a Flutter listhard
- Resetting a form when the user changeshard
- Turning a callback API into a Futurehard
- Metro cannot find a shared packagehard