¿Qué es la solución de aplicación web progresiva para IOS? [Cerrado]

79

Me preguntaba cuál es la solución de la aplicación web progresiva para dispositivos IOS, ya que su navegador predeterminado SAFARI aún no admite aplicaciones web progresivas. ¿Cuál es la alternativa entonces para las contrapartes de IOS?

Manjari
fuente
1
Felicitaciones por tu primera pregunta. Como sabrá, uno de los muchos requisitos para una aplicación web progresiva (PWA) es la compatibilidad con los trabajadores de servicios en el navegador. Desafortunadamente, Safari no admite Service Workers, por lo que las únicas alternativas son las aplicaciones nativas o un sitio web simple.
José Luis
1
Siguiendo con @ JoséLuis, una PWA debe seguir el principio de mejora progresiva y, por lo tanto, ser compatible con versiones anteriores de Safari e iOS. Esto significa que las funciones principales deben seguir siendo utilizables y la aplicación se mejora progresivamente a medida que las nuevas funciones están disponibles en el navegador o el sistema operativo.
Kevin Farrugia
2
Vea mi respuesta a continuación. Escribí un artículo llamando a Apple. Causó un gran revuelo en Twitter y en las noticias sobre hackers. ¡Una semana después, finalmente comenzaron a desarrollarlo!
Greg Blass
2
Finalmente, Apple ha agregado soporte para service worker en su TP. Puede leer más sobre el soporte de PWA de Safari aquí medium.com/awebdeveloper/…
aWebDeveloper
1
Realmente tengo que decir que cerrar esto por ser demasiado amplio es taaaan f #% (#) estúpido. ¡Como serio! ¿Por qué? ¿Por qué cerraría una pregunta tan importante como esta? Simplemente me sorprende.
Greg Blass

Respuestas:

97

Tenga en cuenta que "Navegadores que admiten aplicaciones web progresivas" no es un término real, la PWA en sí es un conjunto de funciones que una aplicación web puede proporcionar a los usuarios. Por lo tanto, no se trata solo de Service Worker y App Manifest.

Echa un vistazo a: Lista de verificación básica de PWA .

Esto es lo que puede hacer para lograr PWA en iOS / Safari en el momento en que se crea esta respuesta:

  • El sitio se sirve a través de HTTPS ✅
  • Las páginas son receptivas en tabletas y dispositivos móviles ✅
  • La URL de inicio (al menos) se carga sin conexión 🚫
  • Metadatos proporcionados para Agregar a la pantalla de inicio ✅❗️
  • La primera carga es rápida incluso en 3G ✅
  • El sitio funciona en varios navegadores ✅
  • Las transiciones de página no parecen bloquearse en la red ✅
  • Cada página tiene una URL ✅

Como puede ver, casi todo está funcionando, incluso si su página no puede funcionar sin conexión en iOS / Safari, todavía hay un gran beneficio de "actualizar" su aplicación web a una PWA.

Lo que realmente desea no es el elegante título de "Aplicaciones web progresivas", sino una buena aplicación web que ofrezca una buena experiencia y funciones para los usuarios. Este es un viaje ya que puedes realizarlo con cada pequeña parte, por eso se llama "Progresivo".

Nota sobre "Agregar a la pantalla de inicio: Safari tiene su propia especificación para el" icono de la pantalla de inicio "llamado apple-mobile-web-app-capableen las metaetiquetas. Web App Manifest Generator tiene una alternativa para iOS usando estas metaetiquetas.

TrungDQ
fuente
7
Con las funciones mencionadas anteriormente y sin 'Service Workers', ¡solo está desarrollando una aplicación web rápida y receptiva! ¡Las aplicaciones nativas son mucho más!
Abhishek Nalin
1
El usuario de downvote preguntó sobre iOS, la respuesta es muy general
Fareed Alnamrouti
Metadatos proporcionados para Agregar a la pantalla de inicio ✅❗️ No funciona. ¿Puedes elaborar?
Profer
76

EDITAR 3:

¡Los trabajadores de servicio se enviaron en Safari para iOS el 30 de marzo de 2018!

EDITAR 2:

Un desarrollador de Apple con el nombre de Ricky Mondello tuiteó esto el 24 de enero de 2018:

https://twitter.com/rmondello/status/956256845311590400

"iOS 11.3 y macOS 10.13.4 incluyen Service Workers, una potente especificación que permite que las secuencias de comandos en segundo plano alimenten aplicaciones web sin conexión. iOS 11.3 también consulta el manifiesto de aplicaciones web al agregar aplicaciones web a la pantalla de inicio".

