Xamarin and Flutter are two popular cross-platform mobile app development frameworks. A lot of articles out there target developers and focus on the tools and support for Flutter and Xamarin. Those are incredibly important factors to consider during mobile app platform selection, but it’s also crucial to consider the application experience for end-users.
So, are there differences in the user experience for Flutter apps and apps built with Xamarin Forms? We wanted to know, and a few of our key findings are detailed in this article.
How to Test the User Experience for Flutter and Xamarin
To get started, we needed to write a basic application in both Flutter and Xamarin Forms. We went with a weather application because it is a realistic application utilizing a variety of common features and functionality. For example, the app leverages:
- API calls
- A local database
- User location and associated permissions
- Custom graphics for map icons
All of these features could be built analogously with both Flutter and Xamarin Forms. You can find the code for each of these projects here:
Two primary factors that affect end users’ experience with a mobile app are the application size and the launch speed. These two criteria also provide concrete, precise data points to compare results between Flutter and Xamarin.
The Importance of Mobile Application Size
Have you ever gotten a notification that your device does not have enough space to download an app? Have you ever gotten a warning encouraging you to download a large app over wi-fi instead of your mobile data plan? App size is often overlooked because people don’t consider the constraints of a limited data plan or a device with limited storage. In an analysis of how an application’s size affects “conversions” (aka, downloads), Google’s Sam Tolomei explained:
We found that the download completion rate of an app with an [Android application package] size of around 10MB will be ~30% higher than an app with an APK size of 100MB.
In short, you can reach more users and enable the app to be installed on more devices if you can reduce the size of your mobile app.
Speed Matters for Mobile Apps
Once users install an app, first impressions matter. Launch speed is the first experience your users have with your digital product. If it is slow, erratic, incomplete or confusing, then you are starting out on the wrong foot. And users’ perception of your mobile app has real consequences for user adoption and your bottom line:
- 86% of users uninstall an app after just one use due to poor performance, according to AppDynamics.
Similarly, users’ expectations for load time are changing based on ever-faster digital experiences across platforms and devices. For example, the probability of users “bouncing” (leaving a page before interacting with it in any way) goes up 90% if content takes a mere 5 seconds to load. Your consumers will bring that same pattern of behavior to their mobile app usage.
Application Size Comparison: Xamarin vs. Flutter
For Android, the size comparison used the Android application package (APK) size was used. The apps were built and installed in release configuration for all builds used in this comparison.
But these two application sizes are remarkably similar despite being built using completely different frameworks.
Android Mobile App Launch Time: Xamarin vs. Flutter
Logcat for Android displays a launch time calculation for each process launched starting in version 4.4 and up. The launch times gathered were for the release build of the application. The test device was a Pixel 2 with Android 11 installed. The app was uninstalled and launched three times with the recorded results averaged below.
iOS Mobile App Launch Time: Xamarin vs. Flutter
The launch time for iOS is based on two metrics: and post-main launch time. After these measurements are gathered, they are added together to determine the application’s total launch time. Measuring the iOS application launch time consisted of running the app in release mode and using the Instruments tool provided by Xcode to profile the launch time.
So, the numbers below reflect the average times for “cold” launches (the first time an app is launched) in order to compare as closely as possible to the Android results.
iOS Cold Launch Times
All the launch times look very similar for this mobile app with the exception of Android for Xamarin, which is a clear outlier. This article isn’t going to dive into exactly why the Xamarin Android app is taking such a long time to launch, but one solution to improve this metric would be to leverage startup tracing, which was not used for this app build.
Want Help With Mobile App Platform Selection? Contact Vervint.
The key to any successful mobile app development project is to know what matters most to your users and to understand what your capabilities are for supporting a mobile application before, during and after launch. At Vervint, we can help you. Contact us today to get started with your mobile app!