Skip to content

Rust Desktop Mastery - Architecture, UI, Design System et Mise en Production d'Applications Rust Reelles

Notifications You must be signed in to change notification settings

michaelgermini/Rust-Desktop-Mastery

Repository files navigation

Rust Desktop Mastery

Rust Logo

Architecture, UI, Design System et Mise en Production
d'Applications Rust Reelles

Le guide complet et pragmatique pour creer des applications desktop professionnelles en Rust.
De l'idee au produit fini, du premier pixel au premier client.

Rust 2021 33 Chapitres 6 Annexes 100+ Sections

Vue d'ensemble • Pourquoi ce livre • Structure • Commencer • FAQ

I. Mindset • II. Fondations • III. UI • IV. Architecture • V. Metiers • VI. Qualite • VII. Business


Vue d'ensemble

Ce livre est un guide complet pour creer des applications desktop professionnelles en Rust. Il couvre l'ensemble du cycle de developpement : de la conception architecturale au deploiement, en passant par la creation d'interfaces modernes et de systemes de design reutilisables.

Ce n'est pas un enieme tutoriel Rust. C'est un guide de A a Z pour construire, designer, architecturer et vendre un vrai logiciel desktop.

Ce que vous allez construire

En suivant ce livre, vous serez capable de creer des applications comme :

Type d'application Exemple concret Chapitres cles
ERP / Gestion commerciale Clients, factures, TVA, exports PDF Parties IV + V
Outil de productivite Notes, recherche full-text, IA locale Parties III + V
Dashboard professionnel KPIs, graphiques temps reel, data viz Parties III + V
Logiciel metier sur mesure Offline-first, chiffrement, plugins Parties IV + VI

Le livre en chiffres

+-----------------------------------------------------------------------------+
|                         RUST DESKTOP MASTERY                                |
+-----------------------------------------------------------------------------+
|  7 Parties  |  33 Chapitres  |  100+ Sous-sections  |  6 Annexes           |
+-----------------------------------------------------------------------------+
|                                                                             |
|  PARTIE I      Mindset & Philosophie                    [Chapitres 1-3]    |
|  PARTIE II     Fondations Rust                          [Chapitres 4-7]    |
|  PARTIE III    Interfaces Utilisateur                   [Chapitres 8-13]   |
|  PARTIE IV     Architecture Logicielle                  [Chapitres 14-19]  |
|  PARTIE V      Fonctionnalites Metiers                  [Chapitres 20-24]  |
|  PARTIE VI     Finition & Qualite                       [Chapitres 25-28]  |
|  PARTIE VII    Production & Business                    [Chapitres 29-33]  |
|                                                                             |
+-----------------------------------------------------------------------------+

Technologies couvertes

Categorie Technologies
Langage Rust 2021 Edition
UI Framework egui, eframe, Tauri, iced, wgpu
Base de donnees SQLite (rusqlite), migrations
Async/Concurrence Tokio, crossbeam, Arc, ArcSwap
Recherche Tantivy (full-text search)
IA locale Candle, embeddings, inference CPU
PDF printpdf, generation de documents
Logs/Profiling tracing, flamegraphs, criterion
Packaging cargo-wix (Windows), DMG (macOS), AppImage (Linux)
Tests cargo test, criterion (benchmarks), snapshots UI
Securite AES-GCM, Argon2, Ed25519, chiffrement local

Pourquoi ce livre ?

Le retour du desktop

Le developpement desktop connait une renaissance. Apres des annees de domination du web et des applications SaaS, les developpeurs et les entreprises redecouvrent les avantages des applications natives.

Probleme Web/SaaS Solution Desktop Rust
Latence reseau (100-500ms) Reponse instantanee (<10ms)
Abonnement mensuel obligatoire Achat unique possible
Donnees sur serveur tiers Donnees 100% locales
Dependance internet Fonctionne offline
Infrastructure complexe Un seul fichier binaire
Risques de securite cloud Chiffrement local
Couts qui augmentent avec l'usage Cout fixe, scalabilite gratuite

