Felgo et le QML, l’alternative à Flutter et React Native ?

Lorsque j’ai découvert Felgo je suis très vite tombé amoureux de ce système de développement ! C’était en 2016 et on travaillait sur un projet d’application mobile pour un client. A cette époque j’utilisais Xamarin sous Visual Studio avec le puissant couple XAML/C# et l’immense librairie .Net de Microsoft ! Mais j’étais persuadé qu’il devait exister autre chose, sans doute aussi évolué mais plus léger, plus souple… En fait je voulais une technologie qui réunisse les critères suivants : Simplicité, efficacité, et rapidité pour le montage des écrans sur la base des maquettes de design (UX/UI)C’était mon critère principal de départ afin pouvoir prototyper rapidement une appli mobile ou autre application. Multi-plateforme (un seul code source pour différent matériels), tout en étant capable d’obtenir des applications « natives » (au moins pour Android et iOS), capables de faire appel à des fonctionnalités spécifiques de chaque OS. Robustesse ! Donc s’appuyant sur un vrai langage de programmation orienté objet, et suffisamment répandu (comme le C#, le C++, Java, etc.), le tout avec un éco-système complet (APIs, plugins…). Conclusion, je ne cherchais pas les solutions plus ou moins dérivées du HTML/Javascript (React p.ex.) et mise à la disposition des développeurs web afin de leur permettre d’accéder au développement d’applis mobiles. Une forte communauté (afin de recevoir des réponses rapidement et sur n’importe quel problème en cas de difficulté) Avec un IDE (environnement de développement) complet, puissant et prêt à l’emploi (et non pas avec pas une myriades d’outils à installer et configurer avant de faire la moindre ligne de code) Avec une documentation en ligne complète et regroupée à un seul endroit. Evolutivité : pas une nouvelle technologie de dev, qui risque de tomber aux oubliettes au bout de quelques mois Avec un éditeur intégré à l’IDE et d’un niveau suffisant (coloration syntaxique réglable, IntelliSense etc.) Etc… Vous pensez peut-être que je suis un peu trop exigeant ? En réalité je le suis toujours quand il s’agit de choisir avec quoi je vais coder du matin au soir (et du soir au matin parfois ). Et à plus forte raison lorsque l’on travaille en équipe sur des applis complexes. Je reconnais que j’étais déjà bien satisfait du couple XAML/C#, sous Visual Studio avec le framework .Net et Xamarin Forms… Pourtant le montage d’une IHM (interface homme machine, plus communément connu comme UX/UI design aujourd’hui), destiné à une petite application classique et modeste (mais jolie et moderne), était bien trop lourd à mon goût avec Xamarin, en raison notamment du XAML. Je ne voulais pas non plus aller vers les solutions en « no-code »… Ce genre d’outils est toujours limité d’une certaine manière, et là ou l’on gagne du temps au départ, on en perd plus tard. Bref ça ne correspond pas à mon état d’esprit. Je cherchais donc, en parallèle au démarrage de mon projet, quelque chose qui puisse regrouper les critères précités. Et là, après quelques recherches, je tombe sur Felgo ! Mais qu’est-ce donc ? Un système complet de développement multiplateforme créé par une startup Autrichienne, qui semblait répondre à tous mes critères… Toutefois, certains aspects me préoccupaient (avant d’en avoir une vue précise) : Felgo se présente comme une sorte de surcouche à un autre framework : Qt (prononcez « cute », en anglais ou « kioute » en français, et non pas « ku té » comme je l’entends parfois…). Qt est une société bien plus importante que la startup autrichienne mais dont je n’avais pas souvent entendu parler. Je devais donc enquêter un peu sur ce Qt et sur ce tandem Felgo/Qt Le langage de base de ce framework est le C++, et bien que sa qualité ne fasse aucun doute, j’aurai préféré un langage un plus moderne comme C# ou Java, qui soit un peu moins contraignant que le C++. Le langage pour monter les interfaces dans Qt c’est le QML et là j’étais un peu mitigé par la présence du javascript comme langage d’accompagnement, car je ne l’appréciais pas trop à l’époque (trop permissif et pas assez évolué). Donc j’ai creusé un peu du côté du QML et là j’avoue que j’ai été très vite séduit par les 1ers exemples que j’ai vus. Laissez moi vous faire découvrir ce langage astucieux, facile à coder et très puissant… Pour résumer le QML est un langage basé sur la syntaxe JSON, qui s’articule très bien dans l’esprit « orienté objet » et dont les valeurs et expressions se manipulent en Javascript. Par Exemple : AppButton { text: « Valider » onClicked: { // code javascript… } } Et bien entendu comme tout élément avec une syntaxe JSON ça s’imbrique ! Exemple : Rectangle { color: « #FF00FF » width: 100 height: 50 Text { text: « Hello world! » anchors.centerIn: parent } } La propriété anchors.centerIn permet de centrer un objet par rapport à un autre (ici le parent est donc l’objet Rectangle) Du coup si on attribue une position en (x, y) à notre objet Rectangle : Rectangle { x: 20 y: 10 color: « #FF00FF » width: 100 height: 50 Text { text: « Hello world! » anchors.centerIn: parent } } L’objet Text étant l’enfant de l’objet Rectangle, du coup celui-ci reste positionné dans le rectangle (même si on retire la propriété anchors.centerIn) Le truc fondamental à bien comprendre, c’est que tout ce qui se trouve à droite des définitions de propriétés des objets QML, c.a.d. au-delà des « : », comme par exemple dans text: « Hello world! » et bien c’est en réalité du Javascript ! C’est évalué automatiquement par le moteur QML comme une expression Javascript « Hello world! » est donc tout simplement une chaîne de caractère Javascript. Donc on peut attribuer au niveau de chaque propriété QML, une expression Javascript …mais aussi une fonction ou tout une portion de code, tant que ça renvoie une valeur ! Exemple : AppButton { text: « Valider » + maVariable onClicked: { // code javascript… } } Ici la propriété text de l’objet AppButton va donc prendre pour valeur, la concaténation de la chaine de caractère « Valider » avec la valeur contenue dans la variable maVariable. Et bien
Rencontre avec le créateur d’AppliStudio

