Aller à la barre d’outils

A propos

sūü§ėag, un syst√®me de pr√©sentation libre en QML

L’objectif de ce projet est de r√©aliser un outil permettant de cr√©er facilement des pr√©sentations (comme Powerpoint, Prezi ou Slide.io) en combinant des composants cod√©s en QML.
Comme Swag n’est gu√®re plus qu’un interpr√©teur de documents QML, les applications possibles ne sont pas limit√©es √† la cr√©ation de pr√©sentations.

Il y a déjà une foule de projets similaires, pourquoi en créer un de plus ?

Et bien… :

  1. parce-que c’est fun ! Swag est le genre de projet qui couvre pas mal de domaines diff√©rents : de la 3D au multim√©dia en passant par le rendu PDF…difficile de se lasser !
  2. parce-que c’est libre ! La plupart des solutions existantes un peu mature que je connais visent une captivit√© d’une mani√®re ou d’un autre : que ce soit √† cause des licences propri√©taires ou du mod√®le SaaS. C’est pourquoi Swag est GPL, cela garantit que ses utilisateurs resteront libres de l’utiliser, l’√©tudier, le modifier et le redistribuer !
  3. parce-que le mouvement Low Tech importe (en tout cas m’importe) ! On utilise des services SaaS de plus en plus et √† toutes les sauces alors que cette solution repose sur des datacenters tr√®s energivores et massivement producteurs de CO2. Je suis convaincu que ce mod√®le ne sera que transitoire car intenable et que nous √©volueront vers d’autres mod√®les √† court terme. Swag se veut donc une solution Desktop autonome et bien que certaines fonctions n√©cessiteront forc√©ment de communiquer avec un serveur, elles resteront optionnelles et mesur√©es.

Historique du projet

