Depende mucho de la especificidad del proyecto.
Diría que por ahora, Ionic es la solución más madura para el desarrollo híbrido, pero creo que React Native es una mejor solución en general.
Antes de elegir iónico, debe tomarse un tiempo para investigar qué es iónico. Ionic es una herramienta de construcción para crear aplicaciones (cordova), Angular para javascript y Sass para CSS. Si no conoce Angular, tendrá que aprenderlo. Si no conoce Sass, puede escribir CSS normal. Además de eso, incluye una biblioteca de componentes, que puede darle una apariencia de aplicación móvil. Realice su tutorial básico y revise rápidamente su lista de componentes en su documento para tener una mejor idea de para qué sirve iónico.
- Cómo contratar una empresa de desarrollo de aplicaciones móviles
- Cómo desarrollar mi propia aplicación móvil
- ¿Cuáles son las mejores plataformas / aplicaciones para crear anuncios de Facebook?
- ¿Cuál es el marco de código abierto utilizado por WhatsApp para construirlo?
- ¿Cuál es el mejor marco para crear aplicaciones móviles con HTML, CSS y JavaScript?
Además, además de eso, puede usar ngCordova – Cordova Plugins con AngularJS Magic para usar algunas de las funcionalidades de los teléfonos móviles que van más allá de la funcionalidad básica del navegador (cámara de acceso, etc.).
Si el equipo del proyecto solo tiene experiencia en desarrollo web, iónico parece sentir todas sus necesidades y quiere evitar el código nativo a toda costa, iónico es el camino a seguir. Como beneficio adicional, iónico utiliza angular, lo que hace que use una estructura MVC (Model View Controller) para su proyecto, que escalará bien a medida que su aplicación crezca.
Si lo está aprendiendo a medida que avanza, asegúrese de aprender correctamente cómo usar un controlador, una fábrica (servicio, proveedor), directivas, rutas (ngRouter) y vistas. En cuanto a los componentes iónicos, como ionicModal, definitivamente los aprenderá a medida que los necesite, pero es una buena idea saber que existen.
Si cree que quiere hacer su desarrollo web típico y simplemente exportarlo a una aplicación móvil, puede usar directamente cordova (no lo recomendaría a menos que sea un desarrollador web experimentado, ya que su base de código necesitará escalar) así como tu aplicación crece)
Si su equipo ya usa Reaccionar, o si tiene algunos desarrolladores nativos en su equipo, o si su equipo está dispuesto a aprender nativo si es necesario, ellos van a reaccionar nativo. Mientras que ionic le da acceso a una vista web, react native le permite representar vistas nativas y ejecutar javascript en otro hilo.
La gran ventaja es el rendimiento.
La gran desventaja es que su código no será puro código web (HTML + CSS + JS). En su lugar, utilizará componentes de reacción, su estilo estará en flex (básicamente flex-box), y su javascript probablemente terminará dentro de sus componentes. Eso no es necesariamente algo malo, pero puede conducir fácilmente a un desastre de código. La mayoría de las veces usará componentes nativos que ya están implementados en react-native, o simplemente componentes javascript simples. De vez en cuando necesitará un componente nativo que no esté disponible. Eso puede requerir un poco de codificación nativa, pero la comunidad suele ser realmente activa y útil, por lo que lo más probable es que encuentre respuestas a cualquier pregunta que pueda tener.
Si es la primera vez que escribe React, sugeriría crear Componentes de contenedor y leer un poco sobre cómo la programación con componentes difiere de MVC.