Lo primero que haremos será definir los tipos de APPs y en cuales son sus ventajas e incovenientes.
Nativas.
Estas son las que no llevan ningún tipo de framework. En estas APPs solo encontraremos código del lenguaje de programación del dispositivo. Objective C o Swift para IOS y Java para Android por ejemplo. Estas son solo compatibles con su sistema, si quieres la misma APP en las otras plataformas tendrás que hacer un nuevo desarrollo.
Puntos a favor: 100% del sistema operativo utilizable, sin preocupaciones de compatibilidad entre sistemas ni busqueda de plugins externos.
Puntos en contra: El tiempo de programación es mas extenso que en los otros tipos. Tienes que aprenderte los lenguajes de cada plataforma.
Generadas.
Estas también son llamadas falsas nativas. El desarrollo de las APPs se realiza en el lenguajes específicos para cada herramienta. Estas herramientas generan APPs con código nativo para los distintos dispositivos. APPs generadas con Xamarin o React Native serían de este tipo.
Puntos a favor: No tener
que conocer los lenguajes de cada plataforma.
Puntos en contra: No siempre el código entre ve
rsiones de las plataformas es el mismo, si se reutiliza bastante, pero aveces no todo. Solo tienes acceso a las funciones nativas que te permite el framework.
Híbridas.
Son las que utilizan un contenedor nativo para desplegar tu código y prestarle acceso a las caracteristicas les dispositivo lo mas neutralmente posible. Cordova o Phonegap estarían en este rango de aplicaciones ya que gestionan tu código WEB sobre una parte Nativa que te proporcionan o unos plugins externos.
Puntos a favor: El tiempo de elaboración y aprendizaje es el menor de todas. Solo HTML, CSS y JavaScript.
Puntos en contra: Solo tienes acceso a las funciones nativas que te permiten los plugin del framework, lo cual aveces es insuficiente.
Conclusión.
Dependiendo del objetivo de la aplicación es mejor utilizar un tipo u otro, de si queremos priorizar la velocidad en cuanto a prestaciones o de si utilizamos mas o menos funciones nativas.