Même si le développement en Swift n’est pas limité aux ordinateurs conçus par Apple, le langage étant open-source depuis (quasiment) sa création, il peut servir depuis bien des années sur Linux et Windows. Le code source peut également être écrit dans n’importe quel éditeur sur n’importe quel système, en revanche la compilation d’une app iOS demande des ressources qui restent exclusives au Mac, voire à Xcode, l’environnement de développement fourni par Apple. Le projet xtool vise justement à corriger cela en proposant une solution pour créer une app destinée à iOS depuis un ordinateur sous Linux ou Windows.

Même si on peut aussi installer xtool sous macOS, tout l’intérêt est de le faire sur le système d’exploitation de Microsoft ou une distribution GNU/Linux. La procédure à suivre est assez longue, puisqu’il faut non seulement installer Swift lui-même, il faut prévoir tout le nécessaire pour communiquer avec un appareil iOS via l’USB et il faut télécharger une copie de Xcode, qui fournira des ressources indispensables. Un compte Apple est nécessaire, payant si on veut soumettre les apps à l’App Store, cela ne change rien de ce côté.
Une fois que tout est installé, vous pourrez utiliser xtool dans un terminal pour créer un projet, le compiler pour le faire tourner sur un appareil iOS relié à l’ordinateur en USB. L’outil se charge de la partie signature et de l’installation sur l’iPhone ou iPad. Faute de simulateur comme on en a sur un Mac, ce sera la seule méthode pour tester l’app et valider des changements. Le fichier signé généré par le projet pourra être soumis à Apple, même s’il faudra le faire avec un autre outil, comme Fastlane.
Précisons que cette alternative aux outils fournis par Apple est encore jeune et qu’elle ne permet pas de tout gérer. Plusieurs restrictions importantes sont listées sur le forum officiel de Swift, où le projet a été présenté. Il manque ainsi les catalogues de ressources (asset catalogs), il n’y a aucune trace d’Interface Builder pour créer des interfaces visuellement, il faut oublier une partie des fonctionnalités qui ne sont pas dans la partie open-source de Swift et les App Extensions, qui permettent de créer les widgets notamment, ne sont pas gérées pour le moment.
Il faut souligner qu’un seul développeur travaille sur xtool, ce qui limite forcément les possibilités. Maintenant que le projet est public, d’autres le rejoindront peut-être pour contribuer à son développement. Le code source, majoritairement lui-même en Swift, est distribué sur GitHub.