Ouvrir le menu principal

MacGeneration

Recherche

Comment le vibe coding m’a permis de remplacer dix ans de bricolages avec AppleScript et Raccourcis


Comme mon collègue Stéphane et probablement beaucoup de geeks, j’ai commencé à tâter le terrain du vibe coding en début d’année. Cette pratique qui consiste à écrire des apps en utilisant uniquement des intelligences artificielles génératives, souvent sans même regarder la moindre ligne de code, a gagné d’un coup en efficacité avec l’émergence de modèles sensiblement plus puissants à partir de la fin de l’année 2025. Pour ma part, c’est surtout l’arrivée de l’app Codex proposée par OpenAI qui m’a mis le pied à l’étrier. Je l’ai d’abord testée pour écrire un article et puis je me suis pris au jeu en l’utilisant pour des projets personnels.

Une app entièrement codée avec Codex et Antigravity. Image MacGeneration.

Après quelques mois, j’ai vibe codé plusieurs automatisations parfois très sophistiquées pour Home Assistant, améliorant au passage ma gestion au quotidien de la maison connectée. Dans cet article, je voulais présenter un autre projet qui a vidé mes quotas plus vite que l’éclair. J’ai créé une app en Swift destinée à un usage interne chez MacGeneration afin de remplacer un vieil AppleScript que j’avais bricolé il y a bien des années et qui dépendait de Rosetta.

En deux semaines de développement par petites sessions, j’ai obtenu une app pour macOS et iOS qui reprend toutes les fonctionnalités de l’ancien script et en fait même bien plus. Elle est fonctionnelle et suffisamment soignée à mon goût et mes collègues de la rédaction peuvent aussi en profiter par le biais de TestFlight.

L’objectif : remplacer un AppleScript côté macOS et une automatisation Raccourcis côté iOS

Chez MacGeneration, nous utilisons un dispositif assez original pour gérer les tâches de la rédaction. Après avoir testé de nombreuses solutions sur le marché, de l’historique Daylite au très regretté Wunderlist, nous avons finalement opté pour un système atypique, mais qui tient depuis maintenant près de dix ans. Nous détournons les issues d’un projet hébergé par notre instance GitLab (concurrent de GitHub qui peut être installé sur son propre serveur) en guise de gestionnaire de tâches.

Les plus anciennes issues ouvertes dans le projet utilisé par la rédaction fêteront leur dixième anniversaire dans quelques mois. J’avais une grande imagination pour nommer les premiers éléments durant la phase de test, n’est-ce pas… Image MacGeneration.

Si vous ne connaissez pas le domaine, les issues ne sont clairement pas faites pour ça. À la base, ces tickets associés à un dépôt Git permettent de remonter les bugs ou des demandes de fonctionnalités pour un projet de développement. C’est un outil très utilisé par les développeurs, pour enregistrer les bugs et répondre aux demandes d’utilisateurs, notamment dans le monde de l’open source. Comme je l’expliquais en 2020, ce n’était pas le choix idéal pour nous, plutôt un pis-aller en attendant de trouver mieux.

Les services internes préférés de MacGeneration

Les services internes préférés de MacGeneration

Mais comme on n’a rien trouvé de mieux en dix ans, GitLab reste notre gestionnaire de tâches. Un de ses défauts par rapport à un véritable outil dédié concerne l’ajout des tâches et c’est ce qui nous ramène au sujet. Pour créer une issue, on doit normalement utiliser une interface web et même si elle est assez bien pensée dans l’ensemble, elle n’est pas optimale pour ajouter rapidement un article à la pile de tâches. Depuis un navigateur, il faut copier le titre depuis un onglet, le coller dans un autre onglet qui affiche le formulaire, puis revenir sur le premier pour récupérer l’URL et la coller dans le deuxième.

Création d’une issue GitLab, une étape assez contraignante quand on doit l’utiliser plusieurs fois chaque jour pour ajouter un lien. Image MacGeneration.

Ce n’est pas l’idéal sur un Mac, c’est encore pire sur un iPhone où les allers et retours et copier-coller sont pénibles. C’est pourquoi j’ai créé deux briques supplémentaires associées lors de notre bascule sur GitLab, en commençant par un script en AppleScript pour faciliter l’ajout depuis le Mac. J’affectionne tout particulièrement ce langage bizarre, avec sa syntaxe drôlement proche de l’anglais, et c’est ainsi assez naturellement que je me suis tourné vers lui. Si c’était le candidat naturel pour récupérer les données nécessaires des navigateurs web (URL, titre et même sélection du contenu), il lui manquait la partie interface pour composer un formulaire simple à utiliser.

C’est pourquoi j’ai aussi utilisé Pashua, en complément du code en AppleScript. Cette app propose depuis 2003 de créer des interfaces décrites avec du texte, ce qui est parfait dans ce contexte. Le script contient la liste des champs, avec d’éventuelles valeurs prédéfinies (comme les membres de la rédaction pour assigner une tâche), et on peut préremplir le formulaire par le script. Même si c’est du bricolage, c’est un bricolage qui a tenu dix ans, ce qui n’est pas si mal.

