Performance Comparison: Xamarin.Forms, Xamarin.iOS, Xamarin.Android vs Android and iOS Native Applications

Testing approach: devices, apps, Xamarin tools, and measurements

Devices

  • Android OS version: 6.0
  • Central-processing unit: Octa-core 1.9 GHz Cortex-A53
  • RAM: 3GB
  • Display resolution: 1920×1080
  • iOS version: 10.3.3
  • Central-processing unit: Dual-core 1.84 GHz Twister
  • RAM: 2 GB
  • Display resolution: 1334×750

Applications

  • Basic “Hello World”
  • REST API
  • JSON Serialization/Deserialization
  • Photo Loading
  • SQL Database Insert and Get All

Xamarin tools

Measurements

Testing results

Hello World

REST API

JSON Serialization/Deserialization

Photo Loading & Saving (First load)

  1. Resolution — 858×569, Size — 868Kb
  2. Resolution — 2575×1709, Size — 8Mb
  3. Resolution — 4291×2848, Size — 28.9Mb

SQLite Database BulkInsert/GetAll

Conclusions

  1. iOS confirms expectations. The common opinion is that the more “native” the application is, the higher its performance. Xamarin.Forms which shares most of the code with its Android counterpart, tends to be the slowest one. We wouldn’t recommend using it for computationally heavy operations.
  2. You won’t gain much performance with native Android applications. The principle that works for iOS doesn’t apply to Android. We haven’t gathered enough evidence to state that native Android apps are faster than identical cross-platform applications. However, this difference might be more significant if you were to compare full-scale applications.
  3. Xamarin.iOS and Xamarin.Android remain the most balanced options. The ability to share all business logic across platforms and make platform-specific UI achieves the balance between budget and performance. Your single cross-platform team will be able to create most applications and maintain a decent performance level.
  4. Most likely, users won’t be able to tell the difference between native code and Xamarin.iOS or Xamarin.Android. Too many factors impact user experience. Low connection speed combined with the poor backend is the main source of annoyance among app users. Only a small portion of UX problems are related to installed apps directly. It’s worth mentioning that a human can perceive and recognize performance delays above 500 ms. We tested both simple and complicated operations and most of them stay within or below this benchmark.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store