Students Save 30%! Learn & create with unlimited courses & creative assets Students Save 30%! Save Now
Advertisement
  1. Code
  2. Swift
Code

Comment coder avec Swift sur le serveur

by
Difficulty:IntermediateLength:MediumLanguages:

French (Français) translation by honeymmmm (you can also view the original English article)

Final product image
What You'll Be Creating

Depuis que Apple a introduit Swift comme successeur d'Objective-C, il a révolutionné la façon dont la communauté code les applications iOS, macOS, watchOS et tvOS. Lorsque Swift est devenue une plate-forme open source, elle a ouvert de nouvelles possibilités pour le langage au-delà des applications mobiles et côté client. Swift est également devenu un langage serveur! Dans ce tutoriel, vous apprendrez ce qu'est Swift côté serveur et pourquoi vous voudriez avoir Swift sur votre back-end.

L’initiative Swift côté serveur est lancée par trois projets de premier plan - Vapor by Qutheory, IBM Kitura et Perfect - dans le but de permettre aux développeurs Swift de créer des services back-end à part entière. Cela, en substance, transformera ces développeurs en développeurs à part entière, éliminant la nécessité de s’appuyer sur Node ou PHP ou de donner le contrôle à une plate-forme BaaS telle que Firebase de Google.

Objectifs de cet article

Dans cet article, vous apprendrez tout sur Swift côté serveur. Je vais d'abord vous expliquer comment fonctionne Swift côté serveur, puis je vais vous montrer comment démarrer avec les frameworks Kitura, Vapor et Perfect.

Qu'est-ce que Swift côté serveur?

Swift a été annoncé pour la première fois par Apple en 2014 et est rapidement devenu l'un des langages de programmation les plus dynamiques. Swift puise dans les meilleurs langages contemporains, tels que Python, pour une élégance et une facilité d'utilisation. Il libère les ingénieurs des entraves techniques d'Objective-C, permettant un travail plus fluide et intuitif.

En décembre 2015, Apple a fait une autre annonce monumentale et a créé le langage Swift, avec ses bibliothèques, son débogueur et son gestionnaire de paquets, un projet open source sous Apache 2.0 license, ouvrant la plate-forme au public pour créer des requêtes contribuer. L'abandon d'Objective-C a non seulement attiré les nombreux développeurs d'Objective-C contribuant à l'App Store, mais a également facilité l'entrée de développeurs de toutes compétences et de tous horizons dans l'écosystème Apple avec Swift.

Toutefois, alors que les outils de développement d’Apple facilitaient depuis longtemps la création d’applications visuellement attrayantes et attrayantes pour les développeurs, les projets nécessitaient toujours des développeurs spécialisés pour créer des applications complexes basées sur des données. Ainsi, les développeurs iOS et macOS devront soit faire appel à un développeur Python, PHP ou Node pour créer leur base de données back-end ou acquérir eux-mêmes les compétences, ce qui se traduira par une charge de travail plus importante pour atteindre les objectifs de leurs projets.

Bien que le back-end-a-a-service (BaaS) soit venu à la rescousse des développeurs iOS, avec des solutions dorsales sans code telles que Firebase de Google et CloudKit d'Apple, elles simplifient le back-end, beaucoup les équipes et les projets exigent plus. C'est là qu'intervient Swift côté serveur, ce qui vous permet de créer un serveur back-end multi-thread à part entière, open-source et configurable à l'infini.

Swift côté serveur vous permet de choisir comment vous hébergez votre serveur principal, que ce soit avec AWS, RackSpace ou vos propres serveurs physiques. Vous pouvez également choisir comment équilibrer vos serveurs (par exemple, via des solutions serveur populaires telles que NGINX) et comment conserver vos données dans une base de données (solutions NoSQL telles que MongoDB ou bases de données traditionnelles telles que Postgres, MySQL ou Oracle). . Non seulement cela, mais vous n'êtes jamais lié à une solution à un composant - vous pouvez basculer sans affecter l'ensemble du code de votre application.

Le fait est que, en optant pour une solution Swift côté serveur open-source, telle que Vapor by Qutheory, Kitura d'IBM ou Perfect, vous profitez d'une vaste gamme de plug-ins qui vous permettent de configurer votre back-end comme vous le souhaitez. en utilisant les compétences de votre équipe existante dans Swift pour le faire.

Swift côté serveur semble certainement convaincant, mais quel cadre est fait pour vous? Ensuite, nous examinons chacun d'eux, en commençant par Kitura.

Commencer avec Kitura

Vue d’ensemble

Depuis Kitura, vous avez une plate-forme qui a été lancée en février 2016 et qui a gagné en popularité la même année lors de la WWDC d’Apple.

