Skip to content

Benchmark front mobile

Mathieu Robert edited this page Nov 26, 2024 · 3 revisions

To facilitate project’s workflow and the application creation, we will use only React for web and mobile development. To do that, we have to choose between React Native with Expo or React with capacitor. Each technology enable us to create a mobile application.

Here the benchmarks of differences to compare both performance, development speed, flexibility, ecosystem, and more.

Performance

  React with Capacitor React Native with Expo
UI Rendering WebView-based, performance depends on the browser engine True native rendering, faster and smoother animations
Access to Native Features Good with Capacitor plugins but may require additional configurations Excellent with Expo's native APIs and community support
Startup Time Slower due to WebView initialization Faster since apps are compiled as native binaries
Resource Usage Higher CPU and memory usage for heavy apps due to WebView Optimized for native performance
Offline Support Relies on web cache and native storage Fully offline with native file storage and APIs

React Native with Expo delivers superior performance for fully native applications, while React with Capacitor excels in hybrid or PWA.

Development Speed

  React with Capacitor React Native with Expo
Setup Easy if we’re familiar with React Simplified with Expo CLI
Hot Reloading Supported Supported
Plugin Ecosystem Capacitor plugins available, may require native coding for advanced features Expo provides a vast set of prebuilt APIs with additional community plugins
Cross-Platform Consistency Consistent across web, iOS, and Android Consistent but optimized for mobile platforms

React Native with Expo wins in terms of development speed for mobile-first applications, but React with Capacitor is better if we need a unified web and mobile code base.

Deployment and Distribution

  React with Capacitor React Native with Expo
PWA Support Supported Not supported
App Stores (iOS/Android) Supported but may require manual configurations Supported with Expo tools
Web Deployment Supported Requires separate web adaptation

React with Capacitor provide web and mobile deployment, while React Native with Expo is more mobile first.

Conclusion and choice

To conclude this benchmark, we choose React with Capacitor instead of React Native with Expo for different reasons:

  • AREA project is not a mobile first application, it should be hybrid and easy to implement in both platforms
  • Some of members already used Capacitor for different project and want to continue with it
  • React Native with Expo is way better for mobile implementation, but we need to think about web app instead of mobile first

Finally, after created two Poc (Proof of concept), build Expo on mobile didn't work.

Clone this wiki locally