Swift a dépassé les limites de l'écosystème Apple
\n\nPendant longtemps, le langage Swift a été exclusivement associé à iOS, macOS et watchOS. Si vous souhaitiez créer une application pour Android ou un serveur web, vous utilisiez Java, Kotlin ou Python. Mais les temps ont changé. Aujourd'hui, le développement multiplateforme en Swift n'est plus une expérience de passionnés, mais une industrie mature avec un support au niveau du noyau Linux, des outils officiels d'Apple et une communauté active.
\n\nDans cet article, nous allons voir comment coder en Swift pour Windows, Linux, Android et même pour le web. Vous découvrirez des exemples de code concrets, les frameworks Vapor et SwiftUI, ainsi qu'une feuille de route pour démarrer. C'est parti !
\n\nPourquoi Swift ? Trois raisons de sortir du cadre Apple
\n\n1. Performances et sécurité mémoire
\nSwift est un langage compilé avec un comptage automatique de références (ARC). Il offre une vitesse proche de celle du C++, tout en protégeant contre les fuites mémoire et les erreurs de pointeur nul au niveau de la compilation. C'est crucial pour les applications serveur et de bureau.
\n\n2. Syntaxe moderne
\nProtocoles, extensions, génériques, types optionnels — Swift a absorbé le meilleur de la programmation fonctionnelle et orientée objet. Le code est concis et lisible.
\n\n3. Base de code unique
\nEn écrivant la logique une seule fois en Swift, vous pouvez l'exécuter sur iOS, Android (via Swift Android Toolchain), Linux, Windows et même dans un navigateur (via WebAssembly). Cela réduit les coûts de maintenance et accélère le déploiement sur de nouvelles plateformes.
\n\nOutils pour le développement multiplateforme en Swift
\n\nAvant d'écrire du code, voyons quels outils sont nécessaires. Voici la pile technologique de base pour le développement multiplateforme en Swift en 2025 :
\n\n- \n
- Swift Package Manager (SPM) — le gestionnaire de paquets standard, fonctionne sur toutes les plateformes. \n
- Vapor — le framework web le plus populaire en Swift. Logique serveur, API REST, WebSockets. \n
- SwiftUI — framework d'interface utilisateur déclaratif. Sur macOS et iOS, il fonctionne nativement ; sur d'autres plateformes, via
SwiftUI-WebouTokamak. \n - Swift for TensorFlow / NumPy — apprentissage automatique et calculs scientifiques. \n
- Android NDK + Swift Android Toolchain — compilation de code Swift pour Android. \n
- WebAssembly (WASI) — exécution de Swift dans un navigateur. \n
Écrire un serveur en Swift avec Vapor (Linux / macOS / Windows)
\n\nCommençons par le plus simple et utile : un serveur web. Vapor est un équivalent mature d'Express.js ou Flask, mais en Swift. Le code fonctionne sur Linux, macOS et Windows (via Swift 6).
\n\nInstallation de Vapor
\nbrew install vapor # macOS\ncurl -sL https://apt.vapor.codes/install.sh | bash # Linux\n# Windows : installez Swift 6, puis vapor via SPM\n\nAPI REST simple avec Vapor
\nCréons un projet et écrivons un endpoint pour gérer des tâches (ToDo) :
\n\n// Sources/App/routes.swift\nimport Vapor\n\nfunc routes(_ app: Application) throws {\n // GET /hello\n app.get("hello") { req -> String in\n return "Bonjour, Swift multiplateforme !"\n }\n\n // GET /tasks\n app.get("tasks") { req -> [String] in\n return ["Apprendre Swift", "Écrire un article", "Lancer sur Android"]\n }\n\n // POST /task\n app.post("task") { req -> String in\n let task = try req.content.decode(Task.self)\n return "Tâche ajoutée : \\(task.title)"\n }\n}\n\nstruct Task: Content {\n let title: String\n let isCompleted: Bool\n}\n\nLancez le serveur avec la commande vapor run et ouvrez http://localhost:8080/hello. Vous verrez un message de bienvenue. Ce même code fonctionne sans modification sur Ubuntu, Windows Server et macOS.
Swift pour Android : écrire une bibliothèque native
\n\nBeaucoup considèrent