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

Nicolas Furno |

J’utilise un Mac depuis plus de dix ans et parmi toutes les choses que j’ai découvertes grâce au système d’Apple, la plus importante à mes yeux est l’automatisation. Avant de découvrir macOS, je n’avais jamais eu l’idée d’utiliser un script et encore moins d’en écrire pour réaliser une tâche simple et répétitive. C’était avant de tester Automator et surtout AppleScript, deux outils qui ont changé mon rapport à l’informatique.

Au début, je bricolais des scripts très simples, mais au fil des années, j’ai entrepris des projets plus ambitieux. Sans prétendre être un expert, j’ai suffisamment d’expérience en AppleScript aujourd'hui pour automatiser une bonne partie des tâches répétitives sur mon Mac, notamment tout ce qui est lié à mon travail pour MacGeneration.

Extrait de l’un des scripts écrits pour MacGeneration. Cliquer pour agrandir

Mais cet article n’est pas consacré à AppleScript, ni même au Mac. Profitant de quelques jours de congés, j’ai entrepris d’adapter l’un des scripts utilisés pour MacGeneration aux appareils iOS. J’avais écrit la version macOS et j’étais curieux de voir si je pouvais reproduire la même chose sur iPhone et iPad.

Quelques heures de découverte et de manipulation plus tard, j’avais un workflow fonctionnel. Cet article revient sur cette première expérience d’automatisation sur iOS, avec le regard d’un scripteur sur Mac.

Démonstration du workflow, ici à partir de notre app. Il est conçu pour fonctionner à partir de n'importe quel menu de partage d’iOS.

Workflow, quasiment la seule solution pour automatiser iOS

L'application Workflow, qui permet de réaliser des scripts pour iOS, a gagné beaucoup en visibilité en se faisant acheter par Apple, en mars dernier. Depuis, le constructeur a retiré quelques fonctions à la marge, mais l’app est restée largement inchangée, si ce n’est qu’elle est proposée gratuitement sur l’App Store. La WWDC est passée sans même une mention de l’app et on ne sait toujours pas, à ce stade, ce que l’entreprise compte en faire.

Est-ce qu’une future version d’iOS intégrera une relecture mobile d’Automator basée sur Workflow ? Après tout, les deux apps partagent le même concept de base et on pourrait avoir une intégration bien plus poussée qu’aujourd'hui côté mobile.

La galerie intégrée Workflow est un bon moyen de découvrir de quoi est capable l’app. Cliquer pour agrandir

À défaut de savoir quel futur Apple réserve à Workflow, elle reste quasiment la seule solution pour automatiser iOS. D’autres voies peuvent être suivies, en particulier si vous maîtrisez Python (Pythonista offre alors un environnement complet), mais ces solutions sont assez fermées sur elles-mêmes, là où la force de Workflow est précisément son ouverture. L’app est bien intégrée à iOS, elle peut agir avec les apps installées en local et avec des services en ligne.

Le plus gros point fort de l’app est probablement son intégration dans le menu de partage d’iOS, ce qui est indispensable pour ce que je voulais faire. C’est pourquoi le choix de l’outil a été très simple : pour mes besoins, c’était à ma connaissance la seule solution pour adapter le script que j’avais créé à l’origine sur Mac.

Workflow, l’automatisation simplifiée…

Ce n’est pas la première fois que j’utilisais Workflow, j’ai même été certainement le premier à l’utiliser à la rédaction, en tout cas, j’avais annoncé son lancement, fin 2014. Mais je n’avais jamais utilisé l’app sérieusement, au-delà de quelques minutes d’expérimentations pour rédiger un article ou essayer une fonction.

Workflow sur un iPad Pro. Cliquer pour agrandir

Cette expérience a donc été ma première utilisation poussée de l'app. C’est la première fois que j’ai créé un processus de A à Z et que je l’ai utilisé ensuite régulièrement sur mes appareils iOS. Les débuts n’ont pas été faciles ; tant que vous vous contentez de choses assez simples, l’app est bien plus agréable à utiliser que les solutions d’automatisation sur Mac, mais elle devient plus complexe dès lors que l’on passe un certain cap.

Commençons par le positif. L’idée de composer un processus en enchaînant des briques qui correspondent à chaque fois à une fonction n’est pas nouvelle, mais elle est toujours aussi pertinente. C’est sans doute la mieux adaptée par ailleurs à un environnement tactile et l’interface de l’app sur un iPad est particulièrement bien conçue, avec le processus sur la droite et la liste exhaustive des briques à disposition sur la gauche.

Depuis 2005, Automator permet d’automatiser des tâches simples en combinant plusieurs briques. C’est en quelque sorte l’ancêtre de Workflow, en tout cas le concept est identique. Cliquer pour agrandir