Depuis plusieurs années, je suis emballé par les speakers qui utilisent leur propre systèmes de présentation.
Pour l’animation du Meetup Qt de Nantes, j’ai d’ailleurs souvent h√©sit√© √† utiliser l’un des projets en Qt de syst√®me de pr√©sentation (comme par exemple l’excellent https://github.com/qt-labs/qml-presentation-system qui a ouvert la voie).
Tr√®s r√©cemment lors du FOSDEM de f√©vrier 2020 j’ai eu le plaisir d’assister √† une pr√©sentation g√©niale de Christophe de Dinechin r√©alis√©e √† partir de son syst√®me TAO lui-m√™me √©crit en XL, et cette fois-ci cela a fini par me d√©cider √† ce que mes prochaines pr√©sentations soient r√©alis√©es √† partir d’un syst√®me similaire. Le premier besoin √©tait tr√®s simple et classique : pouvoir cr√©er un support de formation qui permettrait de montrer du code QML et de le rendre dynamiquement.
Suite à la pandémie du Covid-19 et au confinement décidé en mars, je me suis retrouvé sans activité et avec beaucoup de temps disponible à consacrer afin de réaliser une première version basique…
Travailler sur ce projet n’a fait que renforcer mon intuition qu’un tel outil pouvait permettre de r√©volutionner les pr√©sentations mais aussi servir √† tout un tas d’autres applications !

Et pourquoi ¬ę¬†Swag¬†¬Ľ ?

D√©j√† parce qu’en fran√ßais le ¬ę¬†swag¬†¬Ľ c’est plut√īt cool.
J’ai aussi d√©couvert que cela voulait dire ¬ę¬†Sophisticated Wild Ass Guess¬†¬Ľ qui est une estimation √† l’arrache mais bas√©e sur l’exp√©rience acquise…et je n’ai pas d√©test√© la symbolique pragmatique.

On pourrait trouver un tas d’acronymes sympa autour de Swag :

  • Serendipity Without A Glitch : ¬ę¬†un heureux hasard sans p√©pin¬†¬Ľ
  • Software With Awesome Generator : ¬ę¬†un soft avec un g√©n√©rateur fabuleux¬†¬Ľ
  • Some Would Argue Genius : ¬ę¬†Certains diraient le g√©nie…¬†¬Ľ

Comment ça marche ?

Welcome
Depuis la page d’accueil, on peut cr√©er un Swag ou ouvrir un document existant.
Pour le moment, un Swag est un répertoire contenant ses données, donc vous devrez sélectionner le répertoire parent ( il est possible que ce pont change rapidement).

SlideThumbnails
Quand un Swag est ouvert, il est possible de créer un nouveau slide ou de cloner un slide existant à partir du tiroir affichant les vignettes.

Activer le mode Edit (avec Ctrl+D ou √† partir du menu Edit) pour afficher la boite √† outils (partie droite de l’√©cran) des types de composants que vous pouvez int√©grer √† votre slide : comme un texte, une image ou un graphique par exemple‚Ķ

EditMode

Lorsque le mode d’√©dition est activ√©, on peut voir les fonctions lorsque la souris survole un composant (repositionner l’√©l√©ment, changer ses propri√©t√©s ou supprimer l’√©l√©ment).

A n’importe quel moment, on peut d√©clencher le mode ¬ę¬†Show code¬†¬Ľ pour voir comment la slide courante est con√ßue, modifier son code et la recharger instantan√©ment.

ShowCodeMode

Depuis les paramètres du document, il est enfin possible de sélectionner un des modes de présentations :

  • Loader : une slide est affich√©e √† la fois
  • ListView : on peut swiper d’une slide √† une autre
  • FlatView : on navigue d’un √©l√©ment √† un autre avec des animations un peu √† la Prezi.
DeckSettings

La bo√ģte √† outils :

  • un √©l√©ment Text (limit√© √† quelques propri√©t√©s basique pour le moment)
  • a √©l√©ment Code : montrer du code (avec une coloration syntaxique bas√©e sur highlight.js) et pouvoir l’interpr√©ter
  • GotoButton : un bouton pour aller √† une slide donn√©e
  • Webview : un navigateur web
  • Image
  • Map : affiche une carte
  • MCQ : un QCM o√Ļ tous les choix peuvent √™tre compos√©s d’une image et/ou d’un texte.
  • Chart : graphique
  • Dataviz : datavisualisation, par exemple montrer un nuage de point
  • Video : permet de lire une vid√©o ou de montrer la camera
  • Entity3D : permet de montrer un objet mesh en 3D
  • PDF : un lecteur pdf
    On peut voir ces √©l√©ments en action dans le swag ¬ę¬†Gallery¬†¬Ľ.

Installation

Il est recommand√© d’utiliser la derni√®re release de Qt( la 5.14.1 √† la date de d√©marrage du projet).

  1. Faire un git clone du projet et initialiser les sous-modules
git clone https://github.com/a-team-fr/swag.git
git submodule update --init
  1. Ouvrir le projet avec QtCreator
  2. Compiler & exécuter

La feuille de route

Le projet est piloté en Kanban, la feuille de route est visible here.
Ce qui suit est une synth√®se succincte et permet de montrer l’avancement.

Version 0.0.1 (sortie en April 2020)

Objectif : A draft with a limited feature set, incomplete and buggy.
Just good enough to show to experienced (and imaginative) developers what sūü§ėag could become.

Principales fonctionnalités :

  • [x] navigation et fonctions √©l√©mentaires (cr√©er, ouvrir, fermer) une pr√©sentation ou un slide
  • [x] un jeu limit√© d’√©l√©ments
  • [x] quelques modes d’affichage
  • [x] projet publi√© sur publish to github
  • [ ] site internet swagsoftware.net (mais je gal√®re bien avec WordPress)
  • [ ] publi√© avec les binaires pour MacOs et Windows pour pouvoir utiliser Swag sans avoir √† installer SDK de Qt – ce serait bien de pouvoir mettre en route l’IC de Github avec GitHub actions (toute aide serait la bienvenue)

Version 0.1

Objectif : Solution op√©rationnelle mais limit√©e aux cas d’usage des pr√©sentations.

Principales fonctionnalités :

  • [ ] interface utilisateur sympa et UX sublim√©e (toute aide serait la bienvenue l√† encore !)
  • [ ] export PDF et HTML (en cours)
  • [ ] authentification, ouverture et sauvegarde sur swagsoftware.net
  • [ ] mode pr√©sentateur (double √©crans, commentaires, timer)

Version 1.0

Objectif :
Premi√®re version officielle qui tue ūüôā

Principales fonctionnalités :

  • [ ] version mobile (iOS & Android) disponible permettant d’int√©ragir avec une pr√©sentation en cours pour permettre des fonctions de sondages en temps r√©el
  • [ ] export to mpeg
  • [ ] sWaggies : des g√©n√©rateurs de swag pour des cas d’usage sp√©cifique (par exemple g√©n√©r√© des swags pour documenter des projets logiciel en parcourant le code et les commentaires Doxygen )
  • [ ] transformer Swag en lecteur autonome avec le chemin d’un fichier en param√®tre et un mod√®le de swag