Le début du script à gauche et l’interface générée par Pashua à droite. Image MacGeneration.

Cette solution va toutefois sans doute disparaître prochainement. Le développeur de Pashua a abandonné son app depuis 2018, si bien qu’elle n’a jamais connu la transition vers les puces Apple Silicon. La disparition de Rosetta 2, prévue pour macOS 28 dans un an, signera probablement sa fin définitive. Son code source étant ouvert, quelqu’un pourrait théoriquement reprendre le flambeau, mais cela reste improbable étant donné son caractère ultra-niche. Qui a encore besoin d’interfaces pour des AppleScript en 2026 ?

Rosetta 2 disparaîtra à la sortie de macOS 28

Rosetta 2 disparaîtra à la sortie de macOS 28

Du côté d’iOS, la situation n’a jamais été aussi favorable. J’avais écrit un long article en 2017 sur la création d’une automatisation avec l’app qui se nommait encore Workflow et qui est devenue Raccourcis suite à son acquisition par Apple. Comme je le décrivais, on était loin d’avoir quelque chose d’aussi optimal à cause de la fermeture d’iOS et cela ne s’est jamais amélioré. Je dirais même que la gestion depuis Cupertino a empiré la situation, avec tant de bugs bloquants à chaque mise à jour majeure d’iOS que j’ai été contraint de replonger bien trop souvent à mon goût dans cette automatisation longue et complexe.

Automatisation : Workflow, après des années d’AppleScript

Automatisation : Workflow, après des années d’AppleScript

Cette longue présentation permet de définir le cadre de ce projet de vibe coding. Je ne suis pas parti de zéro avec un simple concept, j’avais une idée bien précise en tête : remplacer un AppleScript parfaitement fonctionnel, mais condamné à terme, ainsi qu’une automatisation iOS trop bancale par une app native et moderne.

Le travail : beaucoup d’allers et retours avec les modèles et énormément de lignes de code

Même si je ne suis pas développeur et que je n’ai jamais suivi de formation pour écrire des lignes de code, je bricole suffisamment dans le domaine depuis aussi longtemps que j’ai un ordinateur (ou même une calculatrice graphique quand j’étais lycéen) pour me qualifier de codeur du dimanche. J’ai écrit des dizaines de scripts en AppleScript pour le travail et mes propres besoins, j’ai aussi plusieurs scripts Shell à mon actif pour gérer des serveurs et j’ai même bricolé au fil des années plusieurs apps utilisées en interne. Ce qui m’a toujours manqué pour créer une app dédiée à l’ajout de tâches à GitLab, c’est d’abord le temps.

Cet article est réservé aux membres du Club iGen


Rejoignez la plus grande communauté Apple francophone et soutenez le travail d'une rédaction indépendante. Le Club iGen, c'est:

  • des articles de qualité rien que pour vous
  • un podcast exclusif
  • pas de publicité
  • un site dédié !

La 5K haut de gamme enfin accessible

15:45

• 0


MacBook Neo : nouvelle baisse de prix sur les 2 modèles

15:44

• 23


Google Chrome : le navigateur le plus rapide au monde (jusqu’à lundi ?)

09:30

• 37


Sortie de veille : nouveau Siri, iOS 27… Que faut-il attendre de la WWDC 2026 ?

08:00

• 2


Siri, IA et chasse aux bugs : que nous réserve iOS 27 ?

07:30

• 17


L’App Store retire MAX, la super-app russe poussée par le pouvoir en place

07:00

• 37


WWDC 2026 : comment suivre le keynote d'Apple en direct lundi

05/06/2026 à 23:25

• 30


Anthropic demande un moratoire sur l’IA auto-entretenue, tout en maintenant le pied sur l’accélérateur

05/06/2026 à 22:10

• 25


Luminar Neo 1.27.0 enrichit la retouche de portrait et inaugure ses soldes d'été 📍

05/06/2026 à 22:00

• 0


MacBook : les délais de livraison s'envolent sur les configurations riches en RAM

05/06/2026 à 18:25

• 11


Les AirPods Ultra auraient déjà des yeux, mais Siri n’a pas encore de cerveau

05/06/2026 à 18:19

• 18


Le nouveau Siri pourrait revenir avec une bêta et même une liste d’attente

05/06/2026 à 18:18

• 63


The Verge a créé un MacBook Neo multicolore grâce aux pièces détachées vendues par Apple

05/06/2026 à 16:18

• 16


LM Studio et Locally connectent les modèles d'IA de votre Mac à votre iPhone

05/06/2026 à 15:09

• 10


Un développeur cache du code qui demande aux IA de tout effacer dans sa bibliothèque Java

05/06/2026 à 13:00

• 49


APR : une boutique en ligne pour Inter-Actif et des magasins en difficulté chez C&C

05/06/2026 à 12:37

• 26