19 points par GN⁺ 2024-08-30 | 3 commentaires | Partager sur WhatsApp
  • Skip est un outil qui permet d’étendre le développement d’apps Swift à Android
  • Il permet de développer des applications natives à la fois sur iOS et Android en utilisant Swift et Xcode
  • Fonctionnement de Skip
    • Lorsque vous développez une app Swift ou SwiftUI dans Xcode, le plug-in Xcode de Skip la convertit en Kotlin et Jetpack Compose
    • Il permet de développer des bibliothèques ou des applications complètes sur les deux plateformes tout en conservant les performances natives et l’interface utilisateur

Avantages des apps Skip

Véritablement natif

  • Les apps Skip ne se contentent pas de « ressembler à du natif » : elles sont réellement natives
  • Sur iOS, elles utilisent Swift et SwiftUI ; sur Android, Kotlin et Compose

Transparence totale

  • Avec Skip, toutes les parties de l’application sont exposées au développeur
  • Vous pouvez convertir directement le code Swift en code source Kotlin afin de l’inspecter et de le personnaliser

Légèreté

  • Avec SkipZero, l’application iOS ne dépend pas du framework Skip
  • L’application Android n’a besoin que de quelques bibliothèques open source de Skip

Efficacité mémoire

  • Comme il n’y a pas de runtime managé supplémentaire, les apps Skip sont aussi efficaces que possible sur les deux plateformes
  • Sur iOS, elles utilisent le bare metal ; sur Android, le bytecode ART

IDE idéal

  • L’IDE de Skip est Xcode, le meilleur environnement pour le développement iOS
  • Pour la personnalisation côté Android, vous pouvez ouvrir directement dans Android Studio le code généré

Intégration complète

  • Skip génère du Kotlin et du Compose standard, ce qui facilite l’intégration avec les bibliothèques Android
  • Vous pouvez appeler directement d’autres codes Kotlin et Java

Fondé sur l’open source

  • Le transpileur de Skip ne représente que la moitié de l’histoire
  • Les frameworks comme Foundation et SwiftUI, qui soutiennent le développement d’apps iOS, sont également disponibles sur Android via l’implémentation open source gratuite de Skip

Compatible CI

  • Skip convertit aussi les tests unitaires
  • Vous pouvez exécuter les tests en local ou à distance afin de garantir des performances logiques identiques entre les plateformes

Possibilité de sortie

  • L’entrée Swift comme la sortie Kotlin appartiennent au développeur
  • Il n’est pas nécessaire de dépendre en permanence du transpileur Skip

Récapitulatif de GN⁺

  • Skip est un outil qui permet d’étendre les apps Swift à Android tout en conservant les performances natives et l’interface utilisateur sur les deux plateformes
  • Il permet aux développeurs de travailler plus efficacement en tirant parti à la fois de Xcode et d’Android Studio
  • Fondé sur l’open source, il offre transparence et possibilités de personnalisation
  • Compatible CI, il peut garantir des performances identiques entre plateformes grâce aux tests
  • Kotlin Multiplatform fait partie des projets proposant des fonctionnalités similaires

3 commentaires

 
ing03201 2024-08-30

Ce serait vraiment bien si la prise en charge de l’obfuscation du code était aussi ajoutée.

 
godrm 2024-08-30

Oh, c’est intéressant. Je ne sais pas encore du tout dans quelle mesure ni comment c’est géré, mais ça ressemble à une tentative à la fois audacieuse et amusante.

 
GN⁺ 2024-08-30
Avis Hacker News
  • Partage d’expérience sur le portage d’une application personnelle vers Android

    • L’auteur développe une app iOS en SwiftUI et a essayé de la porter vers Android avec React Native, Ionic, Ignite, etc., mais a rencontré des difficultés
    • Après avoir testé Skip, il en est très satisfait, car cela lui permet d’écrire l’application dans un seul langage tout en conservant le contexte Swift
    • Il est facile d’écrire du code spécifique à chaque plateforme, et l’application peut être lancée rapidement sans avoir à apprendre Android
    • Il prévoit de développer toute l’application avec Skip et de la publier sur les deux app stores
  • Préoccupations au sujet de Skip

    • Questions sur la licence open source (GPL vs MIT)
    • Interrogations sur la gestion des packages et la manière de traiter les branches iOS/Android
    • Questions sur la façon dont les API des services Apple sont gérées sur Android
    • Besoin d’exemples pour la publicité et les achats intégrés
  • Questions sur la gestion des dépendances dans Skip

    • Doutes sur la possibilité d’utiliser de façon transparente des packages Swift PM dans un projet Android
    • Question sur la capacité de Kotlin à appeler de façon transparente des bibliothèques Swift
  • Avis sur le marché cible de Skip

    • Le produit semble viser surtout les entreprises américaines et européennes qui veulent convertir une app iOS en application Android
    • Dans d’autres régions où Android est dominant, il existe de meilleurs frameworks comme Flutter, React Native ou Kotlin MP
    • Remarques sur les problèmes de transpilation de Skip et la difficulté de maintenance
  • Expérience de conversion de code avec ChatGPT et Claude

    • Conversion réussie de code SwiftUI vers Kotlin, Jetpack Compose et Material3
    • Le code généré fonctionnait presque immédiatement, avec seulement des ajustements de style/thème nécessaires
  • Retour d’expérience sur l’utilisation de Skip

    • Après plusieurs mois d’utilisation, constat qu’il existe une courbe d’apprentissage, mais que les problèmes cross-platform sont entièrement résolus
  • Documentation de Skip et limites de la transpilation

    • Question sur d’éventuelles limites de la transpilation lors de l’utilisation de SwiftUI ou d’autres bibliothèques centrales
    • Possibilité de rencontrer des difficultés similaires à celles du développement avec Xamarin
  • Limites du framework Skip

    • La plupart des apps iOS utilisent des frameworks de la plateforme Apple, ce qui peut limiter l’implémentation minimale de Skip
    • Il n’existe actuellement aucune implémentation de StoreKit, WebKit, SafariServices, UserNotifications, CryptoKit, etc.
  • Difficulté d’intégrer Skip à une application existante

    • Question sur la difficulté d’intégrer Skip dans une app existante en SwiftUI + UIKit
    • Besoin d’exemples de migration de petites ou moyennes applications vers Skip
  • Résolution des problèmes de performance avec Skip

    • Skip aide beaucoup à résoudre les problèmes de performance des frameworks cross-platform