Tout comme Automator avant elle, Workflow excelle pour réaliser des opérations simples. Faire quelques calculs, récupérer des images depuis une page web, créer un PDF à partir de plusieurs sources, envoyer un message avec votre position ou l’estimation du temps pour rentrer, créer une nouvelle liste de lecture, etc. Les exemples de base dans la galerie sont très utiles et très simples.

… mais qui atteint vite ses limites

Dans mon cas, j’avais besoin d’un workflow plus complexe. Pour résumer, l’idée est de récupérer l’adresse et le titre d’une page web pour ensuite l’envoyer sur le serveur Gitlab qui sert de gestionnaire de tâches en interne à la rédaction. L’envoi doit se faire en utilisant l’API fournie par Gitlab et je savais que Workflow était capable de le faire depuis l’automne dernier.

La principale difficulté du processus est son cadre très souple. S’il ne devait fonctionner que depuis le partage de Safari, le workflow serait très simple. Mais il doit servir à tout et n’importe quoi : une app dans l’App Store, un tweet, un lien pioché dans un lecteur de flux RSS… Par ailleurs, je voulais pouvoir le lancer sans partir d’une URL, mais directement dans Workflow, ou via le widget de l’app. Dans ce cas de figure, le processus peut récupérer l’URL dans le presse-papier pour l’utiliser comme source, ou en dernier recours, demander à l’utilisateur de saisir manuellement le nom de la tâche à ajouter.

Workflow permet de lancer un processus en utilisant un widget, ce qui est très pratique pour un accès rapide. Cliquer pour agrandir

Mes débuts ont été compliqués et c’est l’un des plus gros points faibles de Workflow : il y a beaucoup d’exemples qui circulent sur internet et ils forment une base pleine d’enseignements. Néanmoins, ils sont souvent difficiles à trouver et l’app manque d’une documentation vraiment exhaustive.

La documentation officielle mérite d’être lue, mais elle est beaucoup trop courte et ne couvre pas tous les sujets, loin de là. Si vous cherchez à comprendre comment fonctionnent certaines briques avancées, comme celle qui est dédiée aux API web, vous aurez vite fini votre lecture et vous n’aurez pas toutes les informations. Sur ce point, la jeunesse de Workflow joue en sa défaveur et l’app aurait bien besoin d’une documentation beaucoup plus complète et détaillée.

Je ne suis pas sûr que cela viendra rapidement et c’est dommage, car je trouve que certaines actions de base ne sont pas très claires. Je vais prendre un exemple : mettons que vous voulez récupérer le titre d’une page web, et vous n’avez que son URL. Vous pensez que la brique « Get details of Safari Web Page » qui dispose justement d’une option pour récupérer le nom fera l’affaire ? Eh bien, pas du tout.

Pendant mes premières expérimentations avec Workflow, alors que j’essayais de récupérer le titre d’une page web à partir de son adresse. Ce n’est pas ainsi qu’il faut procéder. Cliquer pour agrandir

L’opération est en fait plus complexe. À partir de l’URL, vous devrez utiliser l’action « Get Contents of URL » sans option supplémentaire (ce composant peut servir à beaucoup de choses, ici on veut simplement télécharger la page web, en quelque sorte), puis la brique « Get Name » pour obtenir l’information.

Voici la bonne solution : prendre une URL, suivre les éventuelles redirections, puis deux briques spécifiques qui extraient le nom de la page. Cliquer pour agrandir

Ce n’est pas vraiment intuitif et pour être franc, ce n’est pas vraiment mieux en AppleScript, sauf si vous lancez le script à partir de Safari ou Chrome. Ce qui m’a semblé étrange, c’est que Workflow contient des actions qui semblent complètes, mais qui ne fonctionnent pas toujours de manière très instinctive.

C’est la même chose pour récupérer les informations sur une app de l’App Store. Il existe bien une action, mais elle elle est souvent trop restrictive. Le plus « simple », le plus fiable en tout cas, est d’utiliser la recherche fournie par Workflow et l’identifiant de l’app, préalablement récupéré dans son URL en filtrant le texte. C’est plus long à mettre en place, mais ce n’est pas très grave tant que le résultat est là.

Pour récupérer des informations sur une app, le mieux est d’extraire son identifiant unique et d’utiliser la brique de recherche de Workflow. Une meilleure solution serait toutefois d’améliorer la brique Get Details of App Store App pour qu’elle fonctionne aussi à partir d’une URL. Cliquer pour agrandir