¡Increíble!

Aún no hay notificaciones push, pero siguen siendo noticias increíbles.

EDITAR:

Escribí un artículo llamando a Apple sobre el tema:

https://m.phillydevshop.com/apples-refusal-to-support-progressive-web-apps-is-a-serious-detriment-to-future-of-the-web-e81b2be29676

Se publicó en noticias de piratas informáticos y obtuvo una buena exposición en Twitter. Una semana después, comenzaron a desarrollarlo. Entonces, estad atentos, ¡parece que finalmente está en camino!


RESPUESTA ORIGINAL:

"Así que no se trata solo de Service Worker y App Manifest".

En mi opinión, eso es exactamente de lo que se trata realmente una PWA: el trabajador de servicios. Eso es lo que te permite hacer todas las cosas increíbles que las PWA hacen posibles. La línea de base ha sido posible lograr durante mucho tiempo, y aunque Google los ha establecido técnicamente como una clasificación de línea de base, esas cosas no son las que realmente hacen que una PWA sea lo que es. De lo contrario, es solo una aplicación web receptiva normal en mi libro.

Aquí hay una lista de cosas que aún no puede hacer con el safari móvil debido a la negativa de Apple a apoyarlos (porque perderán dinero de la tienda de aplicaciones):

  • Crear una pantalla de carga de aplicaciones
  • Usar notificaciones push
  • Agregar soporte sin conexión
  • Cree una interfaz de usuario de la aplicación inicial para cargar al instante
  • Instalación rápida en la pantalla de inicio mediante un cuadro de diálogo guiado por el navegador

La respuesta aceptada realmente pinta la imagen incorrecta aquí. Llevé al límite la experiencia "nativa" de Apple en los safaris móviles, y sigue siendo bastante mala. He experimentado numerosos problemas con el modo de pantalla completa de Safari móvil, y Apple simplemente no se preocupa por ellos. Es tratado como un ciudadano de segunda clase porque no genera dinero como lo hace la tienda de aplicaciones.

Notarás que si agregas el nuevo e impresionante sitio móvil basado en react / redux de Twitter a tu pantalla de inicio en iOS, no se abre en modo de pantalla completa. Sospecho que es por las mismas razones que encontré: errores en abundancia, sin nadie en el equipo de Apple trabajando en ellos.

La pantalla de carga que alguna vez fue posible en el modo de pantalla completa de iOS que estaba disponible en el manifiesto de la aplicación web ha dejado de funcionar misteriosamente, sin comentarios de Apple en sus foros sobre publicaciones sobre el tema. Y tener que decirles a los usuarios: "Oye, simplemente haz clic en compartir y luego deslízate hasta" Agregar a la pantalla de inicio "es una forma horrible de tener que hacer las cosas.

Es una triste situación. La lista en la respuesta aceptada actual realmente debería llamarse "Lista de aplicaciones web receptivas de línea de base".

Y para responder a la pregunta aquí, no, no hay alternativa y no hay nada que pueda hacer. Tienes que jugar al juego de Apple, pagar $ 100 para tener acceso a la tienda de aplicaciones, aprender un lenguaje de programación completamente diferente y más complejo, y mantener una base de código completamente separada.

Acabo de pasar 6 meses aprendiendo React Native para un proyecto de cliente, y ha sido increíble. Lo recomiendo mucho. Puede crear aplicaciones verdaderamente nativas utilizando JavaScript y compartir su base de código entre iOS y Android.

Para ser claros, no soy anti-Apple. Uso un iPhone y desarrollo en una Mac. Pero este aspecto de su estrategia comercial es sin duda una vergüenza.

Greg Blass
fuente
1
Creo que Swift / Xcode es el lenguaje / IDE más fácil de usar del mercado. Construyeron un lenguaje de desarrollo moderno y un nuevo paradigma, programación orientada a protocolos, que resuelve muchos de los problemas asociados con las herencias múltiples. El hecho de que no hayan intentado expandir su uso más allá de sus propios productos es una pena, pero llamarlo más complejo que TypeScript / JavaScript sería engañoso. Creo que TypeScript es una curita fea que ponen en un lenguaje feo. Ojalá los navegadores web hablaran rápido.
Ryan Dines
Alguien me mencionó lo mismo en mi artículo. Lo edité para que diga más "detallado". Pero tienes razón, probablemente estoy sesgado viniendo de la web. Pero los equipos de Facebook pudieron iterar 5 veces más rápido en la web que las aplicaciones nativas, por eso hicieron React Native, así que creo que tiene algo de mérito.
Greg Blass