Andrew Brookins
On diciembre 23, 2021 by adminEn 2017 pregunté: «¿Puedes escribir código en un iPad?». En 2019 la respuesta es básicamente la misma: no realmente. Pero las cosas se están poniendo interesantes.
Actualización: si codificas en un iPad, echa un vistazo a mi mirada detallada a las formas de sincronizar el portapapeles de iOS con una máquina remota a través de SSH. También exploré cómo utilizar las herramientas de desarrollo del navegador en iPadOS utilizando la aplicación Inspect en un post reciente.
«Programación» en iOS: la aplicación Shortcuts
El iPad todavía carece de la capacidad de hacer cualquier programación nativa. Es decir, no encontrarás una puerta secreta que conduzca a un shell UNIX donde puedas instalar homebrew y un compilador de C. Si tan sólo
Puedes ignorar con seguridad Swift Playgrounds, a menos que tu objetivo sea aprender Swift. Playgrounds no es un entorno de programación de propósito general; está orientado a que los niños aprendan a codificar.
Lo más parecido a la programabilidad que existe como función nativa de iOS es la aplicación Shortcuts, que puede automatizar pequeñas tareas y conectar aplicaciones entre sí.
Esta es la versión renombrada de Apple de Workflow, una popular aplicación que hacía más o menos lo mismo. Puedes usar Shortcuts para encadenar una serie de acciones que normalmente harías, como activar No Molestar, reproducir un álbum específico (recomiendo Brute Force de The Algorithm), y abrir una aplicación cliente SSH o un editor de texto.
Shortcuts es probablemente útil para alguien, pero yo no lo uso mucho y es demasiado limitado para llamarlo programación.
Edición en editores de texto nativos de iOS
Pero no todo está perdido. En primer lugar, si concedes que el iPad Pro es un potencial cliente ligero que se empareja con un servidor, entonces tienes opciones. Hay grandes aplicaciones SSH disponibles, como Blink. Pero no necesariamente tienes que conectarte directamente al servidor para hacer todo. Si prefieres editar de forma nativa en el iPad y construir un sistema de poleas que eleven tu código hasta un servidor en la nube, quizás con un sistema de integración continua como el de GitLab, también es posible. Exploraremos ambas opciones.
¡Oye, he escrito un libro!
El Templo del Rendimiento de la Base de Datos de Django es mi nuevo libro que mezcla juegos de mesa, bases de datos y Django. Explora un templo en ruinas mientras aprendes trucos avanzados de rendimiento de bases de datos Django!
Probablemente no puedas ejecutar tu código en iOS a menos que sea Python
Hay cierto margen de maniobra en torno a la ejecución de tu código directamente en el iPad si eres un desarrollador de Python. La aplicación Pythonista ha crecido con el tiempo desde un editor de texto de Python centrado en la automatización de iOS hasta un entorno de desarrollo de Python hackeable que incluye paquetes importantes como NumPy, tiene un shell similar a Bash implementado en Python y admite plugins.
Aparte de Python, no he encontrado ninguna aplicación de intérprete o compilador generalmente útil en iOS.
Actualización: Los lectores me han remitido a Continuous, un IDE de C# y F# para iOS, y a Rescript, un IDE de JavaScript/node.js para iOS. Ambos parecen prometedores y pueden ser equivalentes a Pythonista, pero no los he usado. También está Replete, una aplicación para iOS que te da un REPL de ClojureScript (bucle de lectura-evaluación-impresión); aunque es divertido, parece menos rico en características que los otros.
Los editores nativos para iOS están mejorando
Hay editores de texto cada vez más decentes que se ejecutan sin el componente de intérprete o compilador. Aplicaciones como GoCoEdit y Textastic ofrecen experiencias de edición que han comenzado a ganar algunas de las características de los editores de escritorio que van más allá de lo básico – por ejemplo, archivos de búsqueda difusa.
Estos editores están empezando a trabajar entre sí y con la poderosa aplicación Git Working Copy y la aplicación Files proporcionada por Apple para producir efectos interesantes. Working Copy puede comprobar un repositorio Git y ponerlo a disposición de aplicaciones como GoCoEdit para su edición; los cambios realizados en el editor se reflejan automáticamente en Working Copy, donde se pueden confirmar.
Características que faltan en los editores de texto de iOS
Sin embargo, ninguno de estos editores proporciona una experiencia adecuada para el desarrollo de software real por sí mismos. Estamos hablando de Dreamweaver, no de Emacs.
Una pieza que falta actualmente es la búsqueda de proyectos; es decir, dado un directorio o conjunto de directorios, permitir al usuario buscar texto a través de todos los archivos en él. Si usas GoCoEdit o iVim, puedes conseguir una aproximación a esto usando la gran herramienta de búsqueda de Working Copy, que sí ofrece esta característica, para encontrar archivos y luego elegir, por ejemplo, «abrir en GoCoEdit» desde el menú de compartir. Textastic no ofrece esta función por alguna razón. De todos modos, es viable en un apuro, pero es probable que no logre la buscada «fluidez».»
Nota lateral sobre iVim: ha mejorado. Puedes tener un archivo .vimrc
y descargar plugins en el sistema de archivos de la aplicación. Supuestamente los plugins funcionan siempre que estén escritos en Vimscript. Además, ten en cuenta que es Vim 7, así que no hay async.
Al trabajar desde un editor de texto de iOS, no esperes que se aplique el patrón típico de desarrollo de aplicaciones web. A menos que uses Pythonista, no hay ningún servidor que ejecute tu código en el iPad, así que necesitarás algún pegamento para hacer que tu archivo editado se transfiera a algún lugar que realmente ejecute código, como un servidor o una plataforma sin servidor. Hay muchas maneras de lograr esto en 2019, posiblemente involucrando algún uso de Pythonista, Zapier, IFTTT, y/o un comando de voz de Siri en Shortcuts. Si codificar en un iPad es tu nueva afición, entonces puedes dar rienda suelta a todos tus peores hábitos de Trastorno por Déficit de Atención explorando este tema.
Ninguno de estos editores ofrece tampoco linters o formateadores de código. El diseño de iOS sugiere que conseguir linters y formateadores externos a una aplicación de editor para trabajar probablemente implicaría una aplicación separada que apoyó los mensajes de pelusa y de formato con el texto como la entrada. De lo contrario, el editor tendrá que proporcionar el binario, por ejemplo, gofmt
. Para las herramientas escritas en lenguajes interpretados, supongo que el editor tendría que empaquetar todo el lenguaje de programación o lo que sea que esté haciendo Pythonista.
La naturaleza de paso de mensajes de iOS es bastante genial
Cuanto más se utiliza iOS para hacer algo no trivial, más se empieza a sentir su naturaleza de paso de mensajes. En lugar de que las aplicaciones interactúen entre sí y con el sistema operativo a través de los archivos y las llamadas al sistema, todas las aplicaciones envían y reciben mensajes entre sí y con el sistema operativo.
Así que encuentras tus archivos en la aplicación Archivos, pero no es sólo un directorio de archivos. Es más bien un lugar único para enviar y recibir mensajes sobre archivos en todas las apps de tu iPad, incluyendo iCloud Drive.
Las apps que hacen cualquier cosa con archivos han añadido funciones más avanzadas para aprovechar estos nuevos mensajes relacionados con archivos que soportan otras apps, por lo que muchas apps de editores de texto pueden ahora hacer cosas como abrir un directorio de archivos expuesto por otra app (en 2019 eso es «avanzado» para iOS). Los directorios que se abren de esta manera normalmente permanecerán en algo así como una barra lateral en la app y seguirán siendo accesibles como si fueran locales a la app.
Al final esto empieza a sentirse bastante genial y natural; volviendo a un ordenador de escritorio, podrías esperar un botón de «compartir» consistente que no existe. Si sólo hubiera un editor de texto de nivel profesional disponible en iOS – y compiladores, intérpretes, servidores web, etc.
Recibe mi boletín de noticias.
Recibirás un correo electrónico de vez en cuando cuando estoy lo suficientemente entusiasmado con una tecnología para escribir sobre ella.
Conexión a un ordenador real con SSH
Si usas Blink u otra aplicación SSH para conectarte a un servidor que pueda ejecutar código arbitrario y ejecutar Vim o Emacs desde allí, entonces el patrón típico con aplicaciones web escritas en lenguajes dinámicos de editar un archivo, esperar a que el servidor de la aplicación recargue el archivo editado, y luego refrescar una página web puede seguir funcionando.
Estarás refrescando un navegador en iOS, por supuesto. Sugiero iCab debido a sus amplias opciones de personalización, incluyendo sin duda los mejores atajos de teclado modificables que he visto en iOS.
¿Dónde debería ejecutar su servidor en 2019?
Para las personas que necesitan el poder y la flexibilidad de un servidor remoto y un verdadero editor como Vim, hay incluso más opciones de las que solía haber.
Digital Ocean es una gran opción para comenzar rápidamente. El sitio web tiene una gran UI/UX, y el soporte está incluido.
Mientras tanto, el compromiso de Google de utilizar energía 100% renovable hace que Google Cloud Platform sea una opción atractiva si no necesitas soporte y quieres gastar un poco más de esfuerzo. El nivel «siempre gratuito» de GCP incluye una instancia f1-micro, que podría funcionar como tu VM de desarrollo, dependiendo de tus necesidades.
Lo que también funciona bien es un viejo Mac que puedes configurar como servidor, porque entonces puedes sincronizar archivos entre el servidor y tu iPad usando iCloud Drive, o usar osascript
para enviarte mensajes de texto que se vinculan profundamente a las aplicaciones de iOS. A partir de ese momento, el mundo es tu ostra. Apple ha revivido el Mac Mini, por lo que es un par de servidor doméstico / ordenador de sobremesa viable para el iPad.
Llegar a su servidor web de desarrollo desde un navegador iOS
Hace unos años, si usted estaba desarrollando una aplicación web en un servidor remoto que podría haber tenido que ejecutar el servidor de desarrollo de la aplicación en un puerto de acceso público. Ahora hay una aplicación para hacer túneles SSH llamada – ¡espera! – SSH Tunnel.
Para llegar a tu servidor de aplicaciones (por ejemplo, el servidor de desarrollo de Django), primero estableces un túnel hacia el servidor (el ordenador) en el que se está ejecutando el servidor de aplicaciones con SSH Tunnel. Querrás definir un nombre de host distinto de «localhost» en /etc/hosts
en el servidor, apuntando a 127.0.0.1. A continuación, siga las instrucciones del sitio web de SSH Tunnel para establecer la configuración correcta del proxy en la conexión de red iOS que está utilizando.
Después de realizar el sacrificio de sangre, puede escribir el nombre de host que especificó, por ejemplo old-faithful
y el puerto en el que se ejecuta su servidor de aplicaciones en su navegador de iOS de elección, por ejemplo, http://old-faithful:4000
para cargar la aplicación.
Browser Dev Tools, Where Art Thou?
Cuando necesite depurar la aplicación web, ahora hay una aplicación de herramientas de desarrollo llamada Inspect. Funciona bastante bien, aunque carece del robusto entorno de depuración de JavaScript que se obtiene en un navegador de escritorio. Aún así, aparte de un depurador de JS, Inspect tiene la mayor parte de lo que necesitas: Inspección CSS/HTML y una consola JS, por lo que al menos puedes hacer console.log
depuración.
La falta de una aplicación de herramientas de desarrollo como Inspect era el bloqueador número uno para el desarrollo de aplicaciones web en el iPad antes de 2018. Usando solo estas herramientas, puedes hacer desarrollo de aplicaciones web desde el iPad. ¿Será genial? No lo sé. Probablemente no.
Así que ahí lo tienes
En 2019 el iPad y iOS son básicamente lo mismo que en 2017, en lo que a programación se refiere. Lo que es diferente es el creciente número de desarrolladores de aplicaciones para iOS que atienden a las personas que quieren escribir código en iOS.
Dado que iOS fue lanzado hace 12 años y sólo ahora tiene editores de texto similares a Dreamweaver disponibles, con pocas formas de ejecutar código más allá de las aplicaciones de «aprender a codificar», propongo que serás capaz de codificar en un iPad en 2037.
Deja una respuesta