Le vrai problème, c’est de trouver ces solutions. Si vous avez la chance d’avoir quelques personnes qui vous suivent sur les réseaux sociaux, vous pouvez faire comme moi, râler et obtenir des réponses (merci mille fois @MarcosIckx, au passage, sans qui j’aurais probablement abandonné à ce stade).

Sans cela, c’est beaucoup plus compliqué, sachant que la documentation est trop légère et que les exemples mis en avant dans la galerie restent très simples. Je n’ai jamais eu ce problème avec AppleScript : en sept ou huit ans de pratique, j’ai toujours trouvé quelques lignes de code quelque part pour faire ce que je voulais ou au moins me mettre sur la voie.

La galerie intégrée à Workflow permet de voir comment un processus est créé. C’est utile quand on débute, mais les exemples restent limités en nombre et en complexité. Cliquer pour agrandir

Mon conseil, faute de mieux, si vous cherchez de l’aide avec Workflow : commencez avec MacStories, vous y trouverez plusieurs conseils et de multiples exemples documentés de processus. Si cela ne suffit pas, le subreddit de Workflow est assez fréquenté et il contient pas mal de questions/réponses qui pourront aider. C’est aussi probablement le meilleur endroit pour poser vos questions… il va sans dire qu’une bonne maîtrise de l’anglais est indispensable.

Je voudrais un Workflow sur Mac

Workflow est une app strictement réservée à iOS et cela ne devrait pas vraiment changer avec l’acquisition d’Apple. Ce n’est pas un problème en soi et la simplicité de cette app, l’un de ses points forts, est aussi liée à cette restriction. Néanmoins, j’aurais vraiment apprécié une solution pour créer les workflow ailleurs que sur un iPhone ou un iPad. Sur mon Mac, par exemple, même si l’interface actuelle pourrait être améliorée pour répondre à mes critiques.

Ceci est un montage. Cliquer pour agrandir

Le premier workflow que j’ai créé compte 77 actions, toutes piochées une à une dans la liste de gauche et glissée à droite. À ce niveau de complexité, l’app commence à poser de sérieux problèmes. Par exemple, il est impossible de sélectionner plusieurs actions pour les déplacer en même temps, il faut le faire une par une. Quand vous voulez changer la logique du programme et intégrer toute une section à l’intérieur d’une action if/then, vous devez prendre chaque bloc et le positionner au bon endroit.

Pour être tout à fait juste, Workflow permet bien de déplacer plusieurs blocs à la fois, mais en utilisant plusieurs doigts. Sur un iPhone, c’est quasiment impossible et sur un iPad, la gymnastique est beaucoup trop complexe pour que ce soit confortable. Un système de sélection multiple réglerait ce problème, même si, de façon plus fondamentale, Workflow gagnerait à s’inspirer un petit peu plus de l’algorithmique.

Au fil des mises à jour, l’app a gagné des outils avancés, notamment pour ajouter des conditions ou encore des boucles pour traiter chaque élément d’une liste. Néanmoins, ses concepteurs n’ont pas été jusqu’au bout et il n’y a pas le concept de fonction. Ce serait pratique pour prendre quelques briques qui font une action précise, et ensuite pour les réutiliser à divers endroits. Ce serait aussi très pratique pour déplacer rapidement des morceaux entiers du processus, comme l’app le fait d’ailleurs avec ces outils avancés.

Quand vous déplacez une boucle ou une action if/then comme ici, Workflow déplace aussi automatiquement tout ce qu’elle contient. Ce serait le même principe avec des fonctions.

Là aussi, il existe bien une solution, mais elle n’est pas très pratique. Un workflow peut en appeler un autre, et vous pourriez ainsi créer des petits processus de base et constituer le workflow final en les appelant. Pour ma part, je préfère avoir tout un projet en un seul endroit, et ce n’est pas une solution fiable si on veut partager le projet, puisqu’il faut partager tous les processus séparément.

Le concept de fonctions apporterait beaucoup à Workflow et permettait d’aller nettement plus loin, de gagner du temps en réduisant les répétitions tout en simplifiant l’interface. En l’état, les actions sont empilées les unes sur les autres pour former une très longue liste qui devient vite ingérable. Et puis le catalogue d’actions aurait bien besoin d’attention lui aussi. J’ai passé mon temps à chercher des éléments, souvent les quatre ou cinq mêmes.

Workflow nécessite beaucoup de déplacements entre le processus et la liste d’actions, et souvent pour reprendre les mêmes éléments. Cette série d’actions (on récupére une variable, on agit dessus et on enregistre une variable ) est l’une des plus courantes en programmation. L’app oblige à multiplier les allers et retours, surtout sur un iPhone. Cliquer pour agrandir

