¿Cuáles son las ventajas y desventajas de usar Apache Cordova (Phonegap) para crear su aplicación iOS?

Nunca he hecho un desarrollo serio de iOS, pero he creado una aplicación PhoneGap que está en la tienda de aplicaciones de iOS y por un corto tiempo estuve en la tienda de Google Play (la retiramos porque algunos dispositivos Android no mostraban nuestra aplicación correctamente. para probar muchos dispositivos Android).

Me considero muy versado en el desarrollo web y me entusiasmaron las características que PhoneGap aporta a las aplicaciones web. Ir a la ruta de la aplicación web HTML5 parecía la ruta más sensata.

Pros

  • No tiene que aprender ningún idioma nuevo si ya es un desarrollador web decente.
  • Es muy rápido crear prototipos
  • Aunque no terminamos usándolo, jQuery mobile es bastante limpio y lo hace aún más rápido.
  • Muchas opciones de biblioteca para casi todo lo que puedas desear
  • Es genial y divertido
  • Si así lo desea, puede omitir la tienda de aplicaciones al alojar los archivos en un servidor y utilizar el caché de la aplicación para acelerar las cosas. Cambiar su aplicación es solo cambiar una página web y su archivo de manifiesto de caché
  • Administrar imágenes para múltiples dispositivos es mucho más fácil con CSS y consultas de medios que para un proyecto de xcode de iOS y un proyecto de Android con sus ldpi, hdpi, xdpi y cualquier dpi.
  • Es más fácil crear gráficos vectoriales para diseñar especificaciones
  • Demonios, es más fácil hacer que las cosas sean exactamente como el diseño (excepto si te importa la compatibilidad entre navegadores)

Contras

  • Hay muchos navegadores móviles (el estado de los navegadores es peor que nunca en términos de la cantidad de basura diferentes que tenemos que soportar; solía ser, es decir, pero adivina cuántas personas hay en Android 2). X)
  • Existen muchos dispositivos móviles con hardware, tamaños de pantalla y velocidad de red variables.
  • Algunas funciones a las que está acostumbrado a usar no están disponibles para todos los dispositivos (posición: estática, por ejemplo) y dado que es probable que sean dispositivos defectuosos, usar un shim de JavaScript (como iScroll) está fuera de discusión si le importa el rendimiento
  • Parece que hay algunos problemas de versión con el complemento de Facebook Connect para PhoneGap (Córdoba) y las últimas versiones de PhoneGap solo en iOS: para que Facebook Connect y PhoneGap funcionen, tuve que usar una versión anterior de PhoneGap
  • La documentación para PhoneGap en sí es bastante decente, pero aún es nueva, por lo que no mucha gente tiene información confiable sobre las versiones actuales (al menos este fue el caso hace 3-4 meses)
  • Como tenía que usar una versión anterior de PhoneGap, descubrí que algunas de sus funciones de la API causarían errores de JavaScript. Tuve que pasar por alto el azúcar que proporcionan y llamar a PhoneGap.exec directamente en su com.phonegap.whateverFunctionality – Fue feo, pero funcionó
  • Hay complicaciones al vincular a otras aplicaciones como Google Maps
  • Descubrí que guardar contactos no funcionaba en todas las versiones de iOS
  • jQuery Mobile + Backbone es más doloroso de lo que crees
  • Obtener transiciones neato puede ser un dolor
  • Hay menos instalaciones en JavaScript para la modularización de aplicaciones a gran escala que Objective-C o Java
  • Pruebas apestadas: ya no tanto http://labs.adobe.com/technologi…

Siento que los contras superaron a los profesionales al final. Sin embargo, armados con este conocimiento, no diseñaríamos nuestra aplicación móvil de la misma manera. Por ejemplo, queríamos una experiencia similar a la nativa con una navegación de encabezado y pie de página posicionada estáticamente. Si la compatibilidad y el rendimiento entre navegadores son una preocupación, no desea hacer esto. También evitaría las esquinas muy redondeadas. Android 2.x no funciona tan bien con él.

Si su aplicación es simple, la recomiendo. Realmente disfruté el proceso y vi mi aplicación web como una aplicación instalada. Pero, solo sé que es más problema de lo que parece ser.

