¿Cómo se compara el desarrollo estándar de iOS con el uso de React Native?

Muchas cosas son mucho más dolorosas. Muchas cosas son más fáciles. Cosas que vienen a la mente:

  • Las vistas son mucho más difíciles de diseñar y actualizar según el estado. En iOS nativo, usa AutoLayout para decirle al motor de visualización cómo colocar las cosas en la pantalla. Actualizar estas restricciones y crearlas / eliminarlas es un problema enorme, especialmente cuando tiene diseños complicados que se actualizan todo el tiempo durante el tiempo de ejecución. Las vistas tampoco son declarativas como en React Native, sino imperativas. Las vistas en React Native se presentan con Flexbox, que es mucho más estándar. En React Native, las vistas son una función del estado y los accesorios que los hacen completamente deterministas. En iOS nativo, debe sincronizar manualmente la interfaz de usuario con el estado o usar ayudantes como ReactiveCocoa o RxSwift.
  • La administración de la memoria en el código nativo es más difícil, debe realizar un seguimiento de los ciclos de retención, etc. Si comienza a usar C o C ++, debe administrar su memoria / recursos manualmente o usar ayudantes como punteros inteligentes y RAII.
  • Es mucho más fácil construir ciertas cosas en iOS nativo, las cosas que vienen a la mente incluyen cualquier cosa que implique un uso profundo de AVFoundation, CoreBluetooth, Accelerate, CoreLocation y otros Frameworks especializados.
  • Es mucho más fácil depurar vistas en React Native, las actualizaciones en tiempo real de la vista a medida que edita el código lo hacen muy fácil.
  • Tienes un control mucho más granular sobre cosas de bajo nivel como las redes en iOS nativo. En React Native, tiene API de alto nivel como fetch, XMLHttpRequest y WebSocket.
  • Puede utilizar gran parte del ecosistema React con React Native, desde Redux para administrar el estado, hasta GraphQL y / o Relay, hasta ayudantes como recomponer y volver a seleccionar.
  • Muchas de las bibliotecas npm existentes funcionan de forma inmediata con React Native, como superagent y http://socket.io
  • Para aplicaciones especializadas, el ecosistema Swift / Objective-C es mucho más grande, también es mucho más fácil conectar una biblioteca C ++ a Swift u Objective-C que JavaScript (a través del puente React)

El ecosistema React Native está creciendo todos los días; sin embargo, siempre habrá cosas que no puede resolver y es por eso que puedes conectar el código nativo a React Native y viceversa.