Sur ce point, l’app pourrait facilement être améliorée. On peut ajouter des actions à ses favoris, mais la liste n’est pas synchronisée d’un appareil à l’autre et il faut la trier à la main (par défaut, c’est par ordre d’ajout). Workflow gagnerait à afficher les actions par fréquence d’utilisation, tout simplement, ou bien offrir un moyen de copier-coller des actions, ce qui serait encore plus simple.

Le partage de workflow reste un problème

La dernière critique que je ferais contre Workflow est assez spécifique à mes besoins. Le processus que j’ai créé n’était pas que pour mon usage personnel, il devait aussi servir à mes collègues. Et c’est là qu’un problème surgit : le partage de workflow n’est pas optimal, loin de là.

Même si un processus peut être sauvegardé comme un fichier depuis l’app, il n’est pas possible ensuite d’ouvrir ce fichier pour l’importer sur un autre appareil iOS. La seule solution de partage est de passer par une URL publique, ce qui est déjà problématique en soi. Une fois publié, le processus peut être utilisé par n’importe qui, ce qui veut dire que vous ne pouvez pas y laisser des informations personnelles.

Par exemple, la clé d’authentification au serveur Gitlab qui nous sert de gestionnaire de tâches ne doit pas être publiée, sinon n’importe qui pourrait utiliser le workflow. Il existe une solution à ce problème toutefois, et elle est bien trouvée. Vous pouvez définir des questions d’import qui permettent à l’utilisateur de saisir des données au moment où il ajoute le workflow à son iPhone et iPad.

Le système de questions posées à l’import est très bien pensé. À gauche, définition des questions avant le partage, à droite réponse aux questions au moment de l’import. Cliquer pour agrandir

Le plus gros problème du partage en l’état actuel, c’est qu’Apple a retiré la publication sur la galerie sans offrir d’alternative. Workflow ne permet plus vraiment de publier quelque chose et de le retrouver ensuite sur son profil. La seule solution est de conserver précieusement l’URL de partage, mais les problèmes ne s’arrêtent pas là.

Plus gênant en effet, on ne peut plus mettre à jour un workflow, ni en supprimer un. Une fois publié, un processus reste constamment disponible dans son état original. Pour modifier le processus, vous devrez le partager à nouveau et obtenir en échange une nouvelle URL. C’est pénible pour l’auteur du script, mais aussi pour les utilisateurs qui ne peuvent pas récupérer la mise à jour sans écraser l’ancienne version ou dupliquer le processus.

Voici à quoi ressemble un workflow depuis son URL de partage. Je mets la date dans la description pour m’y retrouver entre toutes les URL générées successivement… ce n’est pratique pour personne. Cliquer pour agrandir

Espérons qu’Apple a l’intention d’améliorer ce système de partage, c’est un point noir de l’app pour le moment. Au minimum, il faudrait un moyen de charger des workflow depuis n’importe quel emplacement, mais je comprends bien pourquoi Apple refuse de le faire. Tout comme je n’ai aucun espoir pour le suivi des modifications avec Git comme je le fais pour mes AppleScript. Tout est très fermé, essentiellement pour des raisons de sécurité, et cela ne devrait pas changer.

Le partage est une déception, par contre les workflow sont synchronisés d’un appareil à l’autre (sans passer par iCloud, mais toujours par un serveur tiers, bizarrement) et cela fonctionne vraiment bien.

Workflow reste une excellente solution pour automatiser iOS

Tout n’est pas négatif pour autant et certaines fonctions de Workflow sont bien mieux pensées qu’avec AppleScript, Automator ou n’importe quel autre système d’automatisation que j’ai pu tester jusque-là. La gestion des API Web est complète et simplifiée par rapport à un appel avec la ligne de commande curl comme j’ai appris à le faire dans mes scripts macOS.

Dans un autre domaine, la gestion des variables est exemplaire dans Workflow. Ces éléments sont indispensables dans la plupart des cas, ils servent à enregistrer une information puis la modifier et la retrouver à un autre endroit, la combiner avec une autre variable, etc. L’app permet d’enregistrer à peu près n’importe quoi dans une variable et l’exploiter ensuite, mais la vraie bonne idée, ce sont les « variables magiques » ajoutées en début d’année.

Les Magic Variable en action : sélection de la source à gauche, choix d’une option associée à droite. Cliquer pour agrandir

Pour en insérer une, Workflow change de mode et met en avant les variables reconnues automatiquement, en plus de celles que vous définissez. Par exemple, ce que le workflow récupère en entrée est une variable magique, les résultats de recherche sur l’App Store également. Si vous insérez une action pour poser une question à l’utilisateur, le résultat en est une aussi.