Todas las respuestas proporcionaron los pros y los contras ya en detalles, así que solo agregaría un par de puntos.

  • PhoneGap / Cordova es bueno para prototipos o aplicaciones comerciales internas que son complementos para el negocio y no forman parte del negocio principal. Si la aplicación es su negocio principal, entonces será mejor que sea nativo, ya que no hay comparación con la experiencia y el rendimiento nativos.
  • Cordova también es bueno si su equipo proviene de antecedentes de desarrollo web y las habilidades básicas son html / css. De esta manera, el desarrollador web puede construir las pantallas, sin preocuparse por el trabajo nativo de la aplicación.
  • Cordova también es bueno si la funcionalidad de su aplicación se puede lograr utilizando funciones listas para usar. En cualquier momento, necesita una función personalizada que no esté disponible en PhoneGap, se requieren diferentes esfuerzos y experiencia.
  • Puedes hacer todo con PhoneGap / Cordova que puedes hacer en Native. Si no hay una funcionalidad lista para usar, o algún complemento no funciona según sus necesidades, siempre puede crear el suyo propio o actualizar el existente, como su código abierto. Sin embargo, escribir plugins o actualizaciones no es para todos. En uno de nuestros proyectos, el mapa no se comportaba como se requería, por lo que tuvimos que escribir nuestro propio complemento para este propósito. Realmente obtuvimos el proyecto por la misma razón, y el desarrollador anterior se dio por vencido por la misma razón.

Espero que esto ayude.

Pros y contras de Apache Cardova / PhoneGap:

Pros :

Dado que el front-end de la aplicación está construido en JavaScript, causa una serie de limitaciones.
Procesamiento de datos: los idiomas nativos son mucho más rápidos que JavaScript para el procesamiento de datos en el dispositivo.
Procesamiento en segundo plano: una gran cantidad de aplicaciones se basan en subprocesos en segundo plano para proporcionar una experiencia de usuario fluida: calcular las posiciones de GPS en segundo plano, por ejemplo. Las API de PhoneGap se crean utilizando JavaScript que no es multiproceso y, por lo tanto, no admite el procesamiento en segundo plano.
Acceda a la funcionalidad nativa avanzada: varias API nativas aún no son compatibles con las API de PhoneGap.
Lógica empresarial compleja: varias aplicaciones, como las aplicaciones empresariales, son bastante complejas. En este escenario, es simplemente mejor tener una cierta cantidad de código nativo.
Gráficos avanzados: las aplicaciones que utilizan gráficos avanzados a los que solo se puede acceder mediante bibliotecas de terceros se realizan mejor de forma nativa.

Contras:

PhoneGap es una excelente solución en una serie de situaciones:
Múltiples plataformas: dado que el front-end de la aplicación se construye utilizando tecnologías web, se puede implementar una aplicación PhoneGap con exactamente el mismo código fuente en diferentes plataformas.
Acceda a la funcionalidad nativa básica: si la aplicación requiere un acceso mínimo a las API nativas, como la cámara, la geolocalización y los contactos, PhoneGap permite el acceso a estas API con solo unas pocas líneas de código JavaScript.
Uso sin conexión: aunque la aplicación se creó utilizando tecnologías web, aún puede proporcionar funcionalidad sin conexión y tiene acceso a la memoria caché local del navegador.

Como programador, tendrá que hacerse algunas preguntas antes de elegir la dirección correcta para su aplicación.

1. ¿Estás construyendo un POC rápido?
2. ¿Qué tan personalizada es la interfaz de usuario?
3. ¿Cuánto esperas del rendimiento de la aplicación?
4. ¿Cuál es el plazo de entrega que estás viendo?
5. ¿Alguna característica de hardware que pueda necesitar acceso nativo?

Si ahora está poniendo recursos en el avance de aplicaciones web, Cordova es una forma increíble de aplicaciones móviles. En cualquier caso, en el caso de que esté organizando recreaciones gráficamente extremas o en curso, los desarrolladores de Apache Cordova demostrarán una mala decisión. Córdoba es mucho más lenta que local para tales empresas.

El modelo de Cordova de una aplicación web que se ejecuta en un WebView que utiliza complementos para acceder a las API nativas también es propenso a la fragmentación del navegador, ya que los dispositivos más antiguos ya no actualizan los WebView incorporados y los diferentes dispositivos tienen diferentes peculiaridades.

Pros:

  • Muchas opciones de biblioteca para casi todo lo que puedas desear
  • Es genial y divertido
  • Es más fácil crear gráficos vectoriales para diseñar especificaciones
  • Demonios, es más fácil hacer que las cosas sean exactamente como el diseño (excepto si te importa la compatibilidad entre navegadores)
  • Las aplicaciones que utilizan gráficos avanzados a los que solo se puede acceder mediante bibliotecas de terceros se realizan mejor de forma nativa.

