¿Por qué las aplicaciones web no se ejecutan tan eficientemente como las aplicaciones nativas en el iPhone?

7

Estaba comparando la aplicación web de Twitter con la aplicación nativa, y noté un par de diferencias en cómo se desempeñan. Observé que el desplazamiento no era tan suave en el navegador como la aplicación nativa, entre otras pocas peculiaridades menores. Creo que la aplicación web podría funcionar igual de rápido si no más rápido en la versión de la aplicación web, por lo que es difícil para mí entender la diferencia. Creo que WebKit está directamente en el núcleo de iOS.

Inicialmente, Apple quería mantenerlo solo como aplicaciones web, pero ahora me pregunto si su enfoque se dirigió más hacia lo nativo.

    
pregunta Jim Marcus 18.03.2012 - 18:05

1 respuesta

9

El enfoque cambió de las aplicaciones web a las nativas cuando la App Store se presentó con el lanzamiento del iPhone 3G con iOS 2.0.1, que se presentó el 9 de junio de 2008 en la WWDC.

Inicialmente, las aplicaciones web estaban destinadas a ser utilizadas con el primer iPhone, pero el mayor cambio se produjo con el lanzamiento del iOS dedicado (o iPhone OS como se llamaba entonces) Kit de desarrollo de software anunciado en el evento iPhone Software Roadmap en 6 de marzo de 2008. El SDK permite a los desarrolladores crear aplicaciones utilizando Xcode que se ejecutarán de forma nativa en el iPhone, iPod Touch y iPad. Incluso antes de eso, las aplicaciones incluidas se escribieron de forma nativa a pesar del hecho de que Steve Jobs comentó una vez:

  

El motor completo de Safari está dentro del iPhone. Y así, puedes escribir increíble web.   Aplicaciones 2.0 y Ajax que se ven exactamente y se comportan exactamente   como aplicaciones en el iPhone. Y estas aplicaciones pueden integrarse perfectamente con   Servicios de iPhone. Pueden hacer una llamada, pueden enviar un correo electrónico, pueden   Puede buscar una ubicación en Google Maps.

     

¿Y adivina qué? No hay un SDK que necesites! Tienes todo lo que necesitas   Si sabes cómo escribir aplicaciones usando la mayoría   Estándares web modernos para escribir increíbles aplicaciones para iPhone hoy. Asi que   desarrolladores, creemos que tenemos una historia muy dulce para usted. Usted puede   comience a construir sus aplicaciones para iPhone hoy.

La diferencia es tan simple como la antigua diferencia entre las aplicaciones "interpretadas" y "compiladas".

Las aplicaciones nativas se escriben en lenguajes de nivel inferior (Objective C, C, C ++ usando el entorno de desarrollo Xcode) y se compilan contra API que están diseñadas para extraer la máxima velocidad y eficiencia usando algoritmos y funciones que están escritas específicamente contra el hardware que son. destinado a ser ejecutado en. Compilar código en código de máquina ejecutable directamente, casi siempre es el método de ejecución más rápido para una tarea de software determinada.

Las

aplicaciones web son piezas de código genéricas no compiladas que no pueden hacer uso de estas API y tienen que recrearlas o no usarlas. Están escritos en lenguajes de nivel inferior como Javascript, Python o Perl y se interpretan a través de un entorno de ejecución en el punto de ejecución, lo que permite cierta flexibilidad a expensas de la velocidad bruta. La función de desplazamiento es un ejemplo de dónde la aplicación nativa tiene acceso a rutinas altamente optimizadas para permitir el desplazamiento súper pulido, pero una aplicación web no lo hace porque no tiene conocimiento o acceso a las API relevantes. Muchas aplicaciones web se compilan sobre la marcha usando técnicas de compilación 'justo a tiempo', pero aunque esto puede ganar algunas mejoras de velocidad, no puede satisfacer la falta de una plataforma API optimizada adecuada en un lenguaje de nivel superior, entonces Javascript (que es el único el tiempo de ejecución del lado del cliente que iOS realmente soporta, aunque otros sistemas operativos, móviles y de escritorio pueden tener acceso a otros) en los que están escritas las aplicaciones web de iOS. Otros tiempos de ejecución están disponibles para su uso siempre y cuando se desempeñen en el lado del servidor, lo que proporciona un mayor impacto de rendimiento. / p>

En el caso específico de Twitter, la aplicación de twitter simplemente no usa el webkit, usa otras rutinas escritas en el objetivo C, que de nuevo (la palabra clave supongo) están optimizadas para los mejores resultados de una manera que nada en un navegador puede lograr. Curiosamente, creo que la aplicación nativa de Facebook es en realidad una envoltura ligeramente velada alrededor de una interfaz de usuario de webkit.

    
respondido por el stuffe 18.03.2012 - 20:05

Lea otras preguntas en las etiquetas