Pourquoi Rust ?

Rust est le langage ideal pour cette nouvelle ere :

+-------------------------------------------------------------------+
|                    AVANTAGES DE RUST                                |
+-------------------------------------------------------------------+
|                                                                     |
|  PERFORMANCE        Comparable au C/C++, zero-cost                 |
|                     abstractions, pas de GC                         |
|                                                                     |
|  SECURITE MEMOIRE   Ownership, borrowing, pas de null              |
|                     pointer, pas de data races                      |
|                                                                     |
|  BINAIRE UNIQUE     Compilation statique, pas de DLL,              |
|                     deploiement simplifie                           |
|                                                                     |
|  TOOLING MODERNE    Cargo, rustfmt, clippy, rust-analyzer          |
|                                                                     |
|  CROSS-PLATFORM     Windows, macOS, Linux depuis le meme           |
|                     code source                                     |
|                                                                     |
+-------------------------------------------------------------------+

Ce qui rend ce livre unique

D'autres ressources enseignent Rust. D'autres parlent d'UI. Ce livre est le seul a couvrir le parcours complet :

  Idee
   |
   v
  [Partie I]    Pourquoi Rust ? Pourquoi desktop ? Penser produit.
   |
   v
  [Partie II]   Ownership, async, projet multi-crates, profiling.
   |
   v
  [Partie III]  egui, design system, composants, UX pro.
   |
   v
  [Partie IV]   Clean archi, event bus, SQLite, plugins.
   |
   v
  [Partie V]    ERP, recherche, dashboards, IA locale.
   |
   v
  [Partie VI]   Performance, accessibilite, packaging, tests.
   |
   v
  [Partie VII]  Licences, distribution, marketing, monetisation.
   |
   v
  Produit fini, distribue, monetise

Concretement, ce livre vous donne :

  • Du code reel -- pas des exemples jouets, mais des modules production-ready
  • Une vision produit -- comment penser UX, business et technique ensemble
  • Un cas d'etude complet -- NoteVault, une app construite de A a Z (Chapitre 24)
  • Des patterns eprouves -- clean architecture, event bus, state management adaptes au desktop
  • Le chemin vers la monetisation -- licences, distribution, marketing, support

A qui s'adresse ce livre ?

Profil Ce que vous apprendrez
Developpeur Web fatigue Creer des apps performantes sans Electron, npm, ou infrastructure
Developpeur Rust debutant Appliquer Rust a des projets concrets avec UI
Developpeur desktop experimente Moderniser votre stack avec Rust et egui
Entrepreneur / Indie hacker Construire et monetiser un logiciel desktop
Architecte logiciel Patterns et architecture pour apps maintenables

Ce que vous ne trouverez PAS ici

Pour etre honnete et vous faire gagner du temps :

  • Un cours Rust debutant -- on suppose les bases acquises (variables, fonctions, structs, enums)
  • Du code copie-colle sans explication -- chaque decision est expliquee et justifiee
  • Une couverture exhaustive de tous les frameworks -- on se concentre sur egui avec des comparaisons
  • Du developpement web/serveur -- c'est 100% desktop, 100% local-first

Structure du livre

Parcours de lecture recommande

  DEBUTANT RUST                    DEVELOPPEUR PRESSE           ENTREPRENEUR
  ============                     ==================           =============

  Partie I   (philosophie)         Partie III (UI)              Partie I   (vision)
      |                                |                            |
      v                                v                            v
  Partie II  (fondations)          Partie IV  (archi)           Partie V   (fonctionnalites)
      |                                |                            |
      v                                v                            v
  Partie III (UI)                  Partie V   (metiers)         Partie VII (business)
      |                                |                            |
      v                                v                            v
  Partie IV  (archi)               Partie VI  (qualite)         Partie VI  (polish)
      |                                |
      v                                v
  Partie V   (metiers)            Partie VII (business)
      |
      v
  Partie VI  (qualite)
      |
      v
  Partie VII (business)

Objectif : Comprendre pourquoi Rust est le choix ideal pour le desktop et adopter la bonne philosophie produit.

