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 PhoneGap
Si 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.
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
http://forum.jquery.com/topic/ontouch-instead-of-onclick-event
http://wiki.phonegap.com/w/page/16494809/Performance-tips-for-device/
Consejos de rendimiento de VIDEO para Sencha Touch: http://vimeo.com/17882927
Delegación de eventos en Sencha Touch: cómo diseñar listas con un solo oyente, y no uno en cada línea. http://www.sencha.com/blog/event-delegation-in-sencha-touch/
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
fuente
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í .
fuente
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.
fuente
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/
fuente
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).
fuente
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.
fuente