De manière générale, Kitura se concentre sur la convention plutôt que configuration : il construit votre projet initial avec talons, avant que vous optez pour les bibliothèques et frameworks spécifiques vous cherchez à construire. Mécanisme d’authentification de le Kitura est pris en charge par son propre cadre de middleware de Kitura-Credentials d’identification, vous permettant de choisir parmi un assortiment de mécanismes d’authentification, du nom d’utilisateur/mot de passe traditionnel à connexion de médias sociaux et fédéré authentification, en utilisant OpenID qui gère JSON Web Tokens (JWT).

La solution ORM de base de données de Kitura est propulsée par Kuery pour masquer les complexités de SQL directement, en prenant en charge les bases de données relationnelles courantes telles que MySQL, SQLite et PostgreSQL, ainsi que d’autres bases de données, y compris les bases de données NoSQL.

Kitura fournit également d'autres plugins utiles pour des choses telles que la création de modèles HTML, en utilisant des plugins populaires tels que Stencil et Markdown. Venant d’IBM, l’infrastructure côté serveur bénéficie également d’une connectivité intime avec les API IBM Watson, ainsi que de la prise en charge native de macOS pour l’intégration directe dans leur plate-forme cloud Bluemix. Cela fournit une option supplémentaire à votre disposition, ainsi que vos autres options de déploiement traditionnelles sur les serveurs Linux / Unix et macOS.

Bien que la plate-forme fournisse certainement un ensemble unique de fonctionnalités, de Kuery à la possibilité d’intégration aux diverses bibliothèques d’API IBM, elle n’a pas la puissance de la communauté. Adopter Kitura nécessite d’apprécier et d’adopter ses propres façons de faire non conventionnelles, de la manière dont Kuery fonctionne à ses mécanismes d’authentification. Cependant, étant donné qu’elle est soutenue par une grande entreprise axée sur l’entreprise, des garanties d’avenir sont intégrées.

Kitura documentation page

Installation et exécution de Kitura

Le moyen le plus rapide de commencer consiste à utiliser l’interface de ligne de commande (CLI) de Kitura, prise en charge à la fois par macOS et Linux. En utilisant l'utilitaire de gestion de paquets populaire Homebrew, installez Kitura et Kitura CLI en entrant les éléments suivants:

Dans un dossier vide que vous utiliserez comme projet, exécutez les opérations suivantes pour initialiser votre projet:

Lorsque vous avez fini de générer votre application squelette, vous remarquerez un nouveau projet appelé HelloKitura.xcodeproject. Vous pouvez en apprendre davantage sur la génération de projets en vous référant à la documentation officielle de Kitura. Vous pouvez ouvrir le projet nouvellement généré dans Xcode et modifier la classe d'application principale, Application.swift, pour gérer tous les appels à la racine de votre serveur http:// localhost:8080/ URL:

L'extrait de code ci-dessus répond en retournant le classique Hello,World!. Avant de pouvoir enfin exécuter le projet, changez votre schéma Xcode pour qu'il pointe vers HelloKitura (votre projet actif) et lancez votre projet en appuyant sur Commande-R. Pendant que votre serveur est en cours d'exécution, dans un navigateur de votre choix, accédez à http://localhost:8080 et vous devriez voir le texte de bonjour dans votre navigateur.

Informations complémentaires

Consultez les liens suivants pour plus d'informations sur Kitura.

Démarrer avec Vapor

Vue d’ensemble

Sorti quelques mois plus tard que Kitura, en septembre 2016, Vapor by Qutheory est largement considéré comme le plus populaire en termes de taille de communauté et de nombre de plugins. Il s’appuie sur l’architecture Swift-nio d’Apple, ce qui en fait un véritable moteur de performance. Contrairement à Kitura et à d’autres plates-formes, qui ne sont pas construites uniquement dans Swift, mais plutôt sur Node.js ou d’autres analyseurs intermédiaires, Vapor se détache de ces dépendances pour fournir un analyseur Swift et fournir des API claires et lisibles.

Vapor documentation page

Vapor fournit un support complet des bases de données pour les fournisseurs SQL tels que MySQL et PostgreSQL, ainsi que les fournisseurs NoSQL tels que Redis et MongoDB, comme Kitura. Alors que Kitura dispose de sa propre solution Kuery ORM, Vapor tire parti de Fluent ORM pour prendre en charge les bases de données que je viens de mentionner, ce qui facilite l’extension de l’ORM à d’autres fournisseurs de bases de données tiers. Vapour se sépare des autres frameworks en prenant en charge de manière native le service de notification push d’Apple, ainsi que le support du protocole SMTP pour envoyer des notifications par courrier électronique.

Alors que Kitura implémente son propre framework d’authentification, Vapor intègre la bibliothèque d’authentification de Stormpath Turnstile. À l'instar de Kitura, la plate-forme prend également en charge les modèles Moustache et Markdown, ainsi que son propre langage de modélisation expressif natif Swift, Leaf. Vapor dispose également de son propre moteur CLI, à l'instar des autres frameworks Swift côté serveur, avec la possibilité d'étendre les arguments de ligne de commande de l'application avec des indicateurs personnalisés.