Cette partie pose les fondations philosophiques et strategiques. Avant d'ecrire une seule ligne de code, il est crucial de comprendre pourquoi nous faisons ces choix et comment penser notre travail.

Vous apprendrez a :

  • Argumenter le choix de Rust pour un projet desktop
  • Identifier les cas d'usage ou le desktop surpasse le web
  • Adopter une mentalite produit orientee utilisateur
  • Evaluer les compromis entre performance, UX et time-to-market

Explore les raisons fondamentales qui font de Rust le choix ideal : fatigue de l'ecosysteme JS/Electron, performance native, securite memoire, et souverainete des donnees.

Section Description Concepts cles
La fatigue JS / Electron / SaaS Problemes de l'ecosysteme actuel Memoire Electron, node_modules, instabilite npm
Performance native Pourquoi Rust est rapide Zero-cost abstractions, comparaison JS/JVM
Securite memoire Bugs evites a la compilation Ownership, borrowing, Option vs null
Binaire unique Deploiement simplifie Compilation statique, pas de DLL hell
Offline-first Architecture locale Donnees locales, sync optionnelle
Souverainete des donnees Controle utilisateur Chiffrement local, RGPD, vie privee

Le retour en force des applications locales : pourquoi et quand le desktop surpasse le web.

Section Description Concepts cles
Le retour des apps locales Tendances du marche Obsidian, Notion local, Linear
UX superieure au navigateur Avantages UX natifs Raccourcis globaux, integration OS
IA locale, SQLite, fichiers Technologies cles LLM locaux, SQLite embarque
Cas concrets Exemples d'applications ERP, prise de notes, automation
Quand ne pas utiliser le web Criteres de decision Matrice de choix web vs desktop

Adopter une mentalite produit orientee utilisateur plutot qu'une approche purement technique.

Section Description Concepts cles
Ship plutot que demo Livrer de la valeur MVP, iteration, feedback loop
Logiciel utilisable 8h/jour Ergonomie professionnelle Fatigue visuelle, raccourcis, workflow
Dette UX vs dette technique Prioriser l'experience Impact utilisateur, cout de la friction
Le design comme avantage Differenciation Design system, coherence, polish

Objectif : Maitriser les concepts Rust essentiels pour construire des applications robustes.

Cette partie couvre les concepts Rust necessaires au developpement desktop. L'objectif n'est pas d'enseigner Rust depuis zero, mais de maitriser les patterns specifiques aux applications reelles.

Vous apprendrez a :

  • Ecrire du code Rust idiomatique et maintenable
  • Structurer un projet multi-crates professionnel
  • Gerer la concurrence sans bloquer l'interface
  • Diagnostiquer et optimiser les performances

Les concepts Rust essentiels expliques de maniere pratique, avec focus sur le developpement desktop.

Section Description Concepts cles
Ownership explique simplement Les 3 regles fondamentales Move, Copy, Drop, ownership transfer
Borrow checker sans douleur References maitrisees &T, &mut T, lifetimes basiques
Erreurs idiomatiques Gestion d'erreurs Rust Result, Option, ?, thiserror, anyhow
Patterns utiles Patterns courants Builder, Newtype, State Machine, From/Into

Structurer une application Rust professionnelle, maintenable et evolutive.

Section Description Concepts cles
Cargo Workspace Multi-crates Workspace, dependances partagees
Crates Modulaires Separation des responsabilites core, app, ui, infrastructure
Architecture de Dossiers Organisation du code Conventions, modules, visibilite
Tests et Benchmarks Qualite du code #[test], integration tests, Criterion

Gerer la concurrence sans bloquer l'interface utilisateur.

Section Description Concepts cles
Tokio Runtime async spawn, select!, multi-thread runtime
Channels (crossbeam) Communication inter-threads mpsc, bounded/unbounded, select
Arc et ArcSwap Partage thread-safe Arc<Mutex>, ArcSwap, RCU pattern
Thread UI vs workers Separation UI/calcul Main thread, background workers
Eviter les freezes UI toujours reactive Chunked processing, cancellation

