Pregunta Luchando entre nativo y phonegap, requisitos simples de la aplicación


Voy a hacer un nativo (significado; no en el navegador) aplicación móvil. Como soy desarrollador web, me cuesta decidir si debo probar Phonegap o simplemente crear una aplicación nativa en java u objetivo-c.

Los requisitos de la aplicación son simples. Ubicación de GPS / wifi, integración de Facebook y supongo que necesitaré una base de datos para manejar algunas de las relaciones de amigos de Facebook específicas de la aplicación. Al igual que las puntuaciones más altas en un juego, por ejemplo, cosas así.

Soy un desarrollador web, y aún no conozco ni Java ni Objective-c. Nunca antes había usado Phonegap, por lo que no sé si es capaz de cumplir mis requisitos.

Entonces mi pregunta es la siguiente; ¿Puedo usar Phonegap para mi aplicación, o necesito bucear en un nuevo idioma?


75
2017-12-28 06:34


origen


Respuestas:


Relacionado:

La versión más grande de este artículo también se puede encontrar AQUÍ, para ser transparente es mi blog personal.

Aplicaciones Híbridas vs Nativas

Aplicaciones híbridas:

Pro:

  • Un desarrollo más rápido, especialmente si eres un desarrollador web de larga data.
  • Se puede usar 1 idioma en cada plataforma disponible. Esto, por supuesto, requiere un contenedor de Phonegap. No necesita aprender Objective C, Java o C # para hacer ningún desarrollo. Solo necesita comprender los conceptos básicos de la implementación de Phonegap. Tendrá que jugar un poco con los idiomas mencionados anteriormente, pero no necesita comprenderlos.
  • Phonegap puede ofrecer algunas capacidades nativas, como la barra de pestañas nativa de iOS o la barra de pestañas nativa de Android, y mucho más.
  • Menores costos de presupuesto y una gran comunidad de seguidores y desarrolladores.
  • Una aplicación híbrida ofrece muchas de las ventajas de ambos enfoques acceso a las API de dispositivos más comunes y una amplia cobertura de dispositivos sin requerir habilidades especializadas, presupuestos más grandes y mayor tiempo de lanzamiento al mercado que son más típicos de aplicaciones completamente nativas.

Contras:

  • Causarás sangre después de un tiempo, literal y metafóricamente.
  • Los teléfonos móviles (incluso las tabletas de hoy en día) no son lo suficientemente rápidos como para ejecutar sin problemas una aplicación híbrida, las capacidades de JavaScript para dispositivos móviles son la mejor opción. La plataforma Android es una pesadilla, las transiciones de página no funcionan sin problemas, por no mencionar la falta de implementación de CSS / CSS3. Si crees que los nativos de Android 2.X y 4.X tienen diferencias, eche un vistazo a una implementación de JavaScript / CSS mala de Android 2.X. iOS tiene una mejor calidad, pero todavía tiene una implementación de CSS3 que carece de transiciones de página mucho mejores. Para hacer estas aplicaciones nativas cortas siempre tendrá una mejor experiencia de usuario y una sensación general.
  • Pasarás mucho más tiempo corrigiendo la aplicación que edificándola. Crear una aplicación para cada plataforma es un dolor en el cuello. Los navegadores en diferentes plataformas no admiten uniformemente todas las características y API HTML más recientes, lo que puede hacer que el desarrollo y las pruebas sean un desafío.
  • Si no tienes un buen diseñador, ni siquiera intentes construir una aplicación; las miradas son todo.
  • Si no sabes qué estás haciendo, hay buenas posibilidades de que tu aplicación no obtenga permiso para la tienda de aplicaciones Apple. Incluso Google Play Store prohibirá su aplicación si descubren un complemento PayPal Phonegap de terceros.

Aplicaciones nativas:

