-
Notifications
You must be signed in to change notification settings - Fork 1
Benchmark front mobile
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.
| 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.
| 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.
| 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.
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.