11 points par GN⁺ 2024-12-13 | 3 commentaires | Partager sur WhatsApp
  • Sortie de Dioxus 0.6

    • Dioxus est un framework basé sur Rust qui permet de créer des applications web, desktop et mobiles à partir d’une base de code unique.
    • L’objectif est de devenir un meilleur framework que Flutter.
    • L’accent est mis sur la prise en charge du web full-stack et sur une communication serveur/client sûre du point de vue des types, avec un focus sur les performances et l’amélioration de l’expérience développeur.
    • Cette version 0.6 s’est concentrée sur la simplification de l’utilisation de Dioxus, l’amélioration de l’expérience développeur et la correction de bugs.
  • Principales améliorations

    • Prise en charge des simulateurs mobiles : ajout de la possibilité d’exécuter des applications sur des simulateurs et appareils Android et iOS.
    • Magic hot reloading : prise en charge du hot reloading pour les chaînes formatées, les propriétés et les rsx!{} imbriqués.
    • CLI interactive : réécriture de la CLI Dioxus avec une nouvelle UX pour améliorer l’utilisabilité.
    • Traces de pile inline : capture directe des paniques WASM et des logs dans le terminal.
    • Fonctions serveur natives : prise en charge du RPC serveur inline pour les applications desktop et mobiles.
  • Améliorations de l’expérience développeur

    • Toasts et écran de chargement : ajout de nouveaux toasts et d’un écran de chargement pendant le développement d’applications web.
    • Autocomplétion améliorée : nette amélioration de l’autocomplétion pour RSX.
    • Stabilisation du système d’assets : stabilisation du système d’assets intégré basé sur des liens pour les applications natives.
    • HTML en streaming : prise en charge du streaming de suspense et des limites d’erreur du serveur vers le client.
    • SSG et ISG : prise en charge de la génération de sites statiques et de la régénération statique incrémentale.
    • Gestion des erreurs : gestion des erreurs avec ? dans les gestionnaires d’événements, les tâches et les composants.
    • Éléments meta : ajout de nouveaux éléments Head, Title, Meta et Link pour définir les propriétés du document.
    • prevent_default synchrone : traitement synchrone des événements sur toutes les plateformes.
    • Gestionnaire d’événements onresize : suivi de la taille des éléments sans IntersectionObserver.
    • Gestionnaire d’événements onvisible : suivi de la visibilité des éléments sans IntersectionObserver.
    • Intégration WGPU : rendu de Dioxus en overlay au-dessus des surfaces WGPU et des fenêtres enfants.
    • dx bundle : prise en charge complète de dx bundle pour le web, iOS et Android.
    • Mode JSON : sortie des messages CLI au format JSON pour une utilisation avec des outils tiers et des pipelines CI/CD.
    • Nouveaux templates : trois nouveaux templates de démarrage pour les applications multiplateforme.
    • Tutoriels et guides nightly : nouveaux tutoriels et guides pour Dioxus 0.6 et les versions suivantes.
    • Prototype de binary patching : prototype d’un nouveau moteur de hot reloading 100 % Rust.
  • Informations de version

    • Dioxus 0.6 est la plus grosse release à ce jour, avec plus de 350 pull requests fusionnées et des centaines d’issues résolues.
    • L’objectif est d’améliorer fortement la qualité du hot reloading, de l’autocomplétion et du bundling d’assets.
    • L’objectif est aussi de rendre la CLI Dioxus plus robuste et plus simple à utiliser.
    • Les outils mobiles ont été intégrés inline dans la CLI dioxus afin d’offrir une prise en charge mobile de premier plan.
  • Outil de ligne de commande interactif

    • Dioxus 0.6 propose une expérience CLI entièrement repensée.
    • La nouvelle CLI prend en charge une barre de progression en direct, des animations, un système de filtres interactif et la possibilité de changer le niveau de logs en temps réel, entre autres.
  • Prise en charge d’Android et d’iOS

    • Dans Dioxus 0.6, la CLI dioxus prend en charge nativement dx serve --platform ios/android.
    • Elle fournit une prise en charge mobile de premier plan, et les cibles de simulateurs Android et iOS prennent en charge les mêmes fonctionnalités que le desktop.
  • Refonte du moteur de hot reloading

    • D’importantes améliorations ont été apportées au moteur de hot reloading de Dioxus.
    • Prise en charge du hot reloading pour les chaînes formatées, les blocs rsx imbriqués, les propriétés de composants et les expressions Rust simples.
  • Refonte de l’autocomplétion

    • L’autocomplétion de rsx! {} a été considérablement améliorée.
    • L’intégration avec Rust-analyzer a été renforcée pour offrir une meilleure expérience d’autocomplétion.
  • Traces de pile WASM inline et intégration du tracing

    • Une intégration du tracing est fournie pour les applications WASM afin de capturer les paniques et les logs, puis de les envoyer au terminal.
  • Toasts et écran de chargement

    • Un écran de chargement montrant l’avancement du build et des toasts indiquant l’état du build sont fournis pendant le développement d’applications web.
  • Full-stack desktop et mobile

    • En intégrant les applications natives et les fonctions serveur, les fonctions serveur fonctionnent nativement sur les cibles desktop et mobiles.
  • Stabilisation du système d’assets Manganis

    • Le nouveau système d’assets Manganis a été stabilisé, et plusieurs bugs ainsi que des problèmes de performance ont été corrigés.
  • Suspense et streaming HTML

    • Introduction des limites de suspense, nouveau primitive cœur pour les interfaces asynchrones.
    • Dioxus full-stack streame chaque limite de suspense depuis le serveur, ce qui permet de streamer chaque chunk sans attendre le chargement complet de la page.
  • Génération de sites statiques et ISG

    • La prise en charge de la génération de sites statiques et de la génération statique incrémentale améliore le SEO et réduit les temps de chargement côté utilisateur.
  • Éléments de document : Title {}, Link {}, Stylesheet, Meta {}

    • Des éléments spéciaux sont fournis pour interagir avec l’objet document HTML et définir les propriétés du document sans JavaScript supplémentaire.
  • Gestion des erreurs avec point d’interrogation

    • Element passe désormais de Option à Result, ce qui permet d’utiliser la gestion d’erreurs standard de Rust dans les composants.
  • prevent_default synchrone

    • Le traitement des événements a été amélioré afin qu’il puisse être effectué de manière synchrone sur toutes les plateformes, rendant l’attribut dioxus_prevent_default inutile.
  • Gestionnaires d’événements onresize et onvisible

    • Des gestionnaires spéciaux sont fournis pour suivre la taille et la visibilité des éléments, permettant de créer des interactions riches sans JavaScript.
  • Overlay WGPU hybride

    • Grâce à la fonctionnalité de « fenêtre enfant » de Dioxus desktop, il est possible d’intégrer une application Dioxus native en overlay dans une fenêtre existante.
  • Prise en charge du bundling web, iOS et Android

    • Une prise en charge web et mobile a été ajoutée à dx bundle, permettant de créer des bundles pour différentes cibles.
  • Sortie JSON pour CI / CLI

    • Un mode de sortie JSON est proposé pour la CLI afin de recevoir les logs au format JSON.
  • Nouveaux templates de démarrage

    • Trois nouveaux templates de démarrage sont proposés pour les applications multiplateforme.
  • Documentation nightly, tutoriels et nouveaux guides

    • La documentation et les tutoriels ont été largement remaniés pour couvrir les bases et mettre l’accent sur le déploiement.
  • Aperçu du binary patching in-place

    • Une expérimentation est en cours pour ajouter le hot reloading au code Rust.
  • Petits changements

    • La release inclut divers petits changements, dont la prise en charge de la system tray, des boucles d’événements personnalisées, la séparation de dioxus-document et dioxus-history, ainsi que la simplification de l’API eval.
  • Mise à niveau de 0.5 vers 0.6

    • Il existe quelques changements d’API, mais ils peuvent généralement être corrigés facilement.
  • Conclusion

    • Cette release résout de nombreux problèmes et améliore diverses fonctionnalités, faisant de Dioxus 0.6 la version la plus aboutie à ce jour.
    • À l’avenir, l’équipe prévoit de se concentrer davantage sur la création de vidéos tutoriels, la rédaction de documentation, la correction de bugs, l’amélioration des performances et la collaboration avec la communauté.

