Uno permet aussi de créer des apps macOS avec les technologies de Windows

Nicolas Furno |

Uno est une solution qui permet aux développeurs dans l’univers de Windows de créer des apps multiplateformes. Le code source est écrit en XAML et en C#, deux langages créés par Microsoft pour ses propres plateformes, et le résultat peut être utilisé pour créer une app native sur chaque environnement. Une app iOS reposera sur UIKit, le framework d’interface natif conçu par Apple, une app Android utilisera l’équivalent fourni par Google et on peut même générer une web app grâce à WebAssembly.

La dernière version de cette solution de développement ajoute une nouvelle corde à son arc, avec la possibilité de générer une app pour macOS. Comme avec les autres plateformes gérées par Uno, le code final sera natif, l’app générée reposant sur AppKit, le framework d’interface de macOS. Catalyst n’a pas été la solution retenue, essentiellement parce que Xamarin, la brique qui convertit le code de l’univers de Microsoft, ne le prend pas en charge.

La calculatrice de base de Windows, un projet open-source, convertie en app macOS grâce à Uno.

Malgré tout, le travail d’Uno a été simplifié par la proximité entre UIKit, le framework d’interface d’iOS, et AppKit, celui de macOS. Si vous utilisez Uno pour générer une app iOS, générer une app macOS devrait ainsi être très simple, même s’il faudra ajuster quelques éléments spécifiques. Par contre, le processus de développement est plus compliqué que la moyenne : vous pourrez développer et tester l’app dans Visual Studio macOS, mais l’app finale devra être générée avec Visual Studio 2019 pour Windows. C’est une limite liée à nouveau à Xamarin.

Uno est une offre complètement open-source et gratuite. Si elle vous intéresse, vous pouvez découvrir son fonctionnement grâce à ce tutoriel publié par ses concepteurs.

avatar Florent Morin | 

Il y a une convergence des plateformes qui se branchent sur les frameworks natifs. C’est fascinant.
Et cet intérêt grandissant pour WASM fait écho à l’intégration de Swift WASM dans le projet Swift.
L’équivalent semble possible en Kotlin également. Notamment via Kotlin Native, qui s’appuie sur LLVM.

Cela fait également écho à Protobuf pour la partie échange de données.
Et les initiatives SwiftUI / Jetpack Compose pour la conception d’écrans en mode déclaratif.

On assiste à un vrai chamboulement technologique.

avatar oomu | 

ce ne sont que des noms à des kits de bibliothèques.

vous en connaitrez des dizaines de "chamboulement" au cours de votre vie alors.

Il serait intéressant que vous expliquez l'intérêt de tout ça, par exemple ce qu'apporte Kotlin face aux milliards d'autres langages et environnements. Idem, par rapport à LLVM qui a déjà le support de quantités de trucs.

pendant ce temps dans le monde python... un truc nouveau vient d'apparaitre

avatar Florent Morin | 

@oomu

Le sujet est vaste et passionnant.
Et ça mériterait un paquet d’articles.

Ce que l’on peut faire aujourd’hui avec LLVM est l’aboutissement d’un travail de presque 20 ans.

Sachant que Swift et LLVM ont le même « père »... ça laisse rêveur sur le potentiel qui est à peine exploité aujourd’hui.

avatar pht | 

C'est quoi la nouveauté chez Python?

avatar IceWizard | 

SwiftUI en C#, c'est pas pour tout de suite, je le crains .. Ni pour après-demain !

avatar mk3d | 

Le doux rêve de voir du SWIFT partout..

avatar oomu | 

pourquoi est-ce un rêve ?

c'est pas mieux le doux rêve de voir du C# partout ? Du Borland Pascal partout ? Du Python 3 partout ? du ZSH partout ?

avatar Hasgarn | 

C#, ce langage est vraiment chouette.
J'ai appris le développement avec et après, on m'a appris Java…

avatar Eristoff47 | 

Visual studio pour Mac est là même chose que office pour Mac.

Mise à jour bien après la version Windows. Ce qui est normal.

Je vois que le Xamarin commence à ce faire connaître et à être utilisé.
Si un jour ça devenait le « code » le plus utilisé. Microsoft pourrait bien ce retrouver avec un store plus fourni que les autres... si les applications qui en découlent peuvent sortir sur toutes les plateformes.

avatar oomu | 

si si si

avatar Dumber@Redmond | 

@oomu

Effectivement... 👍🏻

avatar frankm | 

Bah ça existe depuis toujours, c’est iTunes

avatar dodomu | 

@frankm

Comment ça ?

avatar oomu | 

itunes est une application multiplateforme depuis la nuit des temps comme tant d'autres bidules.

le point est: "boah, rien de bien nouveau, juste une nouvelle marque de machins pour pondre des apps".

bon, allez, on va tous retourner faire du Motif/X11, que voilà un truc multi-plateforme (ben quoi ? y a le support de tous les unix commerciaux et windows.. hein , l'an 2000 ? déjà ? )

avatar dodomu | 

@oomu

Moui, je vois l’idée derrière 🤔
Même si dans le cas d’iTunes (et d’autres), je pense que c’est sujet à débat : l’application est disponible sur plusieurs plateformes, mais son code source (ou une partie du moins) ne l’est pas : il y a des morceaux adaptés pour chaque plateforme, là où certaines technologies promettent de supprimer ce travail d’adaptation, en ajoutant une étape supplémentaire lors du développement (due à la couche de compatibilité introduite, qui peut être présente uniquement à la compilation d’une app, et l’on obtient alors une app native, ou bien présente à l’exécution, et l’on a alors besoin d’un outil tiers pour faire le lien : une machine virtuelle Java, Flash, un navigateur web, un interpreteur Python...)

avatar IceWizard | 

@oomu
"itunes est une application multiplateforme depuis la nuit des temps comme tant d'autres bidules."

L'application la plus multiplateformisée est "Hello World". Présente sur une multitude d'ordinateur, d'OS et de langages.

avatar Dumber@Redmond | 

@IceWizard

Ce n'est PAS une application.
Au plus une ligne de code. Ce n'est pas tout à fait la même chose...

avatar lolo57 | 

Dans un autre temps il y a eu un truc qui s'appelait JAVA et qui promettait d'être multi plateforme, on a vu ce que cela à donné...
Les tentatives d'outil multiplateforme ne sont jamais que l'accès au plus petit dénominateur commun de chaque plateforme.

avatar LoossSS | 

Quel est le lien entre Uno et xamarin ? Uno utilise xamarin comme moteur ? Mais du coup ça apporte quoi de plus ?

CONNEXION UTILISATEUR