Diagnostiquer et optimiser les performances de maniere rigoureuse.

Section Description Concepts cles
Tracing Logs structures spans, levels, subscribers, #[instrument]
Logs visuels Panel de logs integre egui log viewer, filtrage
Flamegraphs Profiling visuel cargo-flamegraph, tracing-chrome
Optimiser sans se mentir Mesures rigoureuses Benchmarks, profiling avant optimisation

Objectif : Construire des interfaces utilisateur professionnelles et reactives.

Cette partie est consacree a la creation d'UI en Rust. Nous couvrons les frameworks disponibles, les patterns de design system, et les techniques pour construire des interfaces modernes.

Vous apprendrez a :

  • Choisir le framework UI adapte a votre projet
  • Construire des interfaces reactives avec egui
  • Creer et maintenir un design system coherent
  • Implementer des composants reutilisables de qualite professionnelle

Comparaison detaillee des frameworks UI Rust pour choisir le bon outil.

Section Description Concepts cles
egui Immediate mode GUI Simple, rapide, prototypage
Tauri Web frontend + Rust HTML/CSS/JS, WebView, IPC
wgpu GPU rendering Bas niveau, performance max
iced Declaratif Elm-style Etat immutable, messages
Quand choisir quoi Matrice de decision Criteres, recommandations

Guide pratique complet pour maitriser egui, le framework choisi pour ce livre.

Section Description Concepts cles
Immediate mode Mental model Difference avec retained mode
Layouts Organisation visuelle Vertical, horizontal, grid, panels
Widgets Elements d'interface Labels, buttons, inputs, sliders
Gestion de l'etat State management Local vs global, persistence

Construire un systeme de design coherent et maintenable.

Section Description Concepts cles
Tokens Variables centralisees Constantes de design, JSON tokens
Couleurs Palette coherente Primary, secondary, semantic colors
Spacing Grille et espacement 4px/8px grid, margins, paddings
Typographie Hierarchie textuelle Font sizes, weights, line heights
Themes Dark/light mode Theme switching, persistence
DPI scaling Multi-resolutions HiDPI, scaling factors

Bibliotheque de composants UI professionnels prets a l'emploi.

Section Description Concepts cles
Button Boutons Primary, secondary, danger, disabled
Input Champs de saisie Text, password, validation
Table Tableaux de donnees Tri, pagination, selection
Sidebar Navigation laterale Collapse, nested items
Modals Dialogues Confirmation, formulaires
Toasts Notifications Success, error, warning
Inspector panels Panneaux de proprietes Details, edition
Command palette Recherche d'actions Ctrl+K, fuzzy search

Les patterns UX qui font la difference entre une app amateur et professionnelle.

Section Description Concepts cles
Loading Etats de chargement Spinners, progress bars
Empty states Ecrans vides Illustrations, call-to-action
Erreurs Messages d'erreur Clairs, actionnables
Undo et redo Historique d'actions Command pattern, stack
Autosave Sauvegarde automatique Debouncing, indicateur
Feedback instantane Reponse < 100ms Optimistic updates

Workflow efficace pour transformer des maquettes en code.

Section Description Concepts cles
Maquettes SVG Creation de wireframes Figma, SVG export
Mapping IDs Lier design et code Nommage, convention
Design vers egui Traduction pratique Extraction, composants
Workflow rapide Iterations design/code Hot reload, preview

Objectif : Structurer une application maintenable, testable et evolutive.

Cette partie couvre l'architecture logicielle. Nous appliquons les principes de clean architecture adaptes au contexte desktop.

Vous apprendrez a :

  • Structurer une application avec une clean architecture
  • Implementer une communication inter-composants efficace
  • Gerer l'etat de maniere previsible
  • Persister les donnees localement de facon fiable

Organiser le code en couches independantes et testables.

Section Description Concepts cles
Couches Organisation en couches Core, App, UI, Infrastructure
Separation logique Responsabilites claires Single responsibility
Decouplage Interfaces et abstractions Dependency injection, traits
Dependances Direction des dependances Vers l'interieur uniquement

