¿Cuál es la diferencia entre PhoneGap y las aplicaciones nativas?

Las mayores diferencias están en cómo las construyes.

  • PhoneGap y otras herramientas multiplataforma como esta utilizan Java Script / HTML / CSS y otras tecnologías web para crear una aplicación. PhoneGap es realmente solo un contenedor de vista web con ganchos adicionales para vincular las características nativas. (Ubicación central, cámara, etc.). Puede escribir complementos nativos que crucen el límite entre la aplicación web y el código nativo. PhoneGap le permite escribir la aplicación web una vez e implementarla en múltiples plataformas.
  • Una aplicación totalmente nativa está escrita en el idioma de elección de la plataforma. iOS sería Swift u Objective-C. Android sería Java. Windows Phone sería C #. De esta forma, obtienes acceso completo a todas las funciones nativas y aceleración de hardware. Su interfaz de usuario puede ser más compleja e interactiva.

El que elijas depende de dónde están tus prioridades.

Si es un banco y está preocupado por tener su aplicación bancaria en tantos dispositivos como sea posible por la menor cantidad de dinero, entonces PhoneGap (u otra solución multiplataforma) puede ser el camino a seguir para usted. Sería la opción más barata y permite un único punto de mantenimiento. (bueno, casi solo. Todavía tienes los ganchos nativos)

Si eres una aplicación de redes sociales que maneja una gran cantidad de contenido creado por el usuario y funciones de edición, es posible que desees ser nativo. El código nativo se ejecutará mucho más rápido que una solución multiplataforma. (¿Ha utilizado esas aplicaciones en las que toca un botón y finalmente recibe comentarios 3 segundos después? Es muy probable que sea una aplicación web) Obtendrá acceso directo en lugar de tener que pasar por un contenedor general. Lo único negativo es que tendrá que escribirlo para cada plataforma por separado con idiomas separados. (A menos que desee escribir la capa de datos en C y compartirla, pero eso está fuera del contexto de la pregunta)

En mi opinión, nativo es siempre el camino a seguir si puedes. Sus usuarios se lo agradecerán y usted puede sorprenderlos con divertidas características y una interfaz de usuario interactiva.

Las aplicaciones móviles se pueden dividir en tres grupos, y el que elija determinará qué lenguaje de programación necesitará aprender: aplicaciones nativas, aplicaciones híbridas y aplicaciones web.

Aplicaciones nativas
Con las aplicaciones nativas, utiliza el lenguaje de programación nativo para ese dispositivo, como Objective-C para dispositivos Apple o Java para dispositivos Android. Lo que codifica para un dispositivo no se puede usar en el otro dispositivo. Sin embargo, su fortaleza es que, con las mejores prácticas de código, obtendrá las aplicaciones más fluidas y rápidas que tienen la apariencia del entorno nativo. Trabajará con diferentes kits de desarrollo de software (SDK) para cada entorno (como Xcode para Apple y Eclipse para Android) para crear el producto final (como un archivo apk para Android). Las aplicaciones de Android se pueden construir en PC y Mac; Las aplicaciones de Apple necesitan una máquina Mac para compilar el producto final que se carga en la App Store. Apple aplica reglas estrictas para que las aplicaciones se adhieran para ingresar a la App Store; Google Play aplica algunas reglas para la forma o el contenido.

Aplicaciones híbridas
Las aplicaciones híbridas usan una combinación de HTML, CSS y Javascript para crear las aplicaciones, luego se empaquetan con un contenedor como PhoneGap, que vincula el código con el dispositivo. Con PhoneGap (u otro software), uno puede usar complementos para acceder a las diversas funciones del teléfono, como la cámara. Las aplicaciones híbridas son generalmente más lentas y no tan fluidas como su contraparte nativa. Aunque puede programar este tipo de aplicación en cualquier computadora, aún necesitará una Mac para compilar el producto iOS final, y aún necesitará el SDK para cada dispositivo para el que cree aplicaciones.

Encontrará sitios web dedicados a la creación de aplicaciones simplemente completando algunos campos, o software de arrastrar y soltar que le permite crear una variedad de aplicaciones diferentes. Pero si serán aceptados en la Apple Store es otro asunto; su naturaleza generalizada generalmente los descalifica.

Aplicaciones web
Las aplicaciones web son simplemente páginas web alojadas en servidores web normales, pero dimensionadas para caber cómodamente en teléfonos inteligentes. Están codificados con cualquier cantidad de tecnologías web, incluyendo PHP / MySQL y otras tecnologías de bases de datos, ya que son sitios web en el fondo. Los teléfonos inteligentes acceden a ellos de la misma manera que cualquier otro sitio web; pero con un poco de codificación adicional, puede proporcionar un icono personalizado que residirá en la pantalla de inicio del dispositivo si el usuario elige guardar su sitio en la pantalla de inicio.

Las aplicaciones web no usan SDK de dispositivos porque se cargan en servidores web como cualquier otro contenido del sitio web. Debido a que no usan SDK, no pueden acceder a las capacidades del dispositivo como la cámara, etc. Las aplicaciones web deberían funcionar bien en cualquier dispositivo, ya que se ven como se ve en cualquier otra página web: en un navegador en el dispositivo. Hoy en día, los diseñadores web están creando aplicaciones web a través de técnicas de diseño web receptivo, que utilizan consultas de medios y otras técnicas que permiten que el contenido se ajuste a una amplia gama de anchos de pantalla del dispositivo.

Como provenía de un fondo de diseño web, fue natural para mí elegir seguir la ruta de la aplicación Híbrida, lo que me permite crear una base de código HTML / CSS / Javascript con las habilidades que ya poseo e implementarla, con algunas variaciones, para Las plataformas Apple y Android.

Las aplicaciones PhoneGap (o más apropiadamente Cordova) se desarrollan en Javascript contra un conjunto de complementos que interactúan con la plataforma nativa. La misma aplicación puede ejecutarse de esa manera en iOS, Android y Windows.

Una aplicación nativa habla directamente con las API de la plataforma, y ​​generalmente se desarrolla en Swift (reemplazando Objective C) para iOS, o Kotlin (reemplazando Java) para Android, o C # para Windows.

PhoneGap y otras bibliotecas multiplataforma permiten al desarrollador crear un programa que funcione en más de una plataforma.

La limitación es que la plataforma necesita proporcionar una abstracción que funcione en todas las plataformas, es decir, algunas funcionalmente pueden perderse; es posible que pueda acceder a ella de todos modos, pero luego debe salir de la plataforma, es decir, crear código nativo.

Las principales diferencias, lo que sé:

  • Las aplicaciones Phonegap son más baratas y rápidas en desarrollo que las aplicaciones nativas
  • Las aplicaciones nativas son más productivas que las aplicaciones creadas con Phonegap