Dans certains cas, Workflow peut même aller plus loin. Reprenons l’exemple de l’App Store : la variable magique ne se contente pas de pointer vers toutes les informations, elle propose même de choisir un élément, comme le nom de l’app, son prix ou encore sa description. C’est très pratique et nettement plus rapide qu’en AppleScript, où je dois déchiffrer et trier moi-même les données fournies par l’App Store.

Workflow a des défauts, mais ce sont au fond souvent des points de détail ou des éléments qui peuvent facilement être corrigés. Une partie des problèmes recensés pendant cette expérience tiennent de sa jeunesse et de son équipe très limitée : avant son changement de propriétaire, l’app ne comptait que quatre développeurs.

Workflow a trouvé une place de choix dans le dock d’iOS 11. Cliquer pour agrandir

Certes, on ne sait pas ce qu’Apple en fera et peut-être que toutes les heures passées sur ce workflow et les suivants seront perdues dans quelques mois. Ce n’est pas du temps perdu pour autant et on peut rester confiant : Apple n’a jamais acheté une app ou un service pour ne rien en faire derrière. La plus grande inquiétude est peut-être le calendrier : s’il faut attendre iOS 12 sans aucune mise à jour, l’outil risque de perdre en pertinence.

Rien ne sert de paniquer aujourd'hui toutefois, Apple a peut-être prévu une nouvelle app présentée à l’automne. Workflow revu et corrigé, intégré au cœur d’iOS et enrichi avec l’intelligence artificielle désormais au cœur de la stratégie du constructeur, pourrait être bien meilleur que ce que l’on a aujourd'hui. Et pourquoi pas remplacer au passage AppleScript et Automator sur macOS ?

En attendant d’en savoir plus, Workflow reste la meilleure solution aujourd'hui pour automatiser un appareil iOS. Et malgré ses défauts, l’app permet bien de créer des processus, même complexes, même sur la plage… mon Mac et AppleScript ne peuvent pas en dire autant !

avatar TimeMachine | 

Merci. Excellent article.

avatar yasuo87 | 

Existe-t-il un moyen de programmer l’activation du mode avion la nuit et qu’il se désactive au matin?

avatar veurlatonra | 

@yasuo87

Non.

avatar stefhan | 

Toujours très agréable et utile ce genre d'article, merci Nicolas.

avatar iGeek07 | 

Sympa comme article, pour donner le goût de commencer à "programmer" pour ceux qui ont des tâches simples qu'ils font tout le temps !

avatar C1rc3@0rc | 

Alors Apple avait lancé justement un environnement super simple mais tres puissant des qu'on approfondissait un peu... cela se nommait Hypercard

Sinon pour apprendre a programmer, sur iOS y a tout un tas d'app qui embarquent des environnement de scripting, dont Pythonista mais aussi Swift Playgrounds. Et sur MacOS y a absolument tout (Python Ruby, Squeak, Scratch,...) en plus d'AppleScript (qui peut aussi utiliser Javascript depuis quelques annees) et Automator (automatisation pseudo-graphique)

Ce qui me surprend avec Workflow c'est qu'Apple l'ai pas flingué des le depart parce qu'il viole le principe des applications iOS.

Je pense qu'Apple l'a toleré parce que justement Workflow n'est pas un langage en soit et ne permet pas de faire des "programmes".
Et tant qu'Apple n'autorisera pas la prise de controle de processus sur iOS (processus = application) ce qui ouvrira un acces pour les malware en tout genre, je vois pas comment des vrais environnements d'automatisation pourraient exister.

D'un autre coté, il y a une autre voie qui etait evoquée a un moment: les services. Une application pourrait tres bien offrir des services a une autre (je reve d'un Antidote qui soit capable de faire sur iOS la meme chose que sur Mac). Il faudrait ensuite embarquer un interpréteur comme Python dans l'application et les appels pourraient se faire de manière sécurisé.

Mais bon, la philosophie d'iOS reste un OS pour iDevice, donc complément du Mac et automatiser des devices pose des problemes de principe et de conception... en plus de securité.

avatar iPop | 

@C1rc3@0rc

"Mais bon, la philosophie d'iOS reste un OS pour iDevice, donc complément du Mac et automatiser des devices pose des problemes de principe et de conception... en plus de securité."

Je vois pas ceci de cet œil. Le Mac est ce qui est et a été.
iOS est un système mûrement réfléchi , l'ordinateur que Job rêvait de faire.

avatar C1rc3@0rc | 

@iPop