Patterns de communication decouplee entre composants.

Section Description Concepts cles
Channels Communication via messages mpsc, broadcast
Pub/sub Abonnements multiples Subscribe, publish, filter
Messages Types de messages Command, Event, Query
Flux de donnees Flux unidirectionnel Single source of truth

Maintenir un etat applicatif coherent et previsible.

Section Description Concepts cles
Store global Source unique de verite AppState, reducers
Etat local UI state vs app state Separation, synchronisation
Cache Performance LRU, TTL, invalidation
Undo stack Historique des changements Command pattern

Persister les donnees localement de facon fiable et securisee.

Section Description Concepts cles
SQLite Base de donnees embarquee rusqlite, requetes, transactions
Migrations Evolution du schema Versioning, rollback
Offline-first Sync optionnelle Queue de sync, conflits
Chiffrement Securite des donnees AES-GCM, Argon2, key derivation

Generer des documents et echanger des donnees.

Section Description Concepts cles
Rapports Generation PDF printpdf, templates
Factures Documents commerciaux Layout, logo, conformite
CSV et JSON Import/export csv crate, serde_json
Integration systeme Fichiers et OS native-dialog, associations

Concevoir une architecture extensible par des tiers.

Section Description Concepts cles
Modules dynamiques Chargement runtime libloading, FFI
Feature flags Activation conditionnelle Compile-time, runtime flags
Architecture plugin API stable Trait objects, sandboxing

Objectif : Implementer des fonctionnalites business concretes et reutilisables.

Cette partie presente l'implementation de fonctionnalites business. Chaque chapitre est un module reutilisable pour vos applications.

Vous apprendrez a :

  • Construire un systeme ERP complet
  • Implementer un moteur de recherche performant
  • Creer des dashboards avec visualisations
  • Integrer l'IA locale dans vos applications

Systeme complet de gestion commerciale : clients, factures, TVA, exports.

Section Description Concepts cles
Clients Gestion des clients CRUD, validation, recherche
Factures Facturation Lignes, calculs, numerotation
TVA Fiscalite Taux, calcul, conformite
PDF Documents Generation, templates
Exports Donnees CSV, Excel, comptabilite

Recherche full-text performante avec Tantivy.

Section Description Concepts cles
Tantivy Moteur de recherche Architecture, installation
Indexation Creation d'index Schema, documents, async
Full-text search Requetes Query parser, highlighting
Performance Optimisation Cache, incremental indexing

Tableaux de bord avec KPIs et graphiques en temps reel.

Section Description Concepts cles
KPI cards Metriques cles Cards, trends, comparaison
Charts Graphiques egui_plot, line, bar, pie
Temps reel Live updates Polling, streaming
UX data Presentation Lisibilite, interaction

Integrer l'intelligence artificielle sans cloud avec Candle.

Section Description Concepts cles
Embeddings Vecteurs de texte BERT, sentence transformers
Recherche semantique Similarite Cosine similarity, HNSW
Inference CPU Sans GPU Quantization, batch processing
Souverainete IA Vie privee Donnees locales, RGPD

Application NoteVault : de zero a finie, code reel inclus.

Section Description Concepts cles
De zero a finie Progression complete Planning, milestones
Code reel Implementation Architecture, modules
Design system Theme applique Tokens, composants
Packaging Distribution Build, installer, release

Objectif : Polir l'application pour une qualite professionnelle.

Cette partie couvre les aspects qui transforment une application fonctionnelle en produit professionnel : performance percue, accessibilite, packaging et tests.

Vous apprendrez a :

  • Optimiser la performance percue
  • Creer une application accessible
  • Packager pour Windows, macOS et Linux
  • Mettre en place une strategie de tests efficace

Techniques pour ameliorer la perception de performance par l'utilisateur.

Section Description Concepts cles
Skeleton Placeholders animes Loading states
Lazy loading Chargement differe Pagination, virtual scroll
Demarrage instantane First paint rapide Splash screen, progressive
Caches Mise en cache LRU, TTL, invalidation