Pro:

  • Una aplicación móvil nativa puede producir la mejor experiencia de usuario, rápida y fluida, puede brindarle el mejor acceso a las funciones del dispositivo y puede descubrirse en las tiendas de aplicaciones.
  • Sin lugar a dudas, las aplicaciones nativas tienen acceso completo a la plataforma móvil subyacente. Las aplicaciones nativas suelen ser muy rápidas y pulidas, lo que las hace ideales para aplicaciones o juegos de alto rendimiento. Esto es más que suficiente.

Contras:

  • Presupuesto más grande, necesitará al menos una persona / s con conocimientos de Java y Objective C, incluso C # si desea una aplicación móvil de Windows. Sí, puedes aprenderlo tú mismo pero no vives bajo la ilusión de que lo harás en poco tiempo. Si nunca has hecho ningún desarrollo, elige Objective C (iOS sigue siendo una mejor plataforma). En otros casos, elija Java. Java tiene una sintaxis similar a otros idiomas disponibles, por lo que es fácil saltar de C # a Java y viceversa. El objetivo C es un mundo propio. Tiene una sintaxis bastante poco común.
  • Puede tomarle un período de tiempo más largo para desarrollar todos ellos y el tiempo es dinero. Esto depende de la complejidad de las aplicaciones.

En su caso, si tiene un buen desarrollo web / habilidades de diseño y / o tiene un buen diseñador, debe elegir una aplicación híbrida. Vaya nativo solo si esta aplicación va a ser compleja. Todo lo que quieras se puede hacer con una aplicación híbrida. Y encontrarás una gran comunidad de apoyo.

Aplicaciones híbridas

Lo que no mencioné anteriormente, debes ser especialmente cuidadoso aquí. Incluso si eres un desarrollador veterano, encontrarás muchos problemas que no puedes resolver. El desarrollo híbrido no debe confundirse con un desarrollo web básico.

Cada plataforma móvil tiene su propio conjunto de problemas, sin mencionar que los teléfonos móviles se comportan de manera diferente dependiendo de un dispositivo. Si es posible, siempre crea una aplicación que funcione en dispositivos más lentos porque la aplicación nativa funcionará con éxito en casi cualquier dispositivo.

Hay una última cosa, cuando se crean aplicaciones híbridas, el desarrollo de la aplicación le tomará entre un 30% y un 50% de su tiempo, el resto se dedica a la depuración y el aprendizaje específicos de la plataforma. Créanme, incluso después de varios años de desarrollo móvil a veces me enfrento a problemas que no puedo resolver solo o lo suficientemente rápido.

Así que tenga cuidado al elegir el marco móvil, elija 2-3 y pase varios días leyendo sobre ellos.

Campo de golf

Aquí hay algunos enlaces para ayudarlo a decidir:

Tutorial de PhoneGap + jQuery Mobile 1.4 - Este es un tutorial paso a paso para PhoneGap y la última versión de jQuery Mobile

Tutorial de PhoneGap + jQuery Mobile 1.4 - Versión de MacOS - Este es un tutorial paso a paso para la implementación de PhoneGap en MacOS. La parte jQuery Mobile está cubierta en un artículo anterior, no tiene sentido repetir cosas.

jQuery Mobile vs Sencha Touch - Comparación de jQuery Mobile Sencha Touch

jQuery Mobile vs Kendo UI - jQuery Mobile Kendo UI comparación

Los 7 frameworks móviles HTML5 más conocidos - El nombre lo dice todo

7 frameworks móviles HTML5 menos conocidos - El nombre lo dice todo


157
2017-12-28 12:59



si su aplicación no tiene efectos de animación y simplemente prefiero crear en un sitio web (Phonegap) cz en menor cantidad de tiempo, podemos iniciar en varios tipos de sistema operativo móvil. Si su aplicación contiene más efectos de IU y animación, entonces es mejor ir con nativos.

a pesar de que desarrollas en webview (Phonegap) necesitas aprender algunos pasos básicos en Android e iOS

Cómo funciona Phonegap en dispositivos 

Ios Las animaciones y la carga de vista en ios webview están varadas y bien, los efectos de animación pueden ser claramente observados

