IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Skip : Construire des applications natives iOS et Android à partir d'une base de code Swift unique
Skip utilise le langage de programmation moderne Swift et l'EDI Xcode

Le , par Jade Emy

284PARTAGES

5  0 
Skip permet de construire des applications natives iOS et Android à partir d'une base de code Swift unique. En utilisant le langage de programmation moderne Swift et l'EDI Xcode, Skip gère automatiquement la version Android du code pour construire des applications véritablement natives pour iOS et Android.

Le marché des applications mobiles est divisé entre iOS et Android. Négliger l'une ou l'autre de ces plateformes revient à laisser de côté un grand pourcentage d'utilisateurs potentiels. Selon certains rapports, les applications sont généralement conçues d'abord pour iOS. Les clients demandent une application iOS, puis s'attendent à un portage sur le Play Store. Les grandes entreprises technologiques conçoivent d'abord leurs applications pour iOS, puis les adaptent à Android.

Skip est une nouvelle technologie de création d'applications natives iOS et Android conçue pour l'écosystème des applications iOS d'abord. Avec Skip, vous travaillez dans Xcode, en écrivant en Swift et SwiftUI. Pour rappel, Swift est un langage de programmation compilé de haut niveau, polyvalent et multi-paradigme, créé en 2010 pour Apple Inc. et maintenu par la communauté open-source. La version 5.10 de Swift améliore le modèle de concurrence du langage, permettant une isolation complète des données pour éviter les courses de données (data race).

L'objectif de Skip est de disparaître en arrière-plan, pour offrir une expérience de développement iOS sans compromis, tandis que son plugin Xcode gère automatiquement la version Android, en générant le code Android équivalent. Skip peut être utilisé pour des bouts de logique et d'interface utilisateur partagés, pour l'ensemble d'une application, ou pour tout ce qui se trouve entre les deux.


Voici le message d'un de ses développeurs :

Je m'appelle Marc et je fais partie de l'équipe qui a créé skip.tools. Skip est un outil qui transpose votre application iOS SwiftUI en une application Kotlin Jetpack Compose, et vous permet d'utiliser un seul langage pour créer une application complète qui atteint l'ensemble du marché mobile.