3 commentaires

 
devsepnine 2024-12-17

J'utilisais récemment tauri, je devrais essayer celui-ci aussi.

 
GN⁺ 2024-12-13
Avis Hacker News
  • Un utilisateur partage son expérience avec cette nouvelle release : il a créé un projet avec cargo install puis lancé dx serve, mais s’est heurté à une erreur du compilateur. Il estime qu’il aurait été plus facile de déboguer avec un workflow Rust standard. Il est possible d’appuyer sur v pour activer des logs détaillés, mais cela n’apporte pas d’informations supplémentaires claires.

  • Un autre utilisateur indique qu’il essaie les frameworks GUI Rust tous les six mois, mais qu’il tombe sur des erreurs au moment de télécharger les démos ou le playground. Il pense qu’il faut être prudent avant de prendre une décision d’investissement à long terme.

  • Dioxus est présenté comme le seul outil technologique de plateforme web capable d’offrir des fonctionnalités cross-platform avec un usage minimal de JavaScript. Les progrès de la stack de rendu WGPU sont jugés positivement.

  • Il est mentionné que l’écosystème de Dioxus est encore insuffisant et qu’il n’existe pas de bibliothèque de composants. Il y a aussi peu de conviction autour du virtual DOM. Son concurrent Leptos est suivi et utilisé.

  • Un utilisateur indique utiliser Dioxus côté serveur et juge très bonne la manière d’écrire les composants ainsi que l’expérience développeur.

  • Après avoir découvert puis adopté Lustre, un utilisateur affirme ne plus vouloir utiliser autre chose que The Elm Architecture. Il construit actuellement un prototype d’éditeur de scénarios avec Iced en Rust, auquel il fait confiance puisque System76 l’utilise pour construire Cosmic.

  • Ce nouveau framework est jugé comme la technologie la plus prometteuse ; s’il réussit, il pourrait remplacer tous les autres frameworks. Son orientation très axée sur les performances est mise en avant, Rust fournissant la base en matière de sécurité et de performance.

  • Comme Dioxus a levé du capital-risque, un utilisateur estime qu’il faut rester prudent avant d’y miser son avenir. Il relève le manque d’informations sur une éventuelle cession de droits d’auteur ou l’obligation d’un CLA, ainsi que sur le nombre de contributeurs rémunérés.

  • Il est suggéré d’améliorer le contraste du titre du post pour mieux l’harmoniser avec l’arrière-plan de la page. Un utilisateur demande aussi une comparaison avec la position actuelle de Qt, son accessibilité et sa gestion des écrans HiDPI. Il estime que les bindings de qualité pour des langages autres que C++ et Python sont insuffisants, et pense que Qt serait plus populaire avec de meilleurs bindings et outils.

  • La nouvelle fonctionnalité de hot reloading est jugée impressionnante ; attendre les mises à jour de l’interface dans d’autres frameworks web Rust était considéré comme un problème majeur.