Contras:

  • Hay complicaciones al vincular a otras aplicaciones como Google Maps
  • Descubrí que guardar contactos no funcionaba en todas las versiones de iOS
  • jQuery Mobile + Backbone es más doloroso de lo que crees
  • Obtener transiciones neato puede ser un dolor
  • Aunque la aplicación se creó utilizando tecnologías web, aún puede proporcionar funcionalidad fuera de línea y tiene acceso a la memoria caché local del navegador.

He escrito una aplicación ios, bastante simple pero buena como proyecto inicial. Fue la primera aplicación que escribí. Luego comencé a escribir una aplicación usando openUI5 y cordova (aplicación híbrida).

He escrito mis experiencias con ios por aquí Preguntas estratégicas y lecciones aprendidas con el primer proyecto de desarrollo de aplicaciones (en ios).
Todavía no he publicado mi aplicación híbrida, pero definí un alcance técnico claro para ella ITMeetsAPO (título provisional): una aplicación independiente de la plataforma que se utilizará en un contexto privado y se construirá con software empresarial. Si lees este blog, verás por qué elegí para mi segunda aplicación un lenguaje de programación independiente de plataforma + framework. Incluso lamento haber escrito el temporizador de forma nativa.

Mi mensaje principal es: si su aplicación no es tan compleja, no tiene un rendimiento crítico, no utiliza mucha interacción del dispositivo … opte por una implementación independiente de la plataforma. Si es así, prográmelo de forma nativa.

El XDK de Intel (nee appMobi) fue mi primera opción para el desarrollo móvil basado en HTML 5, pero ahora estoy mirando a Cordova. XDK es una tecnología prometedora (que utiliza Cordova bajo el capó) que puede hacer cosas impresionantes en este momento, pero también tiene algunos inconvenientes: es inmadura y (aparentemente) en desarrollo pesado, lo que significa que tiene errores, y el soporte y la documentación son ideas posteriores . Y, alguien publicó recientemente en sus foros que sus Términos de servicio pueden no ser atractivos para los desarrolladores que necesitan respetar la confidencialidad de los clientes. Realmente no he investigado ese aspecto todavía, pero, si es cierto, podría ser un factor decisivo para mí. Finalmente, toda la compilación de XKD se realiza en la nube, en los servidores de Intel. No es tan bueno si su conexión o su servidor están caídos (su servidor ha sido inaccesible varias veces en las últimas semanas). Aprecio que XDK realmente simplifique los procesos de desarrollo, prueba y construcción. Queda por ver si los inconvenientes superarán esa conveniencia.

Si a partir de ahora pone recursos en la mejora de aplicaciones web, Cordova es una forma fantástica para el desarrollo de aplicaciones móviles, por lo que es beneficioso contratar al desarrollador de PhoneGap. Sea como fuere, en caso de que esté organizando recreaciones gráficamente serias o constantes, Cordova demostraría una mala decisión. Córdoba es mucho más lenta que local para tales empresas. Córdoba también es una mala decisión si las partes deben presentarse en un “aspecto y sensación” local. Si bien puede tratar de calentarlo, no estará impecable y será perceptiblemente apagado para los clientes. Esto no es un problema para algunas aplicaciones que describen sus propias interfaces particulares de todos modos, sin embargo, es un pensamiento claro si esto es crítico.

Aquí hay algunos pros y contras:

Pros

  • Montones de alternativas de biblioteca para básicamente todo lo que puedas necesitar
  • Es realmente genial y divertido.
  • En caso de que lo necesite, puede eludir la tienda de aplicaciones facilitando los documentos en un servidor y usar la reserva de aplicaciones para acelerar las cosas. Cambiar su aplicación está cambiando recientemente una página y su registro de show de reserva
  • Los idiomas nativos son mucho más rápidos que JavaScript para el procesamiento de datos en el dispositivo.
  • Las aplicaciones que utilizan ilustraciones impulsadas que deben llegar a utilizar bibliotecas externas se realizan mejor localmente.

Contras

  • Hay complejidades con la conexión a diferentes aplicaciones como Google Maps
  • Descubrí que los contactos ahorradores no se eliminaban en todas las formas de iOS
  • jQuery Mobile + Backbone es en mayor medida una irritación innegable de lo que sospecha
  • Obtener movimientos de neato puede ser una agonía
  • Hay menos oficinas en JavaScript para la modularización de aplicaciones a gran escala que Objective-C o Java

