Después de utilizar PhoneGap en algunos proyectos, hemos visto que su principal problema es que la aplicación generada va lenta. Sin embargo, a diferencia de Titanium, PhoneGap no hace nada con el código html y js que se programa, simplemente es abre un browser embebido dentro de la aplicación y ejecuta el código tal cual. Es cierto que tiene también librerías javascript para acceder a ciertas capacidades nativas, pero incluso sin usarlas, el mismo código funciona más rápido en el browser del teléfono que en PhoneGap.

¿Cómo es esto posible?

Pues esto sucede porque la WebView (el browser que se abre dentro de una aplicación nativa de Android) va siempre un paso por detrás en términos de versiones que el Chrome para móviles, y tiene además capadas ciertas opciones (ejecución de javascript, caches, etc.). Haciendo la equivalencia, es como si el browser nativo fuera un Explorer 10 y la WebView un Explorer 8 con opciones capadas. Esta situación se debe, supuestamente, a razones de seguridad, pero realmente es que ni a Google ni a Apple les gusta que abras un browser dentro de la aplicación, ya que pierden el control sobre el contenido que estás cargando.

En el caso de iPhone sucede algo similar, La UIWebView es 3 veces más lenta que el MobileSafari.

Este problema de la lentitud no se nota apenas si la aplicación es simple, pero puede llegar a ser un problema en muchos casos. Lo importante a tener en cuenta es que cualquier Web no se puede incluir en phonegap tal cual, es importante seguir algunos consejos a la hora de programar para que la aplicación vaya fluida: no abusar de frameworks, usar animaciones CSS, etc. Muchos de estos consejos son puro sentido común y son aplicables para optimizar cualquier Web móvil aunque no uses PhoneGap.

Para el futuro parece que la cosa esta mejorando, en cada versión nueva de iOS la UIWebView funciona ligeramente mejor y en Android 4.4 la nueva WebView basada en chrome funciona un 300% más rápido.

Lo más curioso y preocupante del asunto es que en el momento actual, Google y Apple han penalizado el uso de los estándares Web html-css-js en sus aplicaciones, y han conseguido que muchos desarrolladores se alejen cada vez más de estas opciones para desarrollar aplicaciones en favor de desarrollos nativos.

Cuéntanos qué te parece.

Los comentarios serán moderados. Serán visibles si aportan un argumento constructivo. Si no estás de acuerdo con algún punto, por favor, muestra tus opiniones de manera educada.

Suscríbete