MacOS est un OS tres elaboré qui herite de 3 sources elles memes tres elaborées:
- Mac OS, l'OS des premiers Mac jusqu'a la version 9 (mais recuperant aussi des pans entiers de l'OS du Lisa)
- NeXT Step, l'OS des stations NeXT, reposant sur Unix
- Unix.

iOS est un derivé, limité, de MacOS. En fait iOS est a 95% MacOS ( avec quelques changements et adaptations, comme la gestion de l'interface tactile au lieu de l'interface clavier+souris et la gestion de la telephonie). Les limitations d'iOS se situent massivement au niveau de l'interface. Mais des qu'on "jailbreak" iOS on retrouve l'acces aux commandes de l'Unix qu'il est.

Pourquoi iOS est aussi limité? Parce qu'il a ete pensé pour animer des devices, dont l'iPhone. Un device c'est un ordinateur qui est volontairement limité en terme de fonctions et d'usage et qui est un complement du Mac dans une logique d'ecosysteme.

Si on prend le premier device, l'iPod, il a pour raison d'etre de permettre l'ecoute de la musique en mobilité, histoire de pas devoir trimbaler son Mac.
Si on prend l'iPhone, il a pour objectif de permettre la communication via des multireseaux et en ultra-mobilité (d'ou les contraintes de manipulations avec une seule main).
iPad est lui destiné a la consommation de contenus en ultramobilité, mais sans l'acces a la telephonie.
AppleTV c'est le hub domestique.

Tous ces devices constituent des complements du Mac et sont dependants du Mac. Pour augmenter ses PDM avec les device, Apple a mis en place iCloud pour ceux qui n'ont pas de Mac ni de Windows. iCloud permet de compenser l'absence de PC dans l'ecosysteme, mais il ne le remplace pas.

Apres, rien n'indique que Jobs revait de faire un ordinateur et iOS est un OS, pas un ordinateur. Par contre toute l'histoire de Jobs montre qu'il etait a la recherche de l'ecosysteme informatique, donnant la puissance informatique a l'individu sans la complexité.

avatar billyclick | 

Sur Workflow, je n'arrive pas à purger une playlist de Musique... quelqu'un aurait une idée? ✌️

avatar iPop | 

@billyclick

DELETE puis CREATE PLAYLIST

De rien ?

avatar billyclick | 

@iPop

Je ne dois pas avoir les yeux en face des trous ?? je ne trouve pas c'est action...

avatar fredseg | 

« Le vrai problème, c'est de trouver des solutions ». Je la garde pour le sujet du bac philo 2018.

avatar mccawley2012 | 

J’ai besoin d’explication : à quoi ça sert exactement d’écrire des scripts ? ( cest une vraie question, pas du troll hein ^^ )

avatar Nicolas Furno | 

@mccawley2012

Automatiser des tâches répétitives. Par exemple, le processus que j’ai créé ici me permet d’ajouter une tâche en un tap ou deux.

Sans cela, il me faudrait copier le nom de la page, ouvrir un site web dans un autre onglet, créer la tâche, coller le titre, revenir sur l’autre page, copier l’URL, changer d’onglet et coller l’URL, et enfin valider l’ajout.

C’est un exemple de ces séries de tâches que l’informatique permet très simplement d’automatiser. Vous n’en avez peut être pas conscience mais vous avez sûrement de quoi automatiser vous aussi.

Pour moi, c’est l’intérêt d’un ordinateur : il doit travailler pour l’utilisateur. Pas l’inverse.

avatar C1rc3@0rc | 

@Nicolas Furno

Si j'ai bien compris, l'equipe de MacG utilise Workflow dans le process de collaboration pour la production des articles.
Il me semble que s'il y a des taches automatiques qui reviennent et qu'elles sont necessaire a plusieurs membres vous etes typiquement dans le cas d'une app d'entreprise.
Ayant un developpeur iOS, pourquoi perdre du temps avec Workflow et se confronter a ses limitations tres rapidement plutot que de demander a votre développeur de faire une application "entreprise"?

Il me semble que c'est dans la philosophie iOS et qu'Apple fournit tout ce qu'il faut pour cela.

avatar Nicolas Furno | 

@C1rc3@0rc

Ce serait une option mais on n’a pas les moyens humains (et financiers s’il fallait embaucher) pour ça. Pour faire simple, voilà la raison. :-)

Au-delà, je suis pas un développeur mais j’aime bien les scripts d’automatisation donc c’est aussi par plaisir. J’ai vraiment créé ce processus en majorité à la plage.

avatar ovea | 

@C1rc3@0rc

Faire de l'application d'entreprise sans profils utilisateurs … aucun intérêt !

Et quand bien même Apple aurait mis en avant le développement avec profil d'utilisation …
c'est du développement utilisateur,
pour juste du mixage de profils
en fonction des contextes d'utilisation,
au cas où on saurait pas encore où ce situe l'Intelligence et tous ses Artifices (IA)

