Uso de Phonegap para el desarrollo de aplicaciones nativas [cerrado]

97

Recientemente me encontré con Phonegap . ¿Alguno de ustedes lo ha probado? Es una herramienta increíble que afirma que los desarrolladores pueden usar un marco basado en HTML 5 como Sencha touch y Jquery al mismo tiempo que tienen acceso a funciones nativas en el teléfono. Además, el código es portátil de Android a Iphone con algo de esfuerzo. Antes de sumergirme en él, quiero saber cuál es la experiencia del foro con Phonegap. ¿Cuáles son los puntos débiles? ¿Es realmente escalable para el desarrollo de aplicaciones a nivel empresarial?

SaKet
fuente

Respuestas:

95

He creado un par de aplicaciones con PhoneGap y, por lo que ofrece, es genial. Hay un par de notas rápidas que me gustaría señalar, que podrían ayudarlo.

Disable device-based features you're not using El acelerómetro y las funciones de geolocalización están activadas de forma predeterminada. Si no los está usando, los apagaría, ya que su aplicación se cargará más rápido (se inicializará) y funcionará con mayor fluidez.

onDeviceReady- Este es el método que se llama una vez que phonegap se ha cargado y está listo. $ (document) .ready o lo que sea a lo que esté acostumbrado, realmente no se aplica aquí, a menos que solo esté haciendo cosas de interfaz / HTML codificado. Si está interactuando con funciones de iPhone, como GeoLocation, deberá hacer todo después de que se haya llamado a onDeviceReady.

Pick a UI/library Hay un montón de opciones para la interfaz / bibliotecas, jquery-mobile, sencha touch, jqtouch, etc. Cada una ofrece un enfoque único y un conjunto de características. Investigue un poco y use uno, pero evite combinar. Puede leer sobre algunas opciones más, herramientas aquí: http://www.phonegap.com/tool (enlace actualizado)

Also, more on just mobile development in general, with PhoneGapSi está buscando crear aplicaciones que se distribuyan a través del mercado de Android y la tienda de aplicaciones de iPhone, leería sus listas exhaustivas para obtener pautas sobre cómo desarrollar su aplicación. Por ejemplo, en el enlace de herramientas anterior, hay una "herramienta / complemento" llamado Easy APNS , aunque es útil para Android, y técnicamente factible en el iPhone, viola el acuerdo de desarrollo, ya que establece que debe usar la notificación de Apple. red, etc. Esto es solo un ejemplo, pero leer sobre esas cosas te ahorrará muchos dolores de cabeza, si ese es tu objetivo final.

Con todo, es ideal para aplicaciones ligeras, especialmente si tiene experiencia en desarrollo web. LocalStorage, GeoLocation, etc. funciona muy bien. Espero que esto ayude un poco ... y me siento a hacer preguntas.

Edición adicional:

Realmente creo que todo se reduce a lo que quieres hacer y lo que sabes hacer. Matt señaló que desarrollar aplicaciones nativas para iOS es mejor, etc. Sí, si tienes el tiempo y el conocimiento para aprender eso, por supuesto, las nativas serán mejores. Pero PhoneGap está hecho para desarrolladores web que pueden tomar sus habilidades existentes y crear aplicaciones. Además, PhoneGap le permite crear aplicaciones rápidamente, para iOS, Android, Symbian, Palm, Blackberry. Con pequeños ajustes a su código base para cada uno.

TNC
fuente
2
Parece que los desarrolladores están divididos en Phonegap.
SaKet
8
Si al final del día, tiene tiempo y dinero para aprender los diferentes idiomas para crear aplicaciones nativas para Android e iOS, entonces hágalo :) Pero para la mayoría de nosotros, usar lo que sabemos para crear aplicaciones que se ejecutan realmente bien en varios dispositivos, es una obviedad.
TNC
easyapns es solo para notificaciones de iPhone (no para Android) y usa la red de notificaciones de Apple, no estoy seguro de dónde sacas la idea de que rompe el acuerdo de desarrollador.
Travelling_Monk
buena explicación .. Gracias :)
Mrunal
Un buen depurador es tu mejor amigo. Mira esto para depurar iOS de forma remota: stackoverflow.com/questions/7242997/…
JoshuaDavid
52

Aquí están las mejores guías de rendimiento que he leído para PhoneGap ... hay mucho de lo que tener cuidado para asegurarse de tener un rendimiento sólido y estable ... pero puede aprenderlo todo en una sola noche de lectura.

Aquí están las mejores pepitas:

Consejos de rendimiento de PhoneGap / Web móvil

Habilitación de nuevas funciones

Arquitectura

Arquitectura de su aplicación en Ext JS 4: http://www.sencha.com/learn/architecting-your-app-in-ext-js-4-part-2

ATSiem
fuente
1
Gran colección de documentación .. Realmente útil gracias :)
Mrunal
29

Antes de expresar mi opinión sobre Phonegap, necesito emitir un pequeño descargo de responsabilidad diciendo que de ninguna manera soy un desarrollador web. Para mí, escribir JavaScript y CSS es como sacar dientes. Dicho esto, no me gusta Phonegap.