Installation et exécution

Pour commencer avec Vapor, commencez par installer la boîte à outils Vapor, qui comprend toutes les dépendances de la bibliothèque et le toolkit CLI. Installez-le avec Homebrew en entrant les informations suivantes dans le terminal:

Une fois l'installation terminée, vous pouvez confirmer que Vapor a bien été installé en tapant vapor-help. Pour créer un projet, tapez ce qui suit en remplaçant par votre propre nom de projet:

Le moteur Vapor va construire une structure de dossier ressemblant à ceci:

Pour créer réellement un projet Xcode, vous devrez également entrer explicitement la commande suivante, à partir du dossier du projet:

Enfin, pour créer et exécuter votre projet, à partir de Xcode, sélectionnez le schéma Run ainsi que le périphérique cible de déploiement de My Mac, puis appuyez sur le bouton Run comme vous le feriez pour tout autre projet Xcode. Si votre projet Xcode ne rencontre aucune erreur, vous devriez voir le message de confirmation suivant dans le terminal:

Allez-y et entrez cette URL dans le navigateur de votre choix, et vous devriez voir votre application en cours d'exécution.

Plus d’informations

Consultez les liens suivants pour plus d'informations.

Commencer avec Perfect

Vue d’ensemble

Enfin, nous examinons Perfect de PerfectlySoft, une plate-forme côté serveur riche en fonctionnalités comme Vapor et Kitura. Perfect inclut les mêmes fonctionnalités que celles que vous trouveriez sur les fournisseurs précédents, de la création de modèles avec Moustache ou Markdown à la mise en réseau avec des sockets Web, ainsi que des notifications Push Apple et SMTP.

Perfect documentation page

Comme les autres plates-formes côté serveur, Perfect possède sa propre implémentation ORM, la plate-forme StORM (Perfect StORM), qui prend en charge nativement MySQL, PostgreSQL et d'autres bases de données relationnelles importantes, ainsi que MongoDB, Redis et d'autres solutions NoSQL. Une omission notable de Perfect est une CLI, mais le framework compense cela avec une application macOS native.

Tout comme Vapor, Perfect a également intégré Turnstile à son mécanisme d’authentification, étendu pour interagir plus étroitement avec StORM. Une autre distinction que cette solution a par rapport aux autres réside dans la plupart des bibliothèques d'utilitaires natives prises en charge, y compris leur propre wrapper cURL, ainsi que des outils permettant de travailler avec des fichiers et des dossiers. La base de développeurs de Perfect est la deuxième plus importante, presque à égalité avec Vapor, ce qui signifie que vous avez une communauté solide pour soutenir cette plate-forme, ainsi qu'un riche ensemble de ressources pédagogiques pour vous donner la confiance si vous la choisissez.

Installation et exécution

Se mettre au travail avec Perfect est vraiment simple. D'abord, clonez le dépôt PerfectlySoft en entrant les éléments suivants:

À partir du dossier cloné, créez le projet:

Enfin, exécutez le projet, qui exécutera un serveur local à l'adresse 0.0.0.0:8181:

Vous pouvez également exécuter votre projet sur Xcode en générant d'abord un nouveau projet, comme suit:

Dans Xcode, assurez-vous que votre cible exécutable est dirigée vers My Mac avant de créer et d'exécuter le projet.

Informations complémentaires

Consultez les liens suivants pour plus d'informations sur le framework Perfect.

Conclusion

La publication de Swift auprès de la communauté open-source a suscité une poussée en faveur des solutions Swift au-delà des applications clientes, les infrastructures de serveurs back-end devenant la prochaine frontière. Soutenu par trois projets importants - Vapor by Qutheory, IBM Kitura et Perfect -, Swift côté serveur a permis aux ingénieurs iOS (et macOS) de devenir des développeurs à part entière. Cela peut annuler la dépendance vis-à-vis des ingénieurs backend Node.js, PHP ou .NET. Swift côté serveur permet également aux équipes de contrôler leur back-end sans avoir à recourir à des solutions back-end-as-a-mobile telles que Firebase ou CloudKit.

Swift côté serveur n'est pas à la portée de tous: vous devez décider du niveau de contrôle dont vous avez besoin pour votre back-end et savoir si vous avez tout intérêt à le faire. De plus, je n'ai pas essayé de vous dire quelle solution Swift côté serveur est la meilleure. Les développeurs ont certainement l'embarras du choix, et tous trois offrent une approche unique et mature et méritent d'être expérimentés. Je vous encourage à jouer avec chacun des exemples de codes, à évaluer la syntaxe et à vous engager avec leurs communautés respectives pour voir quelle solution vous convient le mieux.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.