Androide
Tenemos que considerar la versión del dispositivo y la compañía del dispositivo para Android mientras ejecutamos el código html. Algunos dispositivos de alta configuración en Android ofrecen una visualización de la animación más clara y eficiente, pero algunos dispositivos (principalmente la versión anterior y algunos de la compañía) no pueden dar buenos efectos de animación. el efecto de reproducción varía de un dispositivo a otro en Android,


16
2017-12-28 06:44



En mi humilde opinión con Phonegap puedes desarrollar aplicaciones simples, nada más. La documentación no es suficiente y, como otros, han dicho que pasarán mucho más tiempo corrigiendo errores y buscando complementos que construyendo su aplicación. Me esforzaría por aprender Android o iOS o lo que sea, míralo como un inversión de tu tiempo. (Sí, mi comentario es un poco parcial).


7
2017-10-23 08:13



La última vez que investigué PhoneGap fue html, css y javascript. Entonces, puede sentirse como en casa. PhoneGap puede manejar la ubicación del GPS, ver este artículo de la documentación de PhoneGap. Si desea o no elegir el Objetivo C dependerá de la rapidez con la que elija nuevos idiomas, ya que se aparta un poco del desarrollo web.


3
2017-12-28 06:46



Depende totalmente de tus necesidades

Después de publicar mi primera aplicación varios meses (aplicación de conexión nativa de Android, basada en bases de datos y descanso), decidí reescribir mi aplicación usando phonegap (ya que quiero clonar la aplicación a iOS, así que en lugar de hacerlo en ObjC, ¿por qué no javascript? ?)

Cuando estaba en Android, me costó, un desarrollador de Java, 3 semanas para aprender y codificar todo desde cero. Golpeando mi cabeza contra la pared varias veces para saber cómo hacer la sincronización de ListAdapter con el Servicio de Restful de mi servidor, cómo tema la aplicación (bastante difícil en mi opinión, especialmente cuando se trata de efectos especiales como transparente, borde, ... ), y también, cómo estructurar su base de código de manera efectiva (si está familiarizado con Java, encontrará que todas las clases están muy unidas entre sí, ya que es sobre lo que la mayoría de los tutoriales escriben)

Cuando está en Phonegap, todo se hace en 1 semana. Css, html, con onsenui y angular haga que el desarrollo de la GUI sea similar a la asignación de un estudiante de 1er año y la temática es simplemente un pedazo de pastel. No necesito ejecutarlo en el dispositivo real, basta con usar el navegador durante el desarrollo, cambiar el código y actualizarlo. Angular proporciona un enlace bidireccional con el DOM, y esto crea una gran maravilla cuando se recopilan y muestran datos. Por ejemplo:

<ul ng-each="for sentence in sentences" >
   <li>{{ sentence.title }} </li>
</ul>

Cuando la variable sentencesse cambia (se recupera del servidor), el DOM también se cambia automáticamente. Sin embargo, javascript es solo javascript. Me encontré luchando muchas veces al depurar la aplicación, especialmente al hacer las funciones de MapReduce con PouchDB (gran error, tengo que volver a cordova-sqlite-plugin esta noche) y la mayoría de las veces, tengo que leer el registro para descubrir el problema (las herramientas de Chrome y Firebug no pueden alcanzar el punto de interrupción). Además, es difícil reestructurar su aplicación (javascript, nuevamente) así que si no organiza cuidadosamente su base de código en el primer signo, puede terminar con un desastre (y la depuración es un verdadero dolor, de nuevo). PhoneGap también se basa en la web, por lo que a veces, escuchará eso "porque en esta plataforma, no es compatible con bla bla bla" (por ejemplo, localStorage) y debes defenderte si no puedes encontrar un buen complemento.

Conclusión Excepto por la limitación del almacenamiento basado en la web, PhoneGap funciona bastante bien con la sencilla aplicación GUI basada en la base de datos (y la mayoría de las aplicaciones basadas en bases de datos actualmente tienen una GUI simple de todos modos). Si vas a desarrollar ese tipo de aplicación, entonces quédate con eso