avatar cv21 | 

@mccawley2012

Par exemple au boulot, un script permet de récupérer les données météos et de générer un fichier pour final cut pro (.fcpxml) afin d'avoir le montage "tout fait".

Depuis, en allant plus loin, tout est automatisé : un script en Apple Script va ouvrir une page web qui génère un fichier avec les données météo (en php autre forme de langage script pour faire simple), le script en Apple Script lit les données et lancent les commandes d'un autre outil FFMPEG qui permet au final d'avoir la vidéo de la météo sans action humaine. En résumé, environ une demie heure de travail répétitif exécutée automatiquement.

En résumé, les langages scripts ressemblent à des langages de programmation sauf qu'ils ne s'exécutent pas aussi vite (compilation?). Il sont PEUT-ETRE plus limités pour accéder à de la programmation bas niveau. Ils sont souvent plus simples à comprendre je trouve. Les plus aguerris en informatique pourront nuancer ces dernières remarques.

Sinon, très sympa comme article, peut-être qu'une section programmation/automation Apple Script, automator, swift aurait sa place sur MacG en plus du forum.... Facile à dire.

avatar Pse | 

Merci beaucoup pour l'article. C'est une vrai valeur ajoutée de la part de macG.
En ce qui concerne l'évolution de Workflow je me demande si Apple ne va pas tout fusionner avec Swift pour en faire un langage "global". Pourquoi pas imaginer une évolution du playground qui permettait de coder des scripts facilement (avec des briques de base) et les exporter au sein d'iOS...
La pomme redonne un peu confiance dans ses intentions de vraiment développer iOS comme une véritable alternative à MacOS et rendre donc les iPad aussi productif que pourrait l'être un mac même s'il reste encore du boulot.

avatar Thaasophobia | 

@Pse

je me demande si Apple ne va pas tout fusionner avec Swift pour en faire un langage "global".

Je n'ose pas en réver... Ca serait TOP !

avatar stefhan | 

@Pse

Excellente idée !

Et bien d'accord avec toi sur MacG

avatar FrancoisR | 

Très intéressant, merci !!!

avatar occam | 

Merci, Nicolas. Excellent, comme toujours.

Sacrifier son congé pour nous faire négocier les méandres de la rivière Workflow, voici le genre de don de soi et d’abnégation qui devrait, à terme, vous mener au Panthéon. (Pourvu que vous n’y entriez pas de sitôt.)

Note concernant les limites de Workflow :
Encore une fois, il faut constater que les limites d’un outil assez génial sur iOS n’ont rien d’intrinsèque, mais sont la conséquence d’une volonté précise de la part d’Apple.
En cela, Apple se trompe, lourdement : faire simplet n’est pas faire simple. Ce n’est pas la complexité qui est l’antithèse de la simplicité, mais la complication. Dès que les garde-fous d’un système forcent à recourir à des manoeuvres alambiquées pour effectuer des enchaînements d’opérations simples, le but affiché de la simplicité apparente est miné. On pourrait même dire que l’éthique de la simplicité est discréditée. Car ce n’est pas l’intention qui compte, mais la pratique.

Aujourd’hui, profitant de l’offre éphémère d’un grand distributeur, je suis en train d’éparpiller des Raspberry Pi 3 parmi les gamines et les gamins de ma connaissance (surtout les gamines, avenir de l’informatique). Ce qui, avec Pythonista, est exotique et marginal (quoique excellent et, pour moi, indispensable) sur iOS est naturel et élémentaire sur un Raspberry.
Il est fascinant de voir des gosses, habituées pour la plupart dès leur naissance à la façade lisse et polie d’iOS, découvrir la rugosité du réel et s’émerveiller de la possibilité d’entrevoir les entrailles d’une machine — et d’essayer de comprendre sa logique.

avatar Nicolas Furno | 

@occam

Merci, mais en effet, je suis pas trop pressé pour le Panthéon ! ?

avatar Chris K | 

Bizarrement peut-être, je trouve Workflow nettement plus intuitif qu'Automator. Il manque des trucs c'est vrai : le dernier en date contre lequel je me suis battu c'est l'impossibilité de récupérer les tags perso de l'application Contacts. J'avais mentionné ce manque et ils m'ont répondu qu'ils allaient l'intégrer.. 3 jours avant l'annonce du rachat par Apple.

On va peut-être avoir une bonne surprise avec iOS 11 ?

avatar iGeek07 | 

@Chris K

Déjà si l'application est mise à jour pour supporter complètement iOS11, ça sera une bonne surprise !

avatar ovea | 

Merci MacG pour cet essaie sur l'automatisation/cybernétique possible sur iOS.
******