Hola,

He dejado PhoneGap debido a varios tipos de problemas. No lo encontré mucho mejor en comparación con otras plataformas disponibles en la actualidad.

Soy un desarrollador de aplicaciones iOS y he desarrollado más de 50 aplicaciones hasta hoy que se ejecutan con éxito en Apple Store.

He probado varias plataformas de desarrollo de aplicaciones móviles como Phonegap, Telerik, Configure.IT, Appcelerator, Cordova, etc. para desarrollar aplicaciones. Según mi experiencia, Configure.IT es el mejor de todos.

Esta herramienta proporciona codificación automática, función de vista previa de la aplicación, conexión API con un clic y muchas más funciones también. Visite el sitio web, obtendrá todas las ideas sobre esta herramienta. Está disponible de forma gratuita, que es lo mejor. 🙂

Hemos utilizado PhoneGap para varios proyectos y puedo decir que tiene muchas ventajas. Puede consultar la presentación aquí Cómo crear una aplicación para todas las plataformas usando Phonegap

Veltrod es una empresa global de consultoría de software especializada en el desarrollo de aplicaciones móviles para plataformas iPhone, Android, BB, Windows y Cross. Puede probar Veltrod para obtener soluciones rentables y de calidad enviando sus requisitos a [correo electrónico protegido]

Puede encontrar todas las respuestas relacionadas con Cordova aquí, su canal oficial de videos de capacitación de Cordova> https://www.youtube.com/channel/

Su sdk nativo requerido es el retroceso sobre xdk.

Si quieres hacer una aplicación muy básica con una interfaz de usuario muy promedio, entonces elige phogap.

Si desea una aplicación de clase que use una base de datos y otras cosas, no le recomendaré que la use porque una vez que subcontraté una aplicación phogap, pagué una buena cantidad a los desarrolladores, incluso entonces no pude obtener el estándar deseado que estaba buscando. .

algún tiempo los servicios web no funcionaron correctamente

y una cosa más, hay muchos problemas de reproducción, notará que la aplicación se ejecuta perfectamente en su teléfono, pero cuando mira otro dispositivo, parece patético y viceversa, este es el mayor dolor de cabeza.

Puedo suceder que la aplicación que está creando se ejecute correctamente en phonegap y phonegap puede ser muy buena para su aplicación y los resultados también dependen de las habilidades de programación individuales, pero para mí es la primera y la última experiencia, pero el futuro es impredecible.

More Interesting

¿Todavía necesita comprar un iPhone o iPad después del programa desarrollador iOS para construir y probar aplicaciones iOS?

Cómo saber cuál es mejor para mí, el desarrollo de aplicaciones Android o iOS

¿Cómo debería una aplicación iOS descargar dinámicamente recursos gráficos y de audio?

¿Cuál es la mejor manera de encontrar y contratar un buen desarrollador de iPhone en la ciudad de Nueva York?

Soy un desarrollador de Android. Me gustaría aprender el desarrollo de iOS. ¿Qué sitios web sugeriría y cuáles son los desafíos que enfrentaría mientras aprendo desarrollo objetivo basado en C, como estoy acostumbrado a Java? Además, ¿debo comenzar a aprender el objetivo C o rápido?

¿Cómo le enseñarías a un no programador a hacer una aplicación de "instagram para video"?

¿Cómo afectará la edad a nuestro programador iOS?

Cómo saber que estoy listo para conseguir un trabajo como desarrollador Jr. iOS

Soy un desarrollador de iOS de la India con 3 años de experiencia. ¿Cómo puedo conseguir un trabajo en el extranjero en regiones como el Reino Unido, Estados Unidos, Oriente Medio, etc.?

Xcode: ¿Los probadores internos en iTunes Connect necesitan una cuenta de miembro de desarrollador de Apple antes de que puedan probar la aplicación?

¿Qué tipo de equipo técnico necesitas para construir un juego de iPhone como Subway Surfers?

¿Cuál es una hoja de ruta prometedora para mí para aprender a construir aplicaciones y juegos de AR con el ARkit de Apple?

¿Por qué Apple no admite la facturación del operador como método de pago para compras de contenido (en la aplicación o de otra manera)?

¿Cuáles son algunas prácticas que deben considerarse o evitarse al implementar objetos de usuario?

¿Cuál es el primer paso para comenzar a desarrollar aplicaciones de iOS?