Creer une application utilisable par tous.

Section Description Concepts cles
Raccourcis clavier Systeme de raccourcis Global, contextuel, personnalisable
Navigation clavier Focus management Tab order, focus visible
Contrastes WCAG compliance AA/AAA, ratios
Tailles et lisibilite Zones cliquables 44px minimum, touch targets

Distribuer sur Windows, macOS et Linux.

Section Description Concepts cles
Windows MSI installer cargo-wix, code signing
macOS App bundle DMG, notarization, universal binary
Linux Packages AppImage, .deb, Flatpak
Installers UX d'installation Welcome, license, folder
Mises a jour Auto-update self_update, GitHub releases

Strategies de test pour une qualite constante.

Section Description Concepts cles
Tests unitaires Logique metier Mocks, fixtures, coverage
Snapshots UI Regression visuelle Screenshot comparison
Tests manuels Checklists Scenarios, exploratory testing

Objectif : Transformer le code en produit viable et rentable.

Cette derniere partie couvre les aspects business et de mise en production d'une application desktop professionnelle.

Vous apprendrez a :

  • Choisir et implementer un modele de licence
  • Creer une presence web efficace
  • Gerer le support et la maintenance
  • Developper des revenus complementaires

Choisir et implementer un modele de monetisation.

Section Description Concepts cles
Types de licences Modeles Perpetuelle, abonnement, freemium
Generation et validation Systeme de cles Ed25519, machine ID, HMAC
Activation offline Sans serveur Hardware binding, tokens
Modele freemium Conversion Free tier limits, upgrade prompts

Faire connaitre et distribuer votre application.

Section Description Concepts cles
Site web produit Landing page Hero, features, pricing, CTA
SEO Visibilite Keywords, blog, long tail
Page de telechargement Conversion OS detection, checksums
Canaux Distribution Stores, Homebrew, Chocolatey

Accompagner les utilisateurs et maintenir le produit.

Section Description Concepts cles
Documentation In-app help Contextuelle, searchable
Feedback in-app Widget Screenshot, logs, email
Telemetrie Analytics Opt-in, anonymisee, RGPD
Gestion des bugs Crash reports Panic handler, issue tracking

Strategies de revenus complementaires.

Section Description Concepts cles
Modules complementaires Add-ons Marketplace, licensing
Personnalisation White-label Branding, custom features
Services associes Premium Support, formation, consulting
Affiliation Partenariats Referral program, tracking

Faire evoluer le produit sur le long terme.

Section Description Concepts cles
Roadmap Planification Prioritization, public roadmap
Communaute Engagement Feature voting, Discord, forums
Open source Strategie hybride Core open, addons paid
Evolution technique Maintenance Dependency updates, migrations
Metriques KPIs DAU, MAU, NPS, churn, LTV

Ressources de reference rapide pour consultation quotidienne.

Annexe Description Utilisation
A. Cargo.toml complet Configuration avec dependances Copier-coller pour demarrer
B. Cheatsheet egui Reference rapide widgets Aide-memoire pendant le developpement
C. Patterns Rust Resume des patterns Rappel des bonnes pratiques
D. Checklist de lancement Todo-list release Verification avant publication
E. Ressources et liens Documentation externe Pour aller plus loin
F. Glossaire Definitions Reference terminologique

Pour commencer

Prerequis

+-------------------------------------------------------------------+
|                    PREREQUIS RECOMMANDES                            |
+-------------------------------------------------------------------+
|                                                                     |
|  [x] Rust basique      Variables, fonctions, structs, enums       |
|  [x] Ligne de commande Cargo, terminal basics                      |
|  [x] Git               Clone, commit, push (optionnel)            |
|  [ ] Pas requis        Experience GUI, async avance                |
|                                                                     |
+-------------------------------------------------------------------+

Installation rapide

# Installer Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# Verifier l'installation
rustc --version
cargo --version

# Creer un nouveau projet desktop
cargo new mon-app-desktop
cd mon-app-desktop

