Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Du cross-platform embarqué, desktop et mobile avec Slint !

Du cross-platform embarqué, desktop et mobile avec Slint !

Edouard Marquez

April 26, 2024
Tweet

More Decks by Edouard Marquez

Other Decks in Technology

Transcript

  1. Android Makers 2024 Hello World :) Qui suis-je ? Edouard

    Marquez Freelance Android & Flutter @g123k @DevCafe OpenFoodFacts [email protected]
  2. Android Makers 2024 Slint Le cross-platform de plus en plus

    présent Recherche "cross-platform software" sur Google Trends monde
  3. Android Makers 2024 Slint Type Web Ionic, Cordova… Type Hybride

    React Native… Type "Natif" Flutter… Plusieurs catégories possibles
  4. import QtQuick import QtQuick.Controls ApplicationWindow { width: 400 height: 400

    visible: true Button { id: button text: "A Special Button" background: Rectangle { implicitWidth: 100 implicitHeight: 40 color: button.down ? "#d6d6d6" : "#f6f6f6" border.color: "#26282a" border.width: 1 radius: 4 } } example.qml
  5. Android Makers 2024 Slint On revient dans le temps 2020

    A fresh, new graphical toolkit for desktop apps and embedded devices Lancement de SixtyFPS Novembre 2020 - A design-friendly markup language for UI elements - A run-time library with APIs in C++, Rust and JavaScript - An optimizing compiler to compile designs to native C++/Rust
  6. Android Makers 2024 Slint On revient dans le temps 2021

    "Lab mode" -> "Development mode" SixtyFPS 0.1 Août 2021
  7. Android Makers 2024 Slint On revient dans le temps 2022

    SixtyFPS devient Slint Février 2022
  8. Android Makers 2024 Slint On revient dans le temps 2023

    Slint 1.0 Avril 2023 Slint 1.3 Novembre 2023 Annonce d'un début de portage sur Android (financé via NLNet)
  9. Android Makers 2024 Slint Le support aujourd'hui Embarqué Le plus

    avancé Web En cours avec du WASM Desktop Mature Mobile Android en partie, iOS non démarré
  10. Android Makers 2024 Slint Le support aujourd'hui Embarqué Le plus

    avancé Web En cours avec du WASM Desktop Mature Mobile Android en partie, iOS non démarré
  11. component MyButton inherits Text { color: black;} export component MyApp

    inherits Window { preferred-width: 200px; preferred-height: 100px; Rectangle { width: 200px; height: 100px; background: green; } MyButton { x:0;y:0; text: "hello"; } MyButton { y:0; x: 50px; text: "world"; } } example.slint
  12. export component Example inherits Window { preferred-width: 100px; preferred-height: 100px;

    default-font-size: 24px; label := Text { } ta := TouchArea { clicked => { active = !active; } } property <bool> active: true; states [ active when active && !ta.has-hover: { label.text: "Active"; root.background: blue; } active-hover when active && ta.has-hover: { label.text: "Active\nHover"; root.background: green; } inactive when !active: { label.text: "Inactive"; root.background: gray; } ] } example.slint
  13. UI

  14. 37 The "Slint Royalty-free Desktop, Mobile, and Web Applications License"

    is suitable for those who develop desktop, mobile, or web applications and do not want to use open source components under copyleft licenses.