iOS app extensions

iOS app extensions: Teclados personalizados

Últimamente vengo colaborando en varios proyectos en tareas de consultoría, conceptualización y análisis técnico. Así que estos días me ha tocado investigar sobre app extensions en iOS, en concreto, los teclados personalizados.

Pero, ¿qué es una iOS app extension?

Una extensión es un medio por el cual un usuario puede comunicarse con tu app sin tener necesariamente que abrirla, es decir, a través de herramientas que brinda el propio Sistema Operativo iOS. Por ejemplo, tu app puede aparecer en el listado de aplicaciones que abren un PDF desde Safari, en un widget del today screen (esa sección de widgets a la izquierda del escritorio de iOS), o incluso podría abrirse al seleccionar un filtro determinado dentro de la app de fotos de iOS.

Se trata de colocar un enlace a tu app allí donde tiene más sentido para tus usuarios.

Particularidades de las extensiones de teclado

Como toda extensión en iOS, los teclados personalizados tienen sus particularidades, limitaciones y capacidades. Éstas son las cosas que has de saber:

Debes otorgar a tu usuario un mecanismo para cambiar de teclado. Apple es bastante explícito en este sentido, y lo menciona en bastantes ocasiones a lo largo de la documentación relativa a teclados custom. Si no ofreces una forma de cambiar al siguiente teclado, lo más seguro es que tu app no pase la revisión. Normalmente esto se hace con el botón de abajo a la izquierda, que tiene un icono llamado “globe”.

Si tu teclado tiene alguna variable configurable por parte del usuario, tienes la opción de que aparezcan las opciones de tu teclado en el menú Ajustes -> General -> Teclados. Por defecto no está activado, pero la documentación es muy clara y sencilla si quieres conseguir esto mismo.

No puedes crear un teclado de tipo contraseña (secureTextEntry). Éste tipo de teclado que sale cuando pulsamos en un campo de texto tipo contraseña está reservado para el sistema, y no podemos crear un teclado custom para introducir texto de este tipo. Esto es así por motivos de seguridad. De la misma forma, tampoco puedes crear un teclado para editor campos de tipo phone pad (teclado numérico para introducir números de teléfono), ya que también será sustituido por el del sistema.

Si lo deseas, puedes rechazar cualquier tipo de teclado custom en tu app. Esto es especialmente útil para aplicaciones tipo banca o en aquellas en las que los datos médicos de un usuario puedan quedar expuestos por teclados de terceros.

Los teclados custom no tienen acceso al micrófono del dispositivo, por lo que el input por voz no se puede implementar.

Además, no se pueden mostrar elementos visuales por encima del borde superior de la vista principal del teclado, tal y como hace el teclado del sistema cuando hacemos press and hold en una tecla de la fila superior.

Respecto a la implementación en código, es bastante sencillo crear una extensión de teclado. El propio entorno de desarrollo ofrece una plantilla de proyecto (realmente es un target dentro de un proyecto contenedor) con todo lo básico para empezar a diseñar tu teclado. Si necesitas funciones más avanzadas, como hacer peticiones a servidores remotos (para procesar el texto en un servicio en la nube mientras teclea el usuario, por ejemplo), necesitas activar esta opción (RequestOpenAccess) a nivel de proyecto. Recuerda que tiene que estar muy justificada esta configuración avanzada, de lo contrario Apple puede rechazar tu app en el proceso de revisión.

Ejemplo de teclado custom: Bitmoji

Un gran ejemplo de teclado custom es el ofrecido por la app Bitmoji. La puedes descargar aquí para iOS. Con ella, puedes configurar un avatar estilo “cartoon”, y una vez hecho, automáticamente tendrás disponible un teclado extra en las aplicaciones, donde puedes introducir imágenes a modo de stickers.

teclados custom: bitmoji

Teclado custom de la app Bitmoji

 

Bola extra: Input Accessory Views

Otra forma de personalizar el teclado en iOS es mediante los llamados input accesory views. Son vistas que se colocan sobre el teclado de iOS, y que podemos configurar como queramos. Por ejemplo, podemos añadir una toolbar con botones para realizar acciones relacionadas con el texto que estamos introduciendo. Un ejemplo de este tipo de vista sería el que implementa la app de productividad Todoist cuando damos al botón “+” para introducir una tarea. Podéis encontrarla en el Apple Store aquí.

Teclados custom: todoistAccessoryView en Todoist

Complemento al teclado de la app Todoist

 

¿Y tú? ¿Has implementado alguna extensión de iOS en tu app? ¡Cuéntamelo en los comentarios!

No hay comentarios

Deja un comentario