# Ajouter egui/eframe
cargo add eframe

Comment utiliser ce livre

Mode Description Recommande pour
Lecture lineaire Parties I a VII dans l'ordre Debutants, apprentissage complet
Par projet Partie V + chapitres necessaires Developpeurs presses
Reference Chapitres specifiques selon besoins Developpeurs experimentes
Projet fil rouge Suivre NoteVault (Chapitre 24) Apprentissage pratique

Premier exemple

// main.rs - Votre premiere application desktop en Rust
use eframe::egui;

fn main() -> eframe::Result<()> {
    let options = eframe::NativeOptions {
        viewport: egui::ViewportBuilder::default()
            .with_inner_size([400.0, 300.0])
            .with_title("Ma Premiere App Rust"),
        ..Default::default()
    };
    
    eframe::run_native(
        "mon_app",
        options,
        Box::new(|_cc| Ok(Box::new(MonApp::default()))),
    )
}

#[derive(Default)]
struct MonApp {
    nom: String,
    compteur: i32,
}

impl eframe::App for MonApp {
    fn update(&mut self, ctx: &egui::Context, _frame: &mut eframe::Frame) {
        egui::CentralPanel::default().show(ctx, |ui| {
            ui.heading("Bienvenue dans Rust Desktop!");
            
            ui.horizontal(|ui| {
                ui.label("Votre nom:");
                ui.text_edit_singleline(&mut self.nom);
            });
            
            if !self.nom.is_empty() {
                ui.label(format!("Bonjour, {}!", self.nom));
            }
            
            ui.separator();
            
            ui.horizontal(|ui| {
                if ui.button("-").clicked() {
                    self.compteur -= 1;
                }
                ui.label(format!("Compteur: {}", self.compteur));
                if ui.button("+").clicked() {
                    self.compteur += 1;
                }
            });
        });
    }
}

Executez avec cargo run et vous avez votre premiere application desktop fonctionnelle!


FAQ

Faut-il etre expert en Rust pour suivre ce livre ?

Non. Il faut connaitre les bases (variables, fonctions, structs, enums, pattern matching), mais le livre explique en detail les concepts avances comme l'ownership, l'async et les lifetimes dans le contexte du developpement desktop. La Partie II est specialement concue pour cela.

Pourquoi egui plutot que Tauri, iced ou Dioxus ?

egui offre le meilleur equilibre entre simplicite, performance et controle pour du desktop natif pur. Pas de WebView, pas de JavaScript, pas de HTML/CSS. Le Chapitre 8 compare en detail tous les frameworks pour vous aider a choisir selon votre contexte. Les principes d'architecture (Parties IV-VII) sont applicables quel que soit le framework.

Le code est-il disponible quelque part ?

Chaque chapitre contient du code complet et fonctionnel. Le Chapitre 24 (NoteVault) est un cas d'etude complet de A a Z avec tout le code source. L'Annexe A fournit un Cargo.toml complet pret a copier-coller.

Ce livre couvre-t-il le deploiement multiplateforme ?

Oui. Le Chapitre 27 couvre en detail le packaging pour Windows (MSI via cargo-wix), macOS (DMG + notarization) et Linux (AppImage, .deb, Flatpak), ainsi que les mises a jour automatiques.

Peut-on utiliser ce livre pour un projet commercial ?

Absolument. C'est meme l'un des objectifs principaux. La Partie VII couvre les licences, la distribution, le marketing, la monetisation et la vision long terme. Le livre est concu pour vous amener jusqu'au premier client.

Quelles versions de Rust sont supportees ?

Le livre cible Rust 2021 Edition et toutes les versions stables recentes. Les dependances sont specifiees avec versions dans l'Annexe A.


Licence

Ce livre est publie sous licence MIT. Vous etes libre de l'utiliser, le modifier et le distribuer.


Pret a maitriser le developpement desktop en Rust ?

Commencer la lecture

#

About

Rust Desktop Mastery - Architecture, UI, Design System et Mise en Production d'Applications Rust Reelles

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published