3
2018-05-20 19:22



echa un vistazo usando iónico, respaldado por angular.js para compensar algunos de los contras mencionados en la respuesta aceptada. Tutorial para iniciar una aplicación de directorio de empleados: http://coenraets.org/blog/2014/02/sample-mobile-application-with-ionic-and-angularjs/


2
2018-03-11 13:57



@Gajotres escribió una gran respuesta, pero el rendimiento de la aplicación híbrida ha recorrido un largo camino desde 2012. Respondí una pregunta relacionada que cubre la diferencia entre el desarrollo de aplicaciones nativas e híbridas en 2017.

La moraleja de la historia es que el desarrollo de aplicaciones híbridas ha mejorado tremendamente en los últimos años, pero todavía no puede coincidir con el nativo para ciertos casos de uso.

Con herramientas como Ionic (lanzado por primera vez en 2013) y React Native (lanzado por primera vez en 2015) es más fácil que nunca crear aplicaciones híbridas con componentes nativos. Las aplicaciones híbridas ahora son más rápidas, menos problemáticas y pueden interactuar más profundamente con la interfaz de usuario nativa.

El umbral para el rendimiento de la aplicación híbrida es sustancialmente más alto que hace unos pocos años, pero todavía hay un punto en el que puede necesitar desarrollar su aplicación en un idioma nativo.

Respuesta Original:

Sí, el sentimiento general es que las aplicaciones híbridas son inferiores a Native   aplicaciones. Si bien esto puede ser frustrante para los desarrolladores más familiarizados con   tecnologías web, es por una buena razón:

  1. Incapacidad para interactuar con componentes nativos: Aunque complementos como cordova-plugin-statusbar existen, hay limitaciones   interactuando con y manipulando componentes nativos usando la web   tecnologías. Un gran (y frustrante) problema que he corrido personalmente   es la incapacidad de tener una entrada en la parte superior de su teclado como   el teclado se anima. Esto suena como un nonissue hasta que mires   en una aplicación donde esta es una característica esencial, como en una aplicación de chat   como Slack.
  2. Retraso de 300 ms: Aunque los navegadores modernos están empezando a fase esto   fuera,   la fracción de un segundo retraso presente en las aplicaciones híbridas hace que la aplicación   se siente lento y no nativo. Este problema se está convirtiendo en un factor menos importante   más usuarios adoptan soluciones como    FastClick.js y algo   marcos tales como Iónico eliminarlo   por defecto.
  3. Los enemigos tienen razón (más o menos): Si bien el desarrollo de aplicaciones híbridas ha recorrido un largo camino, todavía hay problemas técnicos menores y laggy   funciones que simplemente no están presentes en una aplicación nativa. Pantalla   las transiciones, el cambio de aplicación y la duración de la batería siguen siendo áreas comunes   para que aparezcan errores y es probable que lo haga por un tiempo, incluso si son   empezando a ser menos y menos notable.
  4. Hay algunas excelentes soluciones nativas: Con idiomas más nuevos como el de Apple Rápido cada vez es más fácil   código en un idioma nativo. Dicho esto, herramientas como Reaccionar   Nativo caer en un gris   área entre Nativo e Híbrido permitiendo a los desarrolladores codificar   tecnologías amigables como JavaScript pero compilar en código nativo.

La moraleja de la historia es que realmente depende de lo que es importante   su caso de uso específico. Las aplicaciones híbridas se han convertido en una opción viable y   ya no es un espectáculo secundario embarazoso. Por el contrario, todavía hay   aspectos menores de la interacción con el UX nativo que aún no están   posible excepto con una aplicación nativa.

En general, recomiendo mapear su proyecto y determinar si su   la aplicación necesita cualquiera de los beneficios de una aplicación nativa. Con herramientas tales como    Vista iónica aplicación es fácil armar un   maqueta básica de tu aplicación y prueba en un dispositivo real ya sea que   La aplicación híbrida funcionará para usted.


