2012-06-25 20 views
5

Hemos estado trabajando durante varios meses en una aplicación de iOS bastante considerable utilizando PhoneGap 1.8.1 y Kendo UI de Telerik. Diría que la aplicación de iOS es aproximadamente 90% más rápida que su equivalente nativa, lo cual es perfectamente aceptable para nosotros. Tomamos la misma base de código exacta y la sustituimos en los archivos JavaScript equivalentes de Android, arrancamos nuestro dispositivo (Motorola Xoom ejecuta 4.0.3) y el rendimiento es horrible. Lo peor de todo es que las transiciones de página, que deberían tomar quizás 0.3 segundos, toman 2-5 segundos. El rendimiento es igual o peor en los emuladores (no es sorprendente).Migración de una aplicación iOS de PhoneGap a Android: problemas de rendimiento terribles

Si hay algún código útil que pueda publicar, házmelo saber. De lo contrario, supongo que estamos buscando otras personas que se hayan encontrado con esta situación y/o sugerencias para mejorar el rendimiento. En este punto, PhoneGap es un completo no arranque para el desarrollo de Android para nosotros.

Respuesta

8

Hacemos un desarrollo móvil multiplataforma utilizando Sencha Touch 2 (sin experiencia con Kendo UI). La última vez que analicé el rendimiento en detalle, Sencha Touch 2 fue el mejor rendimiento de los marcos móviles multiplataforma con todas las funciones/madurez (Jquery Mobile, Kendo UI, etc.). Nuestra experiencia es que el rendimiento en Android es considerablemente más lento que iOS (aunque Sencha Touch 2 se considera un poco rápido). Las listas de desplazamiento, las transiciones de pantalla, etc. son todas inferiores a la media. Estaba bastante asombrado por la diferencia de rendimiento. El rendimiento de Android es mejor en mi Galaxy Nexus con 4.0, pero aún es notablemente más lento que los dispositivos con iOS.

Desafortunadamente, no veo una manera para que usted obtenga sus aplicaciones para realizar el mismo mismo en Android que en iOS. Esta es la desafortunada realidad que tuve hace un tiempo. El problema que está viendo se debe al rendimiento de los navegadores en las diferentes plataformas; phonegap solo usa UIWebView y WebView para cargar las páginas html y javascript dentro de un contenedor de aplicaciones nativas. ¿Puedes cargar la aplicación Kendo UI en el navegador de los dispositivos? Supongo que el rendimiento sería el mismo que el de las aplicaciones nativas.

Nuestra "solución" ha sido desarrollar primero para Android y llevar las aplicaciones a un punto en el que funcionan decentemente. Entonces sabemos que estarán geniales en dispositivos iOS.

No estoy muy familiarizado con la interfaz de usuario de Kendo, pero en cuanto a recomendaciones o ajustes, tratamos de mantener lo menos posible en el DOM. Cuando se inicia la aplicación, creamos tan poco en el DOM como sea posible, luego creamos/destruimos objetos cuando la aplicación los necesita. Además, solo ayuda la optimización general de javascript.

Creo que este es un pequeño y sucio secreto de estos frameworks móviles. Cuando se les acerca al respecto, su respuesta es que el rendimiento del navegador Android es lento, por lo que las aplicaciones van a ser lentas. Es decir. "No es nuestra culpa", sin embargo, siguen retratando un marco que funciona de maravilla en todas las plataformas.

Para nosotros, Sencha Touch 2 es lo suficientemente rápido como para brindar a nuestros usuarios una experiencia digna en dispositivos Android, por lo que vale la pena el enorme ahorro de tiempo frente al desarrollo de aplicaciones nativas para cada plataforma.

Solo para aclarar, el problema de rendimiento que está viendo probablemente no tiene nada que ver con PhoneGap, es el rendimiento del navegador en los dispositivos. PhoneGap esencialmente solo envuelve un WebView en un contenedor nativo de aplicaciones. Hemos visto los problemas de rendimiento en Android al usar PhoneGap y el embalaje nativo Sencha Touch.

+0

Gracias. Esto es triste, pero gracias! –

Cuestiones relacionadas