On n'écrit pas vraiment des scripts … au début.
*
L'observation de nos actions, ou de celle d'un collège sur l'interface graphique répond à des interrogations ou des suggestions en vu d'une réalisation.
**
Idéalement on interroge l'interface graphique GUI dans un programme spécifique qui nous donne les coordonnées URI décrivant un couple URL et URN constitué de la Location et du Non, mais ce couple peut être vide c'est selon.
***
Avec Automator et l'utilisation d'AppleScript, on peut avoir accès à quelques ressources de l'interface graphique GUI de macOS listées dans une bibliothèque, mais pas toutes.
****
Pour avoir un accès plus fin à des ressources enfouies dans l'arbre décrivant l'interface graphique, comme on le ferait avec un arbre de données DOM d'une page Web, il existe d'autre programme indépendant d'Apple qui n'en a jamais fournit l'accès direct à l'utilisateur.
*
Le programme idéalement enregistre réellement les URI cliqués, glissé et toute interaction sur la GUI (graphic user interface) de l'utilisateur en une succession ré-exécutable telle qu'elle … et c'est la que des bizarreries arrivent, presque tout le temps.
*****
Trouver les fonctionnalités qui se cachent derrière certain gestes est obligé presque partout sur la GUI, car quand les étapes successives à l'écran sont sautées en raison d'événements insolites que l'utilisateur doit prendre en compte, au milieu/pendant/pas du tout, … ça marche plus.

avatar josselinrsa | 

Encore un excellent article! Merci!

avatar aunisien | 

Concrètement dans la vidéo quelles sont les tâches qui sont exécutées car je n'ai le temps de rien voir (je veux pas faire mon vieux rabat-joie)

avatar christopher.saez | 

Enorme retour d'experience, thx :)

avatar ElFitz | 

On peut aussi faire de chouettes MVP avec ça :-)
Juste pour tester soi-même et faire essayer des connaissances

avatar zoubi2 | 

"Avant de découvrir macOS, je n’avais jamais eu l’idée d’utiliser un script et encore moins d’en écrire pour réaliser une tâche simple et répétitive"

Rrrhhooo.... C'est les .BAT qui ne vont pas être contents :-)

avatar pocketalex | 

J'ai découvert Workflow avant le rachat par Apple

Un exemple très con de tache répétitive: quand j'utilise l'iPad au lit, la pièce est tellement noire que même avec la luminosité au min, il y a trop de lumière balancée par l'écran

Un moyen de gagner encore en assombrissement consiste à baisser le point blanc, pour cela il faut aller dans les réglages > general > accessibilité > adapter l'affichage > réduire le point blanc

ça prend quelques secondes, mais c'est très répétitf, alors j'ai sauté sur workflow pour automatiser ça

et la .. ben il fait pas

Bon, j'ai une autre tache qui est très casse burette au quotidien : le partage de connexion.

C'est LE truc sur lequel Workflow va me sauver la vie car le partage de connexion c'est plein de truc à faire pour que ça fonctionne :

> Activer le wifi qui est bien sur désactivé au quotidien (normal, sinon l'iphone fonctionne mal et me met des batons dans les roues)
> désactiver le partage si il est activé
> réactiver le partage

On peut se passer de tout cela pour partager sa connexion, mais comme ça ne marche pas, et que ça marche parfaitement si l'on suit ces actions, les automatiser serait un pur bonheur
Cela me permettrait, en un tap sur mon iPhoone, d'avoir dans mon macbook la connexion partagée qui apparaitrait dans le menu wifi 100% fonctionnel (c'est mieux que 30% non ?)

Eh ben c'est pas possible non plus

Bref, appui long sur l'icone Workflow, une croix apparait, je clique sur la croix

avatar iPop | 

Moi je voulais créer un truc : copier un PDF sur iBook, transféré sur Google Drive et disque externe. Et bien pas possible.

avatar legrandben | 

Pour débuter j'ai fait un workflow (widget) tout simple mais bien efficace qui permet de lancer mes playlists favorites depuis le notification center. Plus besoin de déverrouiller et d'aller dans musique. (le widget musique étant pas top) Au volant c'est particulièrement agréable.

avatar ovea | 

Apple en automation me prend le pot et ce qu'il y a dedans maman ! Qu'est-ce que je peux faire pour attraper la cuillère ?

avatar Jay69 | 

Bonsoir ,
Je n’arrive pas encore , C’est possible d’avoir un liens iCloud pour raccourcis , comme vous faites dans la petite vidéo , qui permet d’avoir les dernière News de Macg directement avec Siri svp ? ? je suis très intéressé ?? ?
Merci à vous .

CONNEXION UTILISATEUR