Peux-tu te présenter en quelques mots ? Je suis développeur et entrepreneur dans l’univers du logiciel, mais je suis avant tout un créateur passionné par les nouvelles idées ! Imaginer et façonner un nouvel outil qui peut rendre service aux gens est une grande source de motivation. Je crée des logiciels depuis longtemps, et j’ai eu la chance de travailler sur des domaines comme les sciences, la gestion, les jeux vidéo, l’éducatif…C’est pourquoi je me présente parfois comme un développeur « tout-terrain » ! Raconte nous ton parcours et ce qui t’as poussé à faire du développement. J’ai découvert la programmation à 13 ans, et à ce moment-là, mon imagination s’est emballée comme jamais… Je programmais tout le temps car je trouvais ça magique, mais je ne pensais pas encore à en faire mon métier. En effet mon autre passion était l’astronomie. D’ailleurs, à l’origine, j’avais commencé des études d’astrophysique, mais sur les conseils d’un ami astronome, je suis resté plutôt amateur pour continuer d’observer les étoiles en toute liberté, non contraint par un programme de recherche professionnel…Et pour résumer c’est là que le développement est alors devenu mon métier et l’astronomie un loisir… J’ai fait des études mathématiques et scientifiques, mais la plus grande partie de mes compétences en programmation a été acquise « sur le tas », avec les « heures de vol », et la passion ! Il paraît que tu as réalisé des jeux vidéo ! Tu nous en parles ? Oui, après avoir commencé par programmer des logiciels de gestion, j’avais envie de plus de créativité et surtout d’explorer un nouveau monde. Et puis en tant que joueur, j’essayais toujours d’imaginer comment fonctionnaient les jeux vidéo. J’ai donc imaginé un jeu, signé avec un éditeur, monté une équipe et c’était parti !A cette époque j’ai fait des jeux pour Atari, Amstrad, puis rapidement j’ai eu envie de faire du jeu pour les consoles, j’ai pu donc accéder à l’univers Nintendo avec la Gameboy et le dernier jeu que j’ai fait était pour Sega sur la Megadrive. Un rêve devenu réalité puisque le jeu mettait en scène Speedy Gonzales, mon personnage de dessin animé préféré quand j’étais gamin.Pour en savoir plus sur toute cette époque, je dévoile tout dans cette vidéo interview ! Tu as « abandonné » le développement web pour le développement mobile, tu peux nous expliquer pourquoi ? Quand Internet a pointé le bout de son nez au milieu des années 90, j’ai immédiatement sauté dans le train de cette nouvelle aventure ! On pouvait tout inventer puisque tout était nouveau. J’ai donc réalisé des centaines de sites web… Et la société que j’avais créé pour s’occuper de ça était parmi les 1ères Web Agency à proposer en France du site web dynamique (avec bases de données etc.).Mais l’engouement pour la création de site web a eu le même effet que la ruée vers l’or, et beaucoup de choses se sont dégradées, les prix ont chuté et la rentabilité devenait difficile.De plus le développement web est devenu un empilage de couches technologiques au point que je trouvais ça moins « carré » que le développement plus classique. Le développement d’applis mobiles avait l’air de ne pas souffrir de ce problème inhérent au web. AppliStudio n’est pas la première entreprise que tu crées. Qu’est-ce qui t’a poussé à créer une nouvelle entreprise spécialisée dans le développement d’applications ? Après avoir retrouvé un univers de développement plus en adéquation avec mes attentes, j’ai pensé que le marché était suffisamment mature pour proposer des services en développement d’applications mobiles aux entreprises. Et puis, certains clients m’ont fait part de l’absence d’une vraie structure spécialisée en applications mobiles sur la région d’Annecy.Je sais qu’en général les agences web ne sont pas présentes sur ce domaine, et les SSII sont trop axées sur le développement logiciel classique. Il y a donc clairement un «besoin» sur un véritable expert en développement d’applications mobiles, mais qui peut aussi proposer de l’application pour d’autres supports comme Rasberry Pi, ou plus classiquement pour Windows/Mac/Linux mais avec une approche plus moderne. Qu’est-ce que tu aimes le plus dans ce métier ? La création ! Donner la vie à une idée ! C’est ça la programmation. On invente un mécanisme qui ensuite fonctionne tout seul !Et si je peux voir briller les yeux des utilisateurs, lorsqu’ils prennent en main le logiciel qu’ils souhaitaient voir, pour faire vivre leur projet, alors c’est juste parfait !J’aime profondément l’exercice mental que représente là programmation et j’ai toujours aimé partager cette passion : à 18 ans je donnais déjà des cours de programmation aux enfants dans des colonies de vacances, des centres aérés etc. Plus tard j’ai été prof de programmation à l’Ecole Supérieure de Gestion à Paris (devenue la PSB), et aujourd’hui je continue d’enseigner en formant les clients d’AppliStudio le plus souvent avec de l’accompagnement en développement ! Demain on te propose LE projet d’application de ta vie, le projet qui te motive plus que les autres, quel serait le sujet de cette application ? Je ne peux pas répondre à ça car si je le savais je serai déjà en train de travailler dessus ! Et puis le projet d’application de ma vie est un peu comme chaque nouveau projet que je commence. Mais pour tenter de répondre quand même, je dois dire que je surveille de très près les applications en réalité augmentée, réalité virtuelle et ce qui tourne autour de ces technologies immersives. J’ai déjà 2 ou 3 idées que je vais aborder rapidement dans ce domaine fabuleux qui s’ouvre à nous aujourd’hui.
La Journée Mondiale du Jeu Vidéo, c’est quoi ?

