11 manual tests before publishing your Flutter app

Run
flutter analyze
,flutter run -v
, and go through the output logs.
This helps you catch unresolved warnings in the code and also check if you’ve accidentally printed any sensitive information to the console.Run
flutter run --profile
.
Use Flutter DevTools to monitor your app’s performance. Watch out for screens with too many janks or overloaded raster threads. These might indicate issues like loading large images, performing heavy tasks on the main thread, or improperly optimized scrollable lists.Run
flutter run --release
.
This allows you to check whether the release build is smaller (IPA, AAB/APK) due to tree shaking, and whether startup time and overall performance improve. Most importantly, confirm that the app doesn't crash. Some bugs only appear in release mode, such as assertion errors, dynamic library loading issues on Android, viewport dimension problems, etc.Test on all available devices and OS versions, if any.
This helps detect compatibility issues you might miss when developing on a particular machine. Consider using Firebase Test Lab for more comprehensive testing.If your budget allows, get at least one Android device from each major Chinese OEM (e.g: Xiaomi, Huawei) and a Samsung Galaxy.
Impeller-related bugs (text rendering, images, scrolling) and even fatal crashes are commonly found on these devices. Although most of them get fixed quickly, there’s no guarantee that all edge cases are covered before they hit production.Integrate an analytics tool to catch crashes early.
Tools like Firebase Analytics or Sentry can help detect crashes that don’t appear in release mode, beta/closed testing (Android), or TestFlight (iOS), but only emerge in production.Test app behavior with OS-specific gestures and settings:
Examples include gesture-based navigation (edge-swipe back) on both Android and iOS, and scroll-to-top gestures for list views on iOS.Test foreground and background switching:
For example, use the app, then go to the home screen or recent apps menu and return. Ensure the app handles these transitions smoothly.Accessibility (a11y) testing:
Enable TalkBack (Android) and VoiceOver (iOS). Check whether the main features of the app are usable and whether screen readers correctly read all labels. Imagine using the app as someone with visual or auditory impairments.Test with Android Developer Options:
Enable "Don’t keep activities" and adjust "Transition animation scale" settings to test how your app handles system-level interruptions and UI animations.Test under poor network conditions:
On Android, use the emulator’s built-in network throttling. On iOS, use Network Link Conditioner available in Developer settings.
Happy testing!
Subscribe to my newsletter
Read articles from HuyNG directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

HuyNG
HuyNG
Hi there 👋 🔭 I’m currently working as Flutter Open Source Engineer 💙 Alongside my technical work, I have a passion for open-source projects and sharing knowledge through writing blog posts.