Qu'est-ce que c'est ? Skip se distingue des autres outils de développement multiplateforme tels que Flutter, React Native et Xamarin, car il permet de créer des applications véritablement natives pour les deux plateformes mobiles dominantes. Il n'intègre pas de moteur ou de runtime distinct dans votre application, mais vous permet d'utiliser Swift et SwiftUI pour créer la partie iOS de l'application (conformément aux meilleures pratiques recommandées par Apple pour la création d'applications iOS), et la transpose dans une application Kotlin et Jetpack Compose pour la partie Android (ce qui correspond aux recommandations de Google pour la création d'applications Android). Ainsi, votre application utilisera des contrôles natifs de la plateforme et bénéficiera automatiquement de tous les avantages offerts par le fournisseur de la plateforme : animations, accessibilité et évolution à l'épreuve du temps avec les mises à jour du système d'exploitation.

Fonctionnement : vous créez une application Skip à l'aide des mêmes outils que ceux utilisés pour créer une application iOS standard : Xcode, Swift et SwiftUI. Skip complète ce flux de travail avec un plugin Swift Package Manager appelé « skipstone », qui transpose votre Swift en Kotlin à chaque fois que vous créez votre application, et lance l'application Android côte à côte avec l'application iOS à chaque fois que vous exécutez l'application. La transpilation fonctionne non seulement sur votre module d'application principal, mais traite également de manière transitive tous vos modules SwiftPM dépendants, de sorte que vous pouvez décomposer des projets complexes en sous-modules testables individuellement contenant la logique commerciale ou le code de l'interface utilisateur. C'est d'ailleurs ainsi que sont structurés nos propres modules adaptateurs pour les frameworks standards : SkipFoundation adapte le framework Foundation et SkipUI adapte le framework SwiftUI, de sorte que la même API familière peut être utilisée lors de la construction de l'application. Il existe également un écosystème GitHub de modules open-source prenant en charge les frameworks les plus courants, notamment SQLite, Firebase, Lottie et bien d'autres éléments constitutifs des applications modernes.

Au cours de l'année écoulée, Skip a évolué pour devenir une solution complète permettant de créer les meilleures applications pour iOS et Android. Aujourd'hui, nous sommes ravis d'annoncer la sortie de la version 1.0, qui est donc prête à être utilisée en production.

https://youtu.be/rfo3Mci63ts

Comment Skip peut concevoir des applications natives iOS et Android en même temps ?

Au cœur de Skip se trouve son transpileur intelligent du langage Swift vers Kotlin. Le transpileur utilise la bibliothèque SwiftSyntax d'Apple - la même bibliothèque que celle utilisée pour les macros Swift - pour analyser le code source Swift. Il convertit ensuite le code en Kotlin agréable et lisible par l'homme, en conservant les commentaires.

Grâce aux similitudes entre les langages, le résultat n'est souvent pas différent du Kotlin. Une exception notable est la transposition de SwiftUI dans Compose. SwiftUI implique une bonne part de magie du compilateur Swift, et il n'y a aucun moyen de la cacher dans la transpilation Kotlin.

En plus du transpileur, Skip fournit un convertisseur de projet Swift Package Manager (SwiftPM) vers Android Gradle. Skip regroupe ces outils dans un plugin de construction Xcode, que l'équipe de Skip surnomme SkipStone.

Traduire le code source et les paquets SwiftPM n'est toutefois pas suffisant. Les applications reposent sur des éléments de base tels que la bibliothèque standard Swift, Foundation et SwiftUI. Les bibliothèques open source Skip fournissent des ré-implémentations spécifiques à Android de parties de Swift, Foundation, Observation, SwiftUI et d'autres frameworks d'iOS, depuis les éléments fondamentaux de la couche de modèle comme URLSession et JSONDecoder jusqu'aux composants d'interface utilisateur complexes comme NavigationStack. Skip traduit et exécute les tests unitaires XCTest en tant que tests JUnit pour une parité automatique des tests unitaires sur Android ! que l'équipe de Skip surnomme cette suite de packages SkipStack.

SkipStone est propriétaire et nécessite une clé de licence, tandis que SkipStack est gratuit et open source. L'équipe de Skip continue de développer SkipStack afin de créer un solide écosystème de bibliothèques bi-plateformes.



Comparaison des avantages de Skip et de la conception de deux applications natives distinctes

À première vue, l'utilisation d'une solution multiplateforme pour vos besoins de développement mobile est une évidence. Après tout, vous pouvez littéralement réduire de moitié votre temps de développement et vos coûts de maintenance !

De nombreux développeurs expérimentés estiment toutefois que le développement multiplateforme nécessite trop de compromis pour en valoir la peine. Au final, disent-ils, vous obtiendrez de meilleurs résultats avec moins de tracas en écrivant des applications iOS et Android distinctes, en utilisant les langages, les cadres et les outils natifs de chaque plateforme.

Imaginez que vous fassiez partie d'une équipe de développement qui crée des implémentations iOS et Android distinctes d'une application mobile. Vous écrivez la version iOS en Swift et SwiftUI, et la version Android en Kotlin et Compose. Vous avez toute liberté pour créer deux applications mobiles entièrement natives.

Très vite, cependant, vous constaterez que votre équipe écrit beaucoup de code en double :

  • Les mêmes types de modèles. Ils devront souvent communiquer avec les mêmes API réseau, sérialiser au même format JSON et avoir les mêmes capacités de persistance entre les plateformes.
  • La même logique pour appliquer vos règles de gestion.
  • Les mêmes tests unitaires pour s'assurer que votre modèle et votre logique d'entreprise fonctionnent.
  • Les mêmes écrans d'accueil, écrans de paramétrage, formulaires, listes et autres interfaces utilisateur « standard ». Certaines parties de votre application peuvent nécessiter une adaptation minutieuse à chaque système d'exploitation mobile, mais une grande partie de l'expérience peut être identique sur iOS et Android.


Vous vous dites que la duplication massive des efforts et tous les frais généraux supplémentaires pour coordonner les modèles, les formats de données, la logique et les tests entre les plateformes en valent la peine. Après tout, vous ne voulez pas compromettre l'application en introduisant du code multiplateforme non natif. Cela s'accompagne traditionnellement de coûts bien réels, par exemple :

  • Formation ou embauche pour un nouveau langage de programmation (JavaScript, Dart, etc.) et un ensemble de cadres d'application.
  • L'application est alourdie par l'ajout d'un moteur d'exécution et/ou d'un ramasse-miettes.
  • Dégradation de l'expérience utilisateur avec une interface utilisateur non native.
  • Rendre le débogage extrêmement difficile.


Mais que se passerait-il si vous pouviez partager du code et des tests communs sans ces coûts ? Et si vous pouviez :

  • Développer avec un langage de programmation et un ensemble de cadres que vous utilisez déjà.
  • Éviter les frais généraux liés à l'ajout d'un autre moteur d'exécution ou d'un ramasse-miettes sur l'une ou l'autre plateforme.
  • Produire des interfaces utilisateur entièrement natives - SwiftUI sur iOS et Compose sur Android - à partir d'un code d'interface utilisateur commun.
  • Déboguer avec les outils natifs de chaque plateforme.
  • Appelez l'API native à partir de votre code partagé chaque fois que vous en avez besoin, directement en ligne.


Voilà ce qu'est Skip. L'équipe de Skip veut que vous écrivez votre code partagé en Swift, en utilisant des frameworks iOS standard tels que Foundation, SwiftUI et XCTest. Sur iOS, votre code est utilisé tel quel. Sur Android, Skip traduit votre code en Kotlin et Compose, et vos tests en JUnit. Le résultat est un code entièrement natif sur les deux plateformes, avec des tests unitaires équivalents. Et parce que le code résultant est natif, cela signifie :

  1. Votre code Swift s'intègre parfaitement aux parties de votre application que vous choisissez de développer séparément sur iOS et Android.
  2. Vous n'êtes jamais limité par ce que Skip prend ou ne prend pas en charge. Vous pouvez toujours mettre en œuvre des solutions spécifiques à la plateforme et y faire appel de manière triviale, comme vous le feriez en développant des applications iOS et Android distinctes.


Skip peut vous faire gagner énormément de temps et d'efforts, sans que vous ayez à compromettre votre application.


Comparaison des avantages de Skip avec d'autres frameworks mobiles multiplateformes

Skip présenterait de nombreux avantages par rapport aux solutions multiplateformes concurrentes. Les voici selon ses développeurs :

[LIST][*]Véritablement native. Les applications Skip sont natives de la plateforme : Swift et SwiftUI sur iOS, et Kotlin et Compose sur Android. Elles tirent pleinement parti des nouvelles fonctionnalités de la plateforme et s'intègrent automatiquement à des fonctions essentielles telles que l'accessibilité, qui est une exigence de conformité dans de nombreux domaines. Les applications Skip ne se contentent pas d'avoir l'air natives, elles le sont réellement.

[*]Totalement transparentes. Avec Skip, aucune partie de votre application n'est cachée à votre vue... ou à votre débogueur. Skip transpose votre Swift directement en code source Kotlin que vous pouvez inspecter et personnaliser. Skip intègre cette source dans des projets Gradle standard pour une intégration transparente avec les IDE et les débogueurs Android. Skip n'a pas de runtime caché, et les bibliothèques de support de...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.

Une erreur dans cette actualité ? Signalez-nous-la !