La Journée Mondiale du Jeu Vidéo a été créée en 2010 par l’association Loisirs Numérique. Elle a pour but de découvrir les jeux vidéo de façon conviviale et de célébrer dans le monde entier le jeu vidéo sous toutes ses formes. Elle est aussi connue sous le nom de Video Game Day, cette fête a lieu généralement à la fin du mois de novembre et dure 3 jours. L’objectif de ces journées est de soutenir le secteur du jeu, de faire la promotion de son image ainsi que de le faire reconnaître comme une culture à part entière et non simplement comme un divertissement. Pour célébrer au mieux ces journées, vous pouvez organiser un tournoi de jeux vidéo ou une soirée entre ami, une conférence, un atelier découverte, des portes ouvertes ou encore un événement en ligne Pour cette occasion, Jean-Marc le fondateur d’AppliStudio, nous fait le plaisir de nous partager son expérience en tant qu’ancien créateur de jeux vidéo, et qui vient d’ailleurs de ressortir un jeu: Tokegon. Vous pouvez aussi regarder son interview réalisée par l’excellent Retro VynZ, dans laquelle Jean-Marc dévoile de nombreuses anecdotes, sur le métier de concepteur de jeux vidéo dans les années 90 – A ne pas manquer ! Combien de jeux vidéo avez-vous développé au cours de votre vie ? « Pour l’instant, j’ai développé 8 jeux, 6 qui ont été publiés et 2 qui sont restés en bêta et qui n’ont finalement pas été publiés, sans compter quelques prototypes et jeux simples sur mobile. » Dans quelles entreprises de jeux vidéo avez-vous travaillé ? « Je n’ai pas commencé par travailler directement avec une boîte de jeux vidéo, car j’ai tout d’abord édité des jeux avec ma boîte Funlight Software. C’est par la suite que j’ai proposé une idée de jeu (Guardians), à Loriciel, qui a immédiatement accepté de m’aider à le produire. J’ai ensuite travaillé sur deux autres jeux avec eux : Disc et Jim Power (sur Amstrad). Plus tard, j’ai rejoint une autre boîte, Cryo, ou j’ai développé Cheese Cat-Astrophe starring Speedy Gonzales (sur Sega Megadrive/Genesis). J’ai également travaillé sur les conversions de Megarace et Commander Blood pour Saturn et Playstation… Aujourd’hui j’ai repris le flambeau avec AppliStudio, car nous avons créé le label Kovalia qui vient de publier un jeu pour mobiles… » Quel a été votre plus gros projet ? « Sans aucun doute Speedy Gonzales, un jeu que j’ai développé en assembleur et entièrement seul (excepté la musique et le générique) sur la SEGA Megadrive (console 16 bit). Le développement du jeu a duré plus de 10 mois et cela a été un énorme défi de sortir ce jeu à temps et d’en faire en même temps un excellent jeu vidéo, tellement les difficultés de productions ont été nombreuses. » Lors de la création de ce jeu, avec qui avez-vous collaboré ? « J’ai travaillé, entre autres, avec Daniel Hochard (Imagex) et Dominique Sablons, qui étaient chargés des graphismes et des animations.Avec le célèbre Philipe Ulrich, co-scénariste du jeu.Avec David de Gruttola (a.k.a. David Cage) qui, à l’époque, composait des musiques mais que j’ai présenté à Cryo (et quelques années après il a monté le fameux Quantic Dream (Heavy Rain, Beyond: Two Souls et Detroit: Become Human). Et enfin, comme il y avait des tensions entre Sega Europe (l’éditeur), Warner Bros (pour la licence) et Cryo (le studio), c’est mon frère Olivier Lebourg, à qui j’ai fait appel, qui a sauvé le projet plus d’une fois par ses talents de designer (gameplay) et de chef de projet. » Quel est votre top 3 des meilleurs jeux vidéo ? « Boulder Dash qui est probablement mon meilleur souvenir de séances intenses de gaming… Soulcalibur (licence) auquel je joue encore aujourd’hui sur Xbox. Et je prends plaisir à battre encore mes petits neveux (de 20 ans ^^) sur les dernières versions de la licence. Super Mario World (SNES) qui est l’un des jeux auxquels j’ai le plus joué avec mon frère et mes amis. A l’époque, on y passait des nuits entières. J’ai même dû arrêter de jouer au bout d’un moment car quand je fermais les yeux je voyais les Koopas qui avançaient tous seuls dans le noir. » Quelle est votre console de jeu préférée ? « Ma console préférée reste la première que j’ai eue, la Intellivision de Mattel. C’était la première console 16 bit, et oui en 1979 ! Et les manettes avec un disque à 16 directions étaient incroyables car elles offraient un game play plus riche que les joysticks classiques. » Quel a été votre premier jeu ? « Le premier jeu que j’ai eu est aussi le premier « jeu TV » qui a été vendu commercialement: Pong ! C’était pour l’époque une vraie révolution (mais là vraiment !), et j’avais eu ce jeu vidéo comme cadeau de Noël en 1976. » Vous êtes plus rétrogaming ou jeux actuels ?« Les deux types de jeux sont complètement différents car il y a des choses qui ont disparu, et d’autres qui ont été créées. Il y a des gameplay qui ont évolué et d’autres non. Par exemple, un gameplay comme Bomberman n’existe plus aujourd’hui alors qu’un gameplay comme Fortnite n’existait pas à l’époque. Si je devais choisir je dirais donc les deux. » En bref, pendant 3 jours vous avez la vraie (bonne) excuse pour geeker sans vous justifier alors foncez – Mise à jour du 07/10/2024 – Nouvelle interview de Jean-Marc Lebourg qui nous parle des coulisses du jeu vidéo et de sa carrière de créateur de jeux (sur la chaine YouTube de Dr JVTek).
Nos choix écologiques

Jean-Marc Lebourg, le fondateur d’AppliStudio, s’est toujours positionné sur des choix écologiques, dès que possible. Dans sa jeunesse, il était présent dans l’affaire des « Bois de Verneuil » pour empêcher les bulldozers de rentrer et venir détruire cet espace de nature. Il était également membre de la Fondation Cousteau, une des premières associations à défendre l’écologie … Il continue aujourd’hui avec des actions, des gestes quotidiens, et des participations à des associations.Il est, par exemple, actionnaire de « Time For The Planet » et compte y faire adhérer AppliStudio très rapidement. Dans le cadre du studio, il encourage les gestes quotidiens qui consistent, par exemple: à choisir du matériel en fonction de son impact sur l’environnement à régler le matériel informatique pour consommer le moins possible à utiliser des prises à interrupteur pour ne pas laisser le matériel « en veille » etc. Il conseille également ses collaborateurs pour adopter certains concepts de programmation. En effet la façon dont le code informatique est conçu peut avoir un impact très important sur plusieurs points: Optimisation du code pour réduire le nombre d’opérations des processeurs : permet de limiter la consommation électrique des appareils sur lesquels fonctionnent les logiciels créés par AppliStudio. Limiter autant que possible les échanges réseau entre les applis mobiles (et même des logiciels « desktop ») et le cloud, afin de ne pas consommer de data inutilement. Choisir des hébergements « éco-responsables » avec des prestataires locaux quand c’est possible, pour ses propres sites web mais également pour ceux de ses clients. Ainsi AppliStudio travaille avec: https://www.o2switch.fr/green/ Utilisation des services Azure (cloud Microsoft), ce qui donne la possibilité de choisir des serveurs localisés au plus près des utilisateurs pour les logiciels conçus par AppliStudio. C’est à dire avec une répartition géographique automatique des serveurs, en fonction des « réglages systèmes » des mobiles sur lesquels fonctionnent les applis (par exemple en France pour des utilisateurs français). En bout de chaîne on arrive à de fortes économies d’énergie. Et puis également parce que Microsoft s’est engagé sur une voie réaliste d’infrastructures allant dans le bon sens d’un point de vue écologique.Ils annoncent notamment: « D’ici 2025, nous passerons à une utilisation à 100 % des énergies renouvelables. »Pour en savoir plus :https://www.microsoft.com/en-us/corporate-responsibility/sustainability/operations