1
2018-05-09 22:09



También hay AppGyver Steroids que une PhoneGap y Native UI muy bien.

Con los esteroides puede agregar cosas como pestañas nativas, barra de navegación nativa, animaciones y transiciones nativas, ventanas nativas modales, panel / cajón nativo (menú lateral de Facebook), etc. a su aplicación PhoneGap. Básicamente, en cualquier lugar donde CSS + JS no lo corte, los esteroides alcanzan la capa nativa para realizar la acción.

Además, con los esteroides, puede (aunque no es necesario) utilizar una arquitectura de varias páginas (vistas múltiples en la web) en lugar de una sola. Con aplicaciones de una sola página, todo, como las transiciones, son solo soluciones provisionales de CSS, y como dijo Mani, incluso las tabletas y teléfonos modernos no son lo suficientemente rápidos como para hacerlos fluidos. Siempre es obvio cuando se trata de una aplicación de teléfono, especialmente cuando hay muchos procesos en marcha, o si se desplaza desde los procesos de JS (se soluciona en iOS 8).

Usar la arquitectura de varias páginas significa que obtienes un rendimiento 100% nativo (porque esas partes realmente son nativo). Y a diferencia de Phonegap, obtendrá un comportamiento de interfaz de usuario consistente y una depuración más sencilla (con una aplicación de una sola página, a menudo es difícil recrear un estado particular en su aplicación). La página múltiple hace que sea mucho más fácil desarrollar y mantener sus aplicaciones, ya que su código base se mantiene más limpio.

Verifique la demostración: http://youtu.be/oXWwDMdoTCk?t=20m17s


0
2017-08-01 10:22



También encuentro un buen artículo aquí http://www.comentum.com/phonegap-vs-native-app-development.html, compara estas dos formas en diferentes categorías.

El resumen es el siguiente:

  1. Diseño de interfaces (Mismo)
  2. Costo (Híbrido tiene ventaja)
  3. Cronología de desarrollo (Híbrido tiene ventaja)
  4. Experiencia de usuario y rendimiento  (Nativo tiene ventaja)
  5. Mantenibilidad  (Mismo)
  6. Sin limitaciones (Nativo tiene ventaja)
  7. Seguridad (Mismo)
  8. Soporte y recursos (Nativo tiene ventaja)
  9. Herramientas y Depuración (Nativo tiene ventaja)
  10. Plataforma independiente (Híbrido tiene ventaja)
  11. Popularidad  (Mismo)

0
2018-05-15 04:16



Una de las grandes opciones aquí es el desarrollo con Xamarin.

Aunque no ayuda a utilizar las habilidades de desarrollador web de OP, tiene muchas ventajas en comparación con PhoneGap y casi ningún inconveniente.

Xamarin vs PhoneGap Pros:

  • Marco maduro que proporciona acceso a la mayoría de los nativos (si no todos) características de los dispositivos móviles.
  • Aprende solo un idioma (C # para la mayoría de los desarrolladores) para todos los dispositivos móviles plataformas.
  • Tener un rendimiento de aplicaciones nativas en iOS / Windows Mobile (ya que la aplicación se compila en el código nativo) y muy cercano en Android (todavía compila en una APK nativa, pero tiene que tener un envoltorio delgado que traduzca la biblioteca de la clase .NET API en API de clases de Android en el tiempo de ejecución).
  • Mantenido por Microsoft que respalda la generosa calidad general de plataforma en sí y herramientas de desarrollo. Por ejemplo, usará Visual Studio y es probablemente el mejor IDE que existe y ahora tiene edición comunitaria gratuita con todas las características disponibles que necesitará para el desarrollo de Xamarin.

Xamarin vs PhoneGap Contras:

  • Necesita algunas inversiones de tiempo para desarrolladores web puros para cambiar a C # y la API de la biblioteca de clases Xamarin.

Por lo tanto, Xamarin es una opción muy sólida para el desarrollo multiplataforma en la actualidad.


0
2017-09-01 16:33