Feb. 16, 2017
Programando en el Apple Watch
Experimentos locos, con seriedad
En los últimos años no he sido ajeno a los experimentos locos, pero esta vez quise llevarlo al extremo: programar en un Apple Watch. ¿Sería posible escribir código de verdad en un dispositivo tan pequeño? ¿Para qué molestarse? Este post es una defensa de los experimentos locos, ¡y por qué tú también deberías intentarlo!
Hace una semana estaba intercambiando algunos correos electrónicos con mi amigo Niels, contándole esta idea de usar un iPhone para hacer el trabajo. Él sugirió (en holandés) que llevara esa idea al siguiente nivel... Apple Watch.

Mientras él usaba sus brillantes habilidades de Photoshop, yo usé Xcode, mis conocimientos de Linux, SSH, VIM, la red local, un teclado bluetooth, un Apple Watch real, algo de tiempo y paciencia... resultando en esta prueba de concepto:


Cómo funciona (para principiantes)
Creé una pequeña aplicación para el Watch que se conecta a un ordenador externo que ejecuta el software de desarrollo. El teclado está conectado a este ordenador externo, para que pueda escribir código de verdad. El principio es simple y se puede comparar con la aplicación de Cámara que viene por defecto en el reloj: usas el reloj como un visor para la cámara del iPhone. Esta aplicación del Watch es como un "visor" para el código de programación.
Cómo funciona (para los expertos en tecnología entre nosotros)**
En la red local ejecuto un pequeño servidor NodeJS en una máquina Linux que toma capturas de pantalla de una sesión de shell que ejecuta mi editor de código de programación favorito, VIM. El teclado está conectado a este portátil mediante Bluetooth. En el Watch creé una aplicación simple que obtiene una nueva captura de pantalla cada pocos segundos y la usa para mostrar la imagen a pantalla completa. Es una prueba de concepto, no algo digno de la AppStore (hay bastante latencia entre actualizaciones, pero funciona). Si estás pensando en construirlo tú mismo, busca WKInterfaceImage
, UIImage
, NSURLSession
y dataTaskWithURL
.

Por qué
Experimento regularmente, porque me permite aprender sobre la forma en que hago las cosas. Los experimentos me obligan a repensar cosas que doy por sentadas o normales. En muchos sentidos, "la caza es mejor que la captura".
Experimento activamente con nuevo hardware y software, solo para mantenerme actualizado y aprender cosas nuevas. En 2008, pocos meses después del lanzamiento de la AppStore, fui uno de los primeros en empezar con el desarrollo de iOS. Aunque el potencial no estaba claro, aprendí y experimenté con la tecnología. Mi experiencia temprana me ayudó a programar la aplicación Snake '97 en 2011, otra idea loca que resultó ser un juego con 20 millones de descargas... :-))

Lo que aprendí
Así que en lugar de preguntar "¿Por qué?", mejor pregunta "¿Qué aprendí?". Bueno, en realidad, bastantes cosas:
- Mueve tu entorno de programación a la terminal: Pásate al texto, deshazte del IDE (como Visual Studio) y aprende a usar VIM (o emacs) correctamente con atajos de teclado. Estas herramientas funcionan prácticamente en cualquier dispositivo y no requieren un sistema operativo propietario.
- Adiós al ratón: mantén los dedos donde escribes el código, en el teclado. En lugar de alcanzar un ratón, usa el teclado (atajos). Puede que te lleve un tiempo conocerlos, pero al final eres mucho más rápido. Además de la velocidad, también ganas la capacidad de usar cualquier pantalla, ya que más dispositivos admiten teclados pero no ratones (piensa en consolas de juegos, televisores inteligentes, AppleTV, dispositivos de la vieja escuela).
- Usa los píxeles, sabiamente: Si te limitas a una pantalla pequeña, te ves obligado a pensar mejor en cómo usar los píxeles. ¿Realmente necesitas tener todas esas barras de herramientas visibles, todo el tiempo? Cuantos menos elementos de la interfaz estén permanentemente visibles, más espacio tendrás para el contenido real. Menos distracción, más concentración.
- Escribe mejor código: Para mantener las cosas legibles en una pantalla pequeña, aprenderás a prestar mucha atención a cosas como la estructura del código, la lógica de las funciones y la nomenclatura. Las pantallas pequeñas fomentan líneas de código más cortas y cuerpos de funciones más compactos. Te obliga a hacer las cosas más simples y cortas, a repetirte menos. Estas ventajas también se trasladan a pantallas más grandes.
- Ya no necesitas realmente un PC: Si es posible en un Watch, piensa en esos otros dispositivos que llevas contigo, como tu smartphone y tu tableta. Ser capaz de usar mejor tu(s) dispositivo(s) móvil(es) te hará menos dependiente de los PC tradicionales.
- El Apple Watch tiene potencial: Anteriormente, los desarrolladores de Facebook ya lograron hacer funcionar el famoso juego Doom 3D en el Apple Watch. También aprendí que el dispositivo tiene un potencial serio. Estoy empezando a pensar que el Apple Watch es mucho más un "ordenador móvil siempre presente" que algo para comparar con un reloj mecánico tradicional.

Conclusión
Todo este experimento realmente me ha impulsado en términos de computación móvil. Aprendí a optimizar mi conjunto de herramientas y mi forma de trabajar. De hecho, toda esta entrada de blog fue creada en un iPhone, incluidas las fotos (tomarlas, recortarlas), y no se sintió nada extraño. Me encanta porque hace todo más fácil, y eso hizo que este experimento valiera la pena.
Bonus: Nokia Communicator y Jolla
Mientras escribía este post, me pregunté si mis viejos Nokia Communicators todavía funcionaban. Después de trastear un poco con las viejas baterías, logré que el E90 y el 9300i funcionaran. Usando Putty y WiFi 802.11b, logré conectarme a mi sistema de desarrollo recién creado que usé para este experimento con el Apple Watch. ¿Adivina qué? Funcionó perfectamente, ¿quién necesita un teléfono nuevo de todos modos? :-)



