¿Construir un teclado para Android o iOS es un pequeño proyecto que puedo hacer con mi conocimiento justo de programación?

[Tenga una aclaración del OP, pero dejaré todos los detalles para un teclado de hardware en caso de que alguien más lo encuentre útil.]

Crear un teclado virtual en pantalla no sería demasiado difícil si solo se limitara a su propia aplicación. Si tiene el control completo de la pantalla y la entrada, puede vincularla. La parte difícil es reemplazar la lógica de teclado virtual existente del sistema operativo e interactuar de la manera adecuada para saber cuándo aparecer, cómo insertar teclas en la aplicación activa, etc. Básicamente, si el sistema operativo tiene ganchos para permitirlo, lea el Documentación API para esos ganchos y sígala. Si el sistema operativo no tiene ningún gancho, puede ser bastante difícil ya que tendrá que hacer un poco de ingeniería inversa. Como SwiftKey existe obviamente, debe ser posible, pero sin saber qué API existen, no sé cuánto soporte obtendrá del sistema operativo y cuánto tiene que inventarse.

Si tenía la intención de crear un teclado físico (como con pequeñas teclas de plástico), entonces es complicado de una manera diferente.

Probablemente una de las limitaciones más estrictas será el poder. Tendrá que ejecutar un chip bastante limitado para ahorrar batería. Los teclados están cerca del fondo del barril cuando se trata de CPU, así que no esperes mucho, es dudoso que puedas usar un sistema operativo. Deberá tener una pila Bluetooth para que pueda usar el perfil BT HID. Es posible que pueda encontrar un chip dedicado para esto en lugar de una pila de software. Usar una solución de hardware existente sería mucho más fácil que integrar una pila Bluetooth sin compatibilidad con el sistema operativo. Necesitará un software que traduzca los escaneos del teclado a códigos clave (puede encontrar este código abierto). Finalmente, es posible que necesite crear controladores separados para instalar en el lado del teléfono si desea que su teclado haga algo “especial”.

La peor parte será la depuración: con el procesador de teclado limitado no hay mucho disponible en la forma en que las personas civilizadas modernas están acostumbradas a la depuración. Hace mucho tiempo, ayudé a un cliente a crear un teclado especializado compatible con PS / 2 que vendió para sistemas de punto de venta. El software se ejecutó en un chip compatible con 8080, y como el teclado tenía muchas funciones programables, no había mucho espacio (RAM + ROM total de 48K). El software estaba todo en ensamblaje. La depuración fue un reto porque todo lo que tenía disponible para diagnosticar problemas eran las luces LED (bloqueo numérico, bloqueo de desplazamiento, bloqueo de mayúsculas) y la salida del teclado en sí.

Esperemos que su proyecto no sea tan arcaico, pero aún así, necesitará su mojo incrustado para llevarlo a cabo.