icon - Extensión de la aplicación iOS Share vs Action
vshare ios (1)
Quiero implementar una extensión de aplicación, pero no puedo decidir si debo implementarla como extensión compartida o extensión de acción.
La documentación no dice mucho sobre las diferencias, solo esto:
- Compartir (iOS y OS X) : publicar en un sitio web para compartir o compartir contenido con otros
- Acción (iOS y OS X; UI y variantes no relacionadas con la interfaz de usuario) : manipular o ver el contenido que se origina en una aplicación de host
¿Existen también diferencias técnicas (por ejemplo, una extensión de Acción me permite hacer algo que la extensión Share no tiene), o es simplemente una convención que Apple quiere que siga para que las cosas no sean tan confusas para los usuarios?
Parece que al menos una diferencia es que si desea una acción que no sea de UI, debe elegir una Acción en lugar de la extensión Compartir.
¿Cuáles son las otras diferencias?
Ejemplos de cosas que estoy buscando:
- ¿Ambos me permiten personalizar la interfaz de usuario?
- ¿Los dos me dan alguna IU predeterminada para usar?
- ¿Ambos tienen los mismos permisos, o puedo hacer más cosas en una frente a la otra?
- ¿Ambos reciben la misma entrada de la aplicación Host?
- ¿Pueden ambos enviar de vuelta los mismos datos a la aplicación Host?
Aquí están mis hallazgos hasta ahora:
Resumen:
- Icono : las extensiones compartidas tienen iconos de colores.
- Ubicación del icono : algunas aplicaciones, como Safari, tienen una gran cantidad de íconos de actividad que no se pueden ocultar con los que competiría su ícono.
- Interfaz de usuario : las extensiones compartidas deben tener una interfaz de usuario coherente.
- Propósito : las extensiones compartidas están reservadas para compartir contenido, pero incluso Apple infringe este requisito.
Icono
Las extensiones para compartir tienen un ícono de color, que es el mismo que el ícono principal de su aplicación. De hecho, Apple afirma: "Si proporciona un ícono separado en su objetivo de extensión de Share, Xcode lo ignora". [B]
Las extensiones de acción usan "una versión monocromática del icono de la aplicación", [E] o "una versión de la imagen de la plantilla" [B] del icono de su aplicación.
Ubicación del icono
Las extensiones compartidas aparecen en la fila del medio, las extensiones de acción aparecen en la fila inferior.
Dependiendo de la aplicación a la que se dirija, su ícono puede estar compitiendo con más o menos íconos como una extensión de acción contra acción. Por ejemplo, si los usuarios van a acceder a su extensión a través de Safari principalmente, su aplicación estaría compitiendo con otros 4 íconos de forma predeterminada como una extensión compartida * u otros 8 íconos como una extensión de acción. Por otro lado, si está apuntando a la aplicación Mapas, estaría compitiendo con más iconos como una extensión compartida (4) en lugar de una extensión de acción (2).
Por lo tanto, para maximizar su exposición al usuario, le conviene elegir una extensión compartida cuando se orienta a Safari, pero una extensión de acción cuando se orienta a Maps.
Nota: la mayoría de las actividades son proporcionadas por la propia aplicación de host usando las API UIActivity y UIActivityViewController . Hay una gran reseña sobre ellos en NSHipster .
* Obviamente, el número de extensiones de acciones y actividades cambia según las aplicaciones instaladas y que el usuario eligió mostrar / ocultar.
Ejemplos del simulador iOS 9.1:
- Contactos:
- Compartir (1): Correo
- Actividades (0):
- Mapas:
- Compartir (4): Mail, Reminders, Twitter, Facebook
- Actividades (2): Agregar a Favoritos, Imprimir
- Noticias:
- Compartir (4): Mail, Reminders, Twitter, Facebook
- Actividades (5): Agregar a la lista de lectura, Copiar, Abrir en Safari, Informar sobre una preocupación, Silenciar canal
- Fotos:
- Compartir (4): Mail, Twitter, Facebook, Flickr
- Actividades (6): copiar, presentación de diapositivas, ocultar, asignar a contacto, utilizar como fondo de pantalla, imprimir
- Safari:
- Compartir (4): Mail, Reminders, Twitter, Facebook
- Actividades (10): Agregar a favoritos, Agregar marcador, Agregar a lista de lectura, Agregar a pantalla de inicio, Agregar a enlaces compartidos, Agregar a noticias , Copiar, Imprimir, Buscar en la página, Solicitar sitio de escritorio
- (Texto resaltado):
- Compartir (3): Mail, Twitter, Facebook
- Actividades (1): Copiar
(En cursiva significa que los íconos pueden estar ocultos).
Interfaz de usuario
La plantilla de extensión de Share predeterminada viene con una subclase de SLComposeServiceViewController para mantener las cosas consistentes. Y Apple quiere que "uses la interfaz de usuario proporcionada por el sistema en una extensión de Share [tanto como sea posible]". [E]
Las extensiones de acción , por otro lado, le permiten elegir un tipo de acción ( Presenta la interfaz de usuario o Sin interfaz de usuario ), y la primera viene con un UIViewController en blanco.
Extensión de compartir predeterminada; La extensión predeterminada presenta la extensión de la acción de la interfaz de usuario.
Intención
Aunque Apple afirma que una extensión de Share debe "publicar en un sitio web compartido o compartir contenido con otros", [A] incluso violan este requisito con Recordatorios.
Las extensiones de acción están destinadas a "manipular o ver el contenido que se origina en una aplicación de host". [A]
Cosas que son lo mismo
- Ambos permiten que su aplicación proporcione múltiples versiones de la extensión. (Por ejemplo, su aplicación podría proporcionar dos extensiones compartidas y dos extensiones de acción).
- En mis pruebas limitadas, ambos parecen estar deshabilitados por defecto, con el usuario que tiene que tocar explícitamente el botón más para habilitar la extensión compartir / acción.