¿Por qué la calidad de UIWebView es menor que Safari?

Supongo que está preguntando sobre el motor Javascript, que es mucho más lento en UIWebView que en Mobile Safari.

El motor Javascript de Safari utiliza un compilador “justo a tiempo”. Toma el código Javascript entrante y lo transforma sobre la marcha en código de máquina que puede ejecutarse directamente en la CPU ARM del dispositivo iOS. Esto permite que el código Javascript se ejecute a una velocidad similar al código de una aplicación nativa.

El problema es que Apple no confía en los desarrolladores de terceros con este poder. Si una aplicación de terceros tuviera el poder de convertir Javascript en código de máquina y ejecutarla, esa aplicación también tendría el poder de descargar y ejecutar otras piezas de código de máquina, y Apple nunca tendría la oportunidad de revisar ese código. La mafia rusa podría crear una aplicación de aspecto inocuo que descargue algún fragmento de código, luego, una vez que App Review lo apruebe, cambie el código descargado en algo que registre sus contraseñas o algo así. Y no hay forma de otorgar este poder solo a UIWebView y no a otras partes de una aplicación, porque UIWebView se ejecuta en el mismo proceso que el código del desarrollador.

Básicamente, Apple prohíbe esto porque permitirlo rompería la seguridad proporcionada por la App Store y haría que iOS sea más vulnerable a los ataques. Pueden permitirlo para Safari porque controlan lo que hace Safari, pero no pueden confiar en que otros no abusen de esa capacidad.


Actualización, 2014 : ¡Buenas noticias! iOS 8, anunciado hace un par de semanas, finalmente soluciona este problema. La nueva clase WKWebView no ejecuta Javascript en sí misma; en su lugar, lo pasa a un proceso separado creado por Apple que utiliza un compilador justo a tiempo para dar a las aplicaciones de terceros un rendimiento de clase Safari. WKWebView también es mucho más capaz y tiene excelentes formas de permitir que Javascript y el código nativo se comuniquen fácilmente. Si está trabajando con vistas web en iOS, definitivamente debería echar un vistazo.

More Interesting

¿Cuál es la mejor aplicación ferroviaria india disponible en las tiendas de aplicaciones iOS y Android? ¿Qué da datos confiables?

¿Por qué Evernote no viola las pautas de iOS App Store?

¿Cuáles son algunas aplicaciones iOS muy útiles pero no tan populares?

¿Son falsas las aplicaciones de mindfulness y se basan en la esperanza y el engaño, o realmente hacen una diferencia sostenible?

¿Qué desarrolladores / aplicaciones de iOS necesitarán innovar significativamente para mantenerse con vida como resultado de los anuncios de iCloud?

¿Existe una aplicación ebook Reader para libros epub con una funcionalidad similar a Amazon whispersync?

¿Una aplicación que utiliza el diseño de material de Google sería aceptada en la AppStore de Apple?

¿Qué son las empresas que cotizan en bolsa que desarrollan aplicaciones y se benefician del éxito de la App Store de Apple?

¿Para qué versión de iOS debe construir para cubrir a la mayoría de los usuarios de iPhone y iPad?

¿Apple o Google alguna vez prohibirán las aplicaciones de Xamarin?

¿Cuáles son las ventajas y desventajas de vender contenido a través de compras de aplicaciones frente a aplicaciones separadas?

¿Cuáles son las mejores aplicaciones de iPhone?

¿Cómo se mueven aplicaciones como Pulse, Prismatic, Flipboard y Zite en la Sección 8.5 (Uso de material protegido de terceros) de las Directrices de revisión de la tienda de aplicaciones?

¿Cómo ordena Apple reseñas de usuarios para aplicaciones en la tienda de aplicaciones?

¿Cuáles son algunas aplicaciones líderes para DJI Phantom?