apareció iOS7. A pesar se ello, Apple era consciente que aún estaba un paso atrás respecto Android, debido a las carencias que los usuarios de Android podían disfrutar de serie. Esto producía que los fieles a la manzanita tuvieran que escuchar incómodas críticas del tipo: «Con Android puedo compartir archivos» o «Con Android puedo tener un teclado customizado» y similares. Así, con con la aparición de iOS8, Apple incorpora las Extensions. Por un lado como mejora del sistema y, por otro y en gran parte, para terminar con las incómodas frase de “si pero con Android…”. Hoy hablaremos sobre estás utilidades y cómo nos pueden ayudar a aportar un valor extra a nuestra app. ¿Qué son? ¿Para qué podemos usarlas? ¿Qué hace cada una? ¡Vamos a por ello! Empezaremos definiendo qué son. Se trata de una utilidad (en realidad son 10) que permite extender una funcionalidad de nuestra app para que aplicaciones de terceros la usen. Es código embebido, es decir, va dentro de nuestra app. En ningún caso se podrá subir a la store por sí sola. Siempre vendrá acompañada de una aplicación. La idea es que nuestra app no esté basada en una extensión, sino que demos a modo «servicio” una utilidad que a priori sería sólo nuestra. Por seguridad, tanto la aplicación anfitriona (la que usa nuestra extensión) como la nuestra, no tienen acceso a datos internos de la otra. Como siempre Apple nos facilita unas pautas y guías de uso que tendremos que seguir al pie de la letra. Como hemos adelantado anteriormente, existen 10 Extensiones para aplicarlas en contextos diferentes. Con iOS9 se han añadido 3 nuevas. Cada una de ellas puede potenciar nuestra app.
Share Extension (iOS8)

Action Extension (iOS8)

Custom Keyboard (iOS8)

- No hay ningún template en el que basarse, tendremos que diseñar toda la interface, y programar desde cero todo lo que queramos que haga nuestro teclado.
- No tenemos un acceso o control al bloqueo de mayúsculas, eso quiere decir que deberemos encargarnos nosotros de si lo tiene o no activado.
- No tenemos la auto-capitalización de manera nativa, si queremos la funcionalidad de tener la primera letra en mayúsculas de cada palabra y cosas similares, dependerá de nosotros.
- No se puede seleccionar texto.
- En ningún caso podremos usarlos para campos de tipo secure (contraseñas).
- No tendremos acceso al texto predictivo que nos ofrece iOS ni el dictado, ya que no tenemos permiso para usar el micrófono.
- Y para los desarrolladores, ya sabéis que en xCode los campos de textos, podemos decirles si queremos que el teclado que debe aparecer es de tipo numérico, de teléfonos, alfanumérico, decimal, etc, pues…. eso tampoco será posible, nuestro teclado sólo tendrá un layout (una vista o capa), otra cosa es que luego habilitemos un botón para que se transforme, pero inicialmente aparecerá la vista principal.
Document Provider (iOS8)

Photo Editing Extension (iOS8)

- Abrir la app de edición.
- Cargar la foto de la galería.
- Buscarla e importarla.
- Editarla a nuestro antojo.
- Guardarla de nuevo en el carrete.
- Y ya desde aquí todas las apps tienen acceso, en este caso e-mail.
Audio Unit Extension (iOS8)

SpotLight Index Extension (iOS9)

Today Extension (iOS8)

Content Blocker Extension (iOS9)

- Acceder a la URL
- Descargar el código
- Filtrar el contenido respecto a nuestro JSON de restricciones.
- Interpretarlo y devolverlo en formato página web.