Hay algunos aspectos muy atractivos del marco, principalmente el atractivo de "Escribir una vez, ejecutar en cualquier lugar" y el "No tengo que aprender-Objetivo-C". apelación. El marco incluso puede darle acceso a algunas de las funciones de hardware como el acelerómetro. Todos estos son válidos, hasta cierto punto.

Dicho esto, ninguna de las excelentes aplicaciones de iOS se crea utilizando ningún tipo de marco multiplataforma. Hay tantas interacciones sutiles y elegantes de la interfaz de usuario que son manejadas por usted por los controles nativos de UIKit que muchos usuarios y desarrolladores dan por sentado hasta que faltan, como la gran cantidad de curvas de animación de vista increíblemente detalladas y rebotes de desplazamiento que no están allí. en la interfaz de usuario basada en vista web. Podrías esforzarte para reproducirlos a la perfección, pero para esa inversión de tiempo, ¿por qué no simplemente convertirte en nativo?

Un segundo punto a tener en cuenta es que la comunidad de soporte para aplicaciones iOS construidas por Phonegap es drásticamente más pequeña que las aplicaciones desarrolladas de forma nativa. Si eres de los que confían en la comunidad durante los proyectos, esto también debería darte una pausa.

Al final, todo se reduce a la calidad de la experiencia que desea brindar. El límite superior es inferior con Phonegap. Si está listo para aceptar una experiencia de usuario menos que excelente a cambio de tiempos de desarrollo reducidos y una mayor portabilidad, entonces es un marco muy viable.

Como subtexto para cualquiera que esté interesado, Marco Arment y Dan Benjamin discutieron recientemente este tema. Puedes escucharlo aquí .

Matt Wilding
fuente
5
+1 Gran punto sobre el tamaño de la comunidad.
David Tang
5
+1 Gran punto en la experiencia del usuario. Realmente importa en iOS.
1
también puede crear la misma experiencia de usuario en phonegap. No creo que sea solo una cuestión de aprendizaje objetivo c. a medida que otros sistemas operativos móviles se vuelven populares: Androi ahora, veamos qué sucede con Windows Mobile y Firefox OS ... la solución multiplataforma será LA solución si no desea limitarse al x% de participación de mercado que iOS tendrá entonces.
memical
1
@memical, el equipo de desarrollo de Facebook no estaría de acuerdo contigo, por ejemplo. No digo que no tenga sentido desde la perspectiva de la cobertura del mercado, estoy diciendo que no es tan eficiente como el nativo. A pesar de lo que dices, eso es un hecho.
Matt Wilding
4

El procedimiento de instalación implica una serie de paquetes (Java, Apache Ant, Ruby, iOS SDK, Android SDK y PhoneGap en sí), que deben instalarse y configurarse correctamente. Esto puede suponer un gran esfuerzo. Para ser justos, tienen algo llamado PhoneGap Build en beta que debería hacer esto mucho más fácil.

Lo usamos con NS Basic / App Studio para producir aplicaciones que califican para las tiendas de aplicaciones.

ghenne
fuente
PhoneGap Build todavía está en versión beta un año después, más de seis meses después de que Adobe compró al desarrollador original, Nitobi.
DOK
2

Si no estás creando un juego ni un widget, simplemente una aplicación bonita, entonces phonegap es tu elección.

Pero debe tener cuidado con su JS, evite hacer nada en JS, por ejemplo, si desea hacer alguna animación, evite configurar un temporizador con intervalos pequeños (por ejemplo, 100 ms), evite jquery y animaciones similares. Por ejemplo, en lugar de animar el desvanecimiento configurando un temporizador de período corto que disminuya la opacidad en cada punto paso a paso (así es como funciona jquery fade), debe usar las transiciones css3 de opacidad 1 a opacidad 0.

Mi consejo es ir con algo como zeptojs.com, después de todo, phonegap no ejecutará ie6 :-)

Consulte algún tutorial sobre cómo hacer que su JS sea más ligero

http://bcksp.blogspot.com/

Muayyad Alsadi
fuente
en realidad, ahora también puedes crear juegos
memical
1

Si no necesita ninguna de las funciones de hardware o rendimiento más allá de lo que ofrecen HTML5 y Phonegap, una aplicación web encapsulada (más un acceso limitado a otras funciones) es una gran solución.

Muchas empresas implementan aplicaciones web a gran escala. Phonegap (o simplemente un control de vista web simple con contenido incrustado) le permitirá ejecutar estas aplicaciones web sin conexión (excepto, por supuesto, para cualquier dato en línea requerido).

hotpaw2
fuente
0

Un "dolor" que no se menciona al implementar entre varios dispositivos diferentes: cuantos más dispositivos, mayor es la curva de aprendizaje. Para implementar en dispositivos iOS con PhoneGap, deberá aprender los conceptos básicos de Xcode en una Mac. Para implementar en Android, necesitará instalar y aprender Eclipse, el SDK de Android, etc. Las otras plataformas exigen que se usen sus propios SDK. Aprender algo de Xcode, Javascript y Java rudimentario me ayuda a comprender los errores y la sintaxis general.

"Crear una vez, implementar en todas partes" omite MUCHOS pasos.

Steve
fuente