Si vous avez cherché une app de capture de code pour iPhone, vous attendiez sans doute un comparatif. Dix apps, un tableau, un gagnant.

Il n'y en a pas à écrire. Cherchez, et vous trouverez des outils web à ouvrir dans Safari, et des éditeurs de code qui colorent la syntaxe sans produire d'image partageable. La catégorie qui abonde sur le bureau n'existe presque pas en tant que logiciel iPhone natif.

C'est un manque étrange pour quelque chose que tant de développeurs font, et il vaut la peine de le comprendre avant de vous contenter du premier onglet qui se charge.

Transparence avant d'aller plus loin : nous faisons Codeshot, l'une des rares options natives, et elle n'est pas gratuite. La dernière section dit qui ne devrait pas l'acheter. La voici sur un iPhone, pour que vous sachiez ce qui est défendu ici :

Codeshot sur un iPhone : un extrait de code rendu sur un fond en dégradé, avec les réglages de thème et d''arrière-plan en dessous

Ce que vous trouvez réellement

Des outils web. Carbon.now.sh, ray.so, et une longue traîne de sites similaires. Ce sont les vrais titulaires du terrain. Ils fonctionnent sur un téléphone au sens où la page se charge.

Des éditeurs de code. Textastic et Koder sont de très bonnes apps iOS natives qui colorent le code. Aucune ne cherche à produire une image mise en forme pour un post — ce n'est simplement pas le rôle d'un éditeur.

Très peu de choses entre les deux. Ce vide est tout le sujet de cette page.

Pour être juste avec l'App Store : il est vaste, et il existe peut-être quelque chose que ni nous ni une recherche ne feront remonter. Mais le fait qu'il faille chercher est déjà le constat. Sur le bureau, cette catégorie est encombrée jusqu'à la parodie.

Pourquoi ce vide existe

Pas parce que personne n'en veut. À cause de ce que la chose coûte à construire.

Un outil de capture de code, ce sont trois pièces qui doivent s'accorder. Une coloration syntaxique couvrant assez de langages pour être utile — donc livrer et maintenir un jeu de grammaires, pas écrire une expression régulière. Un moteur de rendu qui compose le texte avec la bonne police, les bons espacements et le bon habillage de fenêtre, et produit les mêmes pixels à chaque fois. Une chaîne d'export qui met à l'échelle proprement et transmet l'image là où elle va.

Sur le web, les trois sont quasi gratuites. Le navigateur a déjà un moteur de rendu, highlight.js tient dans une balise script, et l'export est un canvas. C'est pourquoi Carbon existe, et pourquoi la douzaine d'outils qui ont suivi sont aussi des pages web : le coût marginal du suivant est très faible.

En natif, c'est l'inverse. Vous apportez votre coloration, votre mise en page de texte, votre rendu. Et contrairement à un outil web, vous ne livrez pas un correctif en poussant sur une branche.

L'incitation a donc toujours pointé vers le navigateur. Les apps qui sont passées au natif sont allées là où le natif paie : les éditeurs, où il faut de toute façon un vrai traitement du texte.

Ce qui casse quand un outil web rencontre un téléphone

Rien de spectaculaire. De la friction, trois fois, à chaque fois.

Faire entrer le code. L'éditeur est une zone de texte web. Les poignées de sélection, le curseur et la correction automatique se comportent comme dans n'importe quel autre champ web sous iOS, c'est-à-dire pas comme un éditeur de code.

Régler quoi que ce soit. Le parti pris de Carbon est que tout est réglable : thème, police, remplissage, fond, échelle. Sur un bureau, c'est une rangée de menus qu'on survole. Sur un téléphone, ce sont de petites cibles à chercher, dont chacune masque l'aperçu que vous ajustez. ray.so survit mieux à cela précisément parce qu'il propose moins.

Faire sortir l'image. L'export est un téléchargement navigateur. Sous iOS, cela veut dire que le fichier atterrit quelque part et que vous allez le chercher, au lieu de passer directement dans l'app d'où vous publiiez.

Une fois par mois, rien de tout cela n'a d'importance. Chaque semaine, ce sont les trois mêmes combats.

Ce que le natif apporte vraiment

Trois choses, et toutes concernent les extrémités plutôt que le milieu.

Le presse-papiers tient en un geste. Le presse-papiers universel fait que l'extrait copié sur le Mac est déjà sur le téléphone. Une app native peut le prendre directement.

L'export va dans la feuille de partage. Pas un téléchargement — droit dans Messages, Slack, un brouillon, Fichiers ou la photothèque.

Vos réglages persistent. Thème, arrière-plan et format sont encore ceux que vous avez choisis la dernière fois, ce qui explique l'essentiel de pourquoi la dixième image prend des secondes et non des minutes.

Il y en a une quatrième qui compte pour certains et pas du tout pour d'autres : votre code n'entre jamais dans une page web. Si vous collez du travail client ou une fonctionnalité non sortie, cette nuance peut compter pour quelqu'un au-dessus de vous même si elle ne compte pas pour vous.

Alors, que faut-il utiliser

De temps en tempsray.so dans Safari. Gratuit, assez peu d'options pour qu'un petit écran ne devienne pas un problème, résultat correct. Un outil gratuit dont vous vous servez deux fois par mois n'a pas besoin d'être remplacé.

Surtout à un bureau — Carbon.now.sh sur votre Mac, et arrêtez d'essayer sur le téléphone. Il est gratuit, open source et excellent là où il a été conçu pour être utilisé.

Régulièrement, depuis le téléphone — c'est le cas pour lequel le natif existe. Codeshot est une app native pour Mac et iPhone : collage depuis le presse-papiers en un geste, 30 thèmes de syntaxe, 60 langages détectés depuis le code lui-même, formats de 1:1 à 9:16, et export dans la feuille de partage.

Jamais — la capture d'écran intégrée. Elle enregistre la largeur de votre téléphone plutôt que celle de votre code, et les lignes sont déjà repliées avant que vous n'appuyiez.

Qui ne devrait pas acheter la nôtre

Elle coûte 5,99 $ et elle est réservée aux appareils Apple. Tous les outils web de cette page sont gratuits et tournent partout.

Si vous faites une image de code par mois, ray.so est la bonne réponse et nous préférerions que vous l'utilisiez. Si vous n'êtes ni sur iPhone ni sur Mac, la question ne se pose pas. Et si vos images se font toujours à un bureau, Carbon sur ordinateur est gratuit et très bon.

L'argument en faveur d'une app native est étroit et précis : vous le faites souvent, vous le faites depuis votre téléphone, et la friction vous coûte désormais plus que l'app.

Si c'est votre cas, Comment capturer du code sur iPhone fait le tour de la question, et Carbon.now.sh sur iPhone creuse ce qui casse dans le navigateur.