Andrew Brookins
On décembre 23, 2021 by adminEn 2017, j’ai demandé : « Pouvez-vous écrire du code sur un iPad ? ». En 2019, la réponse est fondamentalement la même : pas vraiment. Mais les choses deviennent intéressantes.
Mise à jour : si vous codez sur un iPad, consultez mon regard détaillé sur les moyens de synchroniser le presse-papiers iOS avec une machine distante via SSH. J’ai également exploré comment utiliser les outils de développement de navigateur sur iPadOS en utilisant l’application Inspect dans un post récent.
« Programmation » sur iOS : l’application Shortcuts
L’iPad n’a toujours pas la capacité de faire de la programmation native. C’est-à-dire que vous ne trouverez pas de porte secrète menant à un shell UNIX où vous pourrez installer homebrew et un compilateur C. Si seulement!
Vous pouvez ignorer Swift Playgrounds en toute sécurité, sauf si votre objectif est d’apprendre Swift. Playgrounds n’est pas un environnement de programmation polyvalent ; il est destiné aux enfants qui apprennent à coder.
Le plus proche de la programmabilité qui existe en tant que fonction native d’iOS est l’app Shortcuts, qui peut automatiser de petites tâches et connecter des apps ensemble.
C’est la version Apple rebrandée de Workflow, une app populaire qui faisait plus ou moins la même chose. Vous pouvez utiliser Raccourcis pour enchaîner une série d’actions que vous pourriez normalement prendre, comme activer Ne pas déranger, lire un album spécifique (je recommande Brute Force de The Algorithm), et ouvrir une app client SSH ou un éditeur de texte.
Racourcis est probablement utile à quelqu’un, mais je ne l’utilise pas beaucoup et c’est trop limité pour que je l’appelle programmation !
Édition dans les éditeurs de texte natifs d’iOS
Tout n’est pourtant pas complètement perdu. Tout d’abord, si vous concédez que l’iPad Pro est un client léger potentiel qui s’associe à un serveur, alors vous avez des options. Il existe d’excellentes applications SSH, comme Blink. Mais vous n’avez pas nécessairement besoin de vous connecter directement au serveur pour tout faire. Si vous préférez éditer nativement sur l’iPad et construire un système de poulies qui hissent votre code jusqu’à un serveur cloud, peut-être avec un système d’intégration continue comme celui de GitLab, c’est également possible. Nous explorerons les deux options.
Hey, j’ai écrit un livre !
Le Temple de la performance des bases de données Django est mon nouveau livre qui mash up le jeu de table, les bases de données, et Django. Explorez un temple en ruine tout en apprenant des astuces avancées sur les performances des bases de données Django !
Vous ne pouvez probablement pas exécuter votre code sur iOS à moins que ce soit du Python
Il y a une certaine marge de manœuvre autour de l’exécution de votre code directement sur l’iPad si vous êtes un développeur Python. L’application Pythonista est passée au fil du temps d’un éditeur de texte Python axé sur l’automatisation d’iOS à un environnement de développement Python piratable qui est livré avec les principaux paquets comme NumPy, a un shell de type bash implémenté en Python et prend en charge les plugins.
A part Python, je n’ai trouvé aucune application d’interprète ou de compilateur généralement utile sur iOS.
Mise à jour : Des lecteurs m’ont recommandé Continuous, un IDE C# et F# pour iOS, et Rescript, un IDE JavaScript/node.js pour iOS. Ces deux outils semblent prometteurs et pourraient être équivalents à Pythonista, mais je ne les ai pas utilisés. Il y a aussi Replete, une application iOS qui vous donne un REPL (boucle de lecture-évaluation-impression) ClojureScript ; bien qu’amusant, il semble moins riche en fonctionnalités que les autres.
Les éditeurs iOS natifs s’améliorent
Il existe des éditeurs de texte de plus en plus décents qui fonctionnent sans le composant interprète ou compilateur. Des apps comme GoCoEdit et Textastic offrent des expériences d’édition qui ont commencé à gagner certaines des fonctionnalités des éditeurs de bureau qui vont au-delà des bases – par exemple, la recherche floue de fichiers.
Ces éditeurs commencent à travailler les uns avec les autres et avec la puissante app Git Working Copy et l’app Files fournie par Apple pour produire des effets intéressants. Working Copy peut extraire un dépôt Git et le rendre disponible pour l’édition à des apps comme GoCoEdit ; les changements effectués dans l’éditeur se reflètent automatiquement dans Working Copy, où vous pouvez ensuite les commiter.
Fonctionnalités manquantes des éditeurs de texte iOS
Aucun de ces éditeurs ne fournit une expérience adaptée au développement réel de logiciels par eux-mêmes, cependant. Nous parlons de Dreamweaver, pas d’Emacs.
Une pièce manquante actuellement est la recherche de projet ; c’est-à-dire, étant donné un répertoire ou un ensemble de répertoires, permettre à l’utilisateur de rechercher du texte à travers tous les fichiers qui s’y trouvent. Si vous utilisez GoCoEdit ou iVim, vous pouvez obtenir une approximation de cela en utilisant l’excellent outil de recherche de Working Copy, qui offre cette fonctionnalité, pour trouver des fichiers et ensuite choisir par exemple « ouvrir dans GoCoEdit » dans le menu de partage. Textastic n’offre pas cette fonctionnalité pour une raison quelconque. Quoi qu’il en soit, c’est faisable à la rigueur, mais vous n’obtiendrez probablement pas le « flux » recherché. »
Note complémentaire sur iVim : il s’est amélioré. Vous pouvez avoir un fichier .vimrc
et télécharger des plugins dans le système de fichiers de l’application. Supposément, les plugins fonctionnent tant qu’ils sont écrits en Vimscript. Notez également que c’est Vim 7, donc pas d’async.
Alors que vous travaillez à partir d’un éditeur de texte iOS, ne vous attendez pas à ce que le modèle typique de développement d’applications web s’applique. À moins que vous n’utilisiez Pythonista, il n’y a pas de serveur exécutant votre code sur l’iPad, vous aurez donc besoin d’une colle pour que votre fichier édité soit transféré quelque part qui exécute réellement du code, comme un serveur ou une plateforme serverless. Il existe de nombreuses façons d’accomplir cela en 2019, impliquant peut-être une certaine utilisation de Pythonista, Zapier, IFTTT, et/ou une commande vocale Siri dans Shortcuts. Si coder sur un iPad est votre nouveau passe-temps, alors vous pouvez vous livrer à toutes vos pires habitudes de trouble déficitaire de l’attention en explorant ce sujet.
Aucun de ces éditeurs ne propose non plus de linters ou de formateurs de code. La conception d’iOS suggère que faire fonctionner des linters et des formateurs externes à une app d’éditeur impliquerait probablement une app séparée qui supporte les messages de linting et de formatage avec du texte en entrée. Sinon, l’éditeur devra fournir le binaire, par exemple gofmt
. Pour les outils écrits dans des langages interprétés, je suppose que l’éditeur devrait regrouper l’ensemble du langage de programmation ou tout ce que fait Pythonista.
La nature de passage de messages d’iOS est plutôt cool
Plus vous utilisez iOS pour faire quelque chose de non trivial, plus vous commencez à sentir sa nature de passage de messages. Au lieu que les applications interagissent entre elles et avec le système d’exploitation par le biais de fichiers et d’appels système, toutes les apps envoient et reçoivent des messages entre elles et avec le système d’exploitation.
Vous trouvez donc vos fichiers dans l’app Fichiers, mais ce n’est pas seulement un répertoire de fichiers. Il s’agit plutôt d’un endroit unique pour envoyer et recevoir des messages sur les fichiers dans toutes les apps de votre iPad, y compris iCloud Drive.
Les apps qui font quelque chose avec les fichiers ont ajouté des fonctionnalités plus avancées pour profiter de ces nouveaux messages liés aux fichiers que les autres apps prennent en charge, de sorte que de nombreuses apps d’édition de texte peuvent maintenant faire des choses comme ouvrir un répertoire de fichiers exposé par une autre app (en 2019, c’est « avancé » pour iOS). Les répertoires ouverts de cette façon resteront généralement dans quelque chose comme une barre latérale dans l’app et continueront à être accessibles comme s’ils étaient locaux à l’app.
Eventuellement, cela commence à se sentir assez cool et naturel ; en revenant à un ordinateur de bureau, vous pourriez vous attendre à un bouton « partager » cohérent qui n’existe pas. Si seulement il y avait un éditeur de texte de qualité professionnelle disponible sur iOS – et des compilateurs, des interprètes, des serveurs web, etc.
Recevez ma newsletter.
Vous recevrez un courriel occasionnel lorsque je suis assez excité par une technologie pour écrire à son sujet.
Connexion à un ordinateur réel avec SSH
Si vous utilisez Blink ou une autre app SSH pour vous connecter à un serveur qui peut exécuter du code arbitraire et exécuter Vim ou Emacs à partir de là, alors le modèle typique avec les apps web écrites dans des langages dynamiques d’éditer un fichier, d’attendre que le serveur d’apps recharge le fichier édité, puis de rafraîchir une page web peut encore fonctionner.
Vous allez rafraîchir un navigateur sur iOS, bien sûr. Je suggère iCab en raison de ses options de personnalisation étendues, y compris, de loin, les meilleurs raccourcis clavier modifiables que j’ai vus sur iOS.
Où devriez-vous exécuter votre serveur en 2019 ?
Pour les personnes qui ont besoin de la puissance et de la flexibilité d’un serveur distant et d’un véritable éditeur comme Vim, il existe encore plus d’options qu’auparavant.
Digital Ocean est un excellent choix pour démarrer rapidement. Le site Web a une grande interface utilisateur/UX, et le support est inclus.
En attendant, l’engagement de Google à utiliser une énergie 100% renouvelable fait de Google Cloud Platform un choix attrayant si vous n’avez pas besoin de support et que vous voulez dépenser un peu plus d’efforts. Le niveau « toujours gratuit » de GCP comprend une instance f1-micro, qui pourrait fonctionner comme votre VM de développement, en fonction de vos besoins.
Ce qui fonctionne également bien, c’est un vieux Mac que vous pouvez configurer comme serveur, car vous pouvez alors synchroniser des fichiers entre le serveur et votre iPad en utilisant iCloud Drive, ou utiliser osascript
pour vous envoyer des messages texte qui se lient profondément aux applications iOS. Le monde est votre huître à ce stade. Apple a relancé le Mac Mini, c’est donc un couple viable serveur domestique/ordinateur de bureau pour l’iPad.
Accéder à votre serveur Web de développement à partir d’un navigateur iOS
Il y a quelques années, si vous développiez une application Web sur un serveur distant, vous auriez peut-être dû exécuter le serveur de développement de l’application sur un port accessible au public. Maintenant, il existe une application pour le tunnelage SSH appelée – attendez ! – SSH Tunnel.
Pour atteindre votre serveur d’application (par exemple, le serveur de développement de Django), vous devez d’abord établir un tunnel vers le serveur (l’ordinateur) sur lequel le serveur d’application fonctionne avec SSH Tunnel. Vous devez définir un nom d’hôte autre que « localhost » dans /etc/hosts
sur le serveur, en pointant sur 127.0.0.1. Suivez ensuite les instructions du site Web de SSH Tunnel pour définir les bons paramètres de proxy sur la connexion réseau iOS que vous utilisez.
Après avoir effectué le sacrifice du sang, vous pouvez taper le nom d’hôte que vous avez spécifié, par ex. old-faithful
et le port sur lequel votre serveur d’application s’exécute dans le navigateur iOS de votre choix, par exemple http://old-faithful:4000
pour charger l’application.
Ou sont les outils de développement de navigateur ?
Lorsque vous devez déboguer l’application web, il existe maintenant une application d’outils de développement appelée Inspect. Il fonctionne assez bien, bien qu’il manque l’environnement de débogage JavaScript robuste que vous obtenez sur un navigateur de bureau. Néanmoins, à part le débogueur JS, Inspect possède la plupart des fonctionnalités dont vous avez besoin : Inspection CSS/HTML et une console JS, de sorte que vous pouvez au moins faire du console.log
débogage.
L’absence d’une application d’outils de dév comme Inspect était le blocage numéro un pour le développement d’applications web sur l’iPad avant 2018. En utilisant juste ces outils, vous pouvez faire du développement d’applications web depuis l’iPad. Est-ce que ce sera génial ? Je ne sais pas. Probablement pas.
So There You Have It
En 2019, l’iPad et iOS sont fondamentalement les mêmes qu’en 2017, en ce qui concerne la programmation. Ce qui est différent, c’est le nombre croissant de développeurs d’applications iOS s’adressant aux personnes qui veulent écrire du code sur iOS.
Compte tenu du fait qu’iOS a été lancé il y a 12 ans et qu’il ne dispose que maintenant d’éditeurs de texte apparentés à Dreamweaver, avec peu de moyens d’exécuter du code au-delà des applications « apprendre à coder », je propose que vous puissiez coder sur un iPad en 2037.
Laisser un commentaire