# Tauri vs Electron (Avantages & Différences) - Valérian Saliou & Julien Le Coupanec Channel: SaaS Makers Video: https://www.youtube.com/watch?v=4Q043kntMx8 Duration: 39 min Language: French Words: 8261 Transcript page: https://viewrankai.com/tools/youtube-transcript/4Q043kntMx8 --- [0:00] bon les amis aujourd'hui on va faire un nouvel épisode sur SAS makers parce que Val on a fait une conférence il y a quelques semaines sur une technologie qui est très prometteuse qui s'appelle Tory qui est disponible sur tory. pour ceux qui veulent aller voir et j'ai trouvé ça assez c'est une alternative àectron Val on parlera un peu plus en profondeur et c'est vraiment une technologie qui est qui est super moderne donc bien bonjour Valérien comment tu vas et est-ce que tu peux nous ouais est-ce que tu peux nous dire un peu pour ceux qui veulent aller voir en fait c'est quoi exactement Tory dans les [0:31] grandes lignes ouais euh alors Tory en fait tout simplement c'est un c'est un système qui vous permet de développer vos applications en en web et de les de les de les de les compiler en fait enfin de les exporter pour plusieurs cibles Windows MacOS donc en fait ça vous permet d'avoir des applications qui sont qui tournent sur votre Mac qui sont qui sont qui affichent une petite icône dans votre doc euh vous avez une intégration avec le système assez assez poussée donc par par exemple possibilité de customiser la barre de menu que vous voyez en haut sur votre Mac les interactions sur le doc avec le petit [1:06] compteur de notification faire faire bouncer le doc quand vous avez des événements et cetera et cetera donc vraiment en fait la possibilité de faire des applications comme si vous les codiez nativement mais mais en web en revanche l'interface en fait c'est enfin vous êtes totalement libre de des choix d'interface que vous faites donc il y a pas de système il y a pas de librairie en fait qui va fournir fournir un un look and field MacOS donc c'est vraiment en fait si si tu as ton design qui est un peu genre d' avec toutes petites icones et cetera euh benah il faut savoir que ça va s'afficher comme [1:42] ça quoi et donc en fait c'est ça permett de faire des applications natives en fait à partir d'un site web par exemple un peu comme capaciteur permet de pouvoir automatiquement faire des applications mobiles depuis un code source qui viendrait du NX par exemple ou d'un next ou même des applications VGS euh d'ailleurs c'est ça c'est une technologie qui fonctionne bien avec ce type de framework ouais ben il y a pas de souci en fait l'idée Story c'est juste que c'est je vais expliquer les différences tout à l'heure avec d'autres technologies que peut-être que les gens connaissent déjà comme électron euh mais en fait c'est basiquement c'est juste [2:15] une WebView he donc c'est un safari euh sur MacOS et du coup tu peux afficher absolument tout ce qui est web donc ça peut être du react du vue index. HTML avec du jQuery enfin tout ce que tu veux ça peut être statique ça peut être une application donc à priori là on est plus plutôt dans une un format application tu peux utiliser si tu veux il doit bien exister des des composants react ou vu qui imite le look and field MacOS donc je sais que one password par exemple le fait le One password 8 pour ceux qui connaissent qui est une mise à jour du [2:46] One passw web 7 pardon one passw 7 c'était vraiment full native en c'était du l'objectif C avec vraiment que les enfin native Apple et en fait ils ont voulu se diversifier et avoir accès à a publié l'application sur Windows et Linux et du coup au lieu d'avoir plusieurs targets plusieurs plateformes où c'est développé nativement qui augment la complexité pour les développeurs ils ont choisi en fait finalement d'avoir une seule base de code pour l'interface où toute l'application elle est développé en web et après elle est elle est packagé je sais pas exactement si c'est du électron ou quelque chose d'autre mais c'est pas du Thory à priori euh mais elle est Pagé [3:25] pour plusieurs plateformes avec une seule base de code DEP depuis une seule base de code ça veut dire quoi d'un point de vue business en fait c'est vachement intéressant parce que tu bah tu as moins de dépendance en terme moins de besoin de skills différentes moins de ça va plus vite je pens qu' argent en software en terme de sécurité si one password ils utilisent pas Tory mais ils font ce genre de processus ça veut dire que ça reste quand même secéure parce que pour ce genre d'application tu vois en terme d'isolation des processus et cetera c'est ça reste quand même quelque chose d'assez sécure thorie ouais en [3:51] fait ce qu'il faut savoir c'est que tu as plusieurs donc tu as le frontend et tu as ce qu'on appelle le backend dans une application th mais c'est pareil chez chez electron qui est ce que les gens connaissent un peu plus qui qui permet de faire la même chose et en fait ça n'a rien à voir avec le serveur client qu'on connaît genre backend frontend quand tu fais d'une application et que tu as un serveur et que le serveur tu l'appelles le backend là c'est vraiment ce que tu appelles frontend c'est ce qui tourne dans la WebView donc c'est c'est ce que la la personne va voir c'est ton application [4:21] c'est là c'est ce qui est web euh et tu as le le backend et le backend en fait c'est du code que tu vas ajouter à ta ta web app en fait ta web app elle peut être packagée en fait à dans plusieurs cibles donc une cible Thory par exemple pour faire une application MacOS mais tu peux aussi avoir vouloir faire une application qui tourne sur le navigateur sur ton nom de domaine et donc l'idée c'est tout ça c'est le frontend mais le backend c'est quelque chose que tu vas ajouter en fait juste pour la cible Thory et euh le backend en fait son sujet principal c'est de communiquer de [4:52] s'intégrer s'interfacer avec le le système ce qui permet à ton frontend en fait de par exemple d'envoyer des commandes euh au backend pour euh exécuter du code qui va tourner nativement sur le système donc en fait un exemple simple ça peut être télécharger un fichier euh parce que télécharger un fichier par exemple en Torit vu que c'est pas vraiment un navigateur web c'est une WebView mais c'est pas un navigateur web au sens pur et bien quand tu télécharges un fichier typiquement il faut écrire un peu de code pour le dire euh bah là en fait euh place le ce fichier-là dans tel dossier sur l'ordinateur parce que tu as tu as [5:27] un accès au file système euh euh et puis et puis en fait c'est même à toi de d'aller installer sais tes librairies pour faire les téléchargements et cetera enfin tu as vraiment enfin tu es obligé de tout redévelopper à ce niveau-là mais l'avantage c'est que tu as une flexibilité énorme customiser les menus interagir avec le doc comme je le disait euh pour télécharger par exemple bah c'est là où par exemple dans une application que j'ai faite qui s'appelle prose on a on choisi de le télécharger les fichiers sur dans le dossier téléchargement parce qu'à défaut en fait tu es tu es vraiment libre de ce que tu [5:58] fais tu as accès au /ash ususer/ Julien par exemple et tu fais tout ce que tu veux à cet endroit-là euh donc en fait c'est à toi de tout recoder mais l'avantage c'est que bah tu peux enfin faire tout ce que tu veux après sur le système quoi dans dans ce qui t permis donc un peu comme une app native et l'idée c'est que le fronton il va envoyer des commandes ce qu'on appelle des commandes avec de l'IPC donc une un système de message entre les entre les deux process entre le fontend et le backend et le backend peut renvoyer des événements de l'autre côté pour remonter au frontend [6:32] par exemple admettons que tu envoies une push notification euh du frontend vers le backend donc dans le dans le cas de Tory tu es obligé en fait de poucher la notification à la main toi-même avec des librairies que tu auras installé tu as pas comme dans un navigateur web accès à l'application la p notification c'est quand tu fais new notification et et du coup il faudra bah être notifié du fait que par exemple la personne elle a cliqué sur la notification en haut à droite de son éc et ça pour savoir ça bah c'est à toi de le faire c'est du custom donc tu vas créer un événement sur ton backend tu [7:05] vas remonter au frontend et et du coup le fronton il pourra s'abonner en fait via une livrairie fournie par Tory il pourra s'abonner à ces événements là et puis et interagir en fait toris ils ont leur propre API dans la doc j'imagine avec plein de fonctionnalités qui permettent à pouvoir faire des choses un peu plus natif en fait ce qui est intéressant c'est que on pourrait même dans ton backend on pourrait même embarquer une base de données sur notre application par exemple genre SQL Lite ou genre de chose et c'est là où on pourrait du coup avoir ce qui est pas possible de faire un browser en fait là avec Thory comme [7:32] il embarque un système backend on peut faire des applications qui seraient euh vraiment euh euh beaucoup plus puissante en terme de fonctionalité exactement et tu pourrais euh en fait toryi donc la particularité par rapport à électron c'est que ça utilise rust pour le backend donc rust c'est un langage de programmation orienté système donc euh l'objectif de Rust pour ceux qui connaissent tout ce qui est C++ C c'est de fournir en fait un type de programmation similaire donc tu tu écris du code qui se compile pour une cible pour une architecture donc c'est du code qui tourne nativement sur le processeur il y a pas de machine [8:10] virtuelle il y a pas de ce qu'on appelle les garbage collector tu es vraiment en fait tu tapes vraiment au plus bas niveau dans le système ça tout un tas de propriétés qui sont intéressantes sur la gestion de la mémoire par exemple c'est un langage qui est memory safe ce qui est pas le cas de C++ C où il y a beaucoup de choses à faire à la main et du coup beaucoup plus de l'attitude laissée en fait et qui qui qui apporte beaucoup plus d'erreur humaines donc rust est assez safe sur ce point là donc c'est la grande différence avec éctron donc éctron qui est [8:40] finalement un concurrent de Thory mais qui est plus ancien qui lui en fait son backend en fait c'est du javascript donc c'est du notdejs et donc tu as accès à plein de choses aussi mais l'avantage de faire du R c'est que tu peux installer des librairies qui font à peu près tout créer des fenêtres enfin tu as vraiment accès à un écosystème de package communautaire finalement qui sont qui sont les packages communautaires de la communauté rust euh donc ça t'ouvre en fait un champ des possibles qui est immense parce que faut savoir que rust c'est pas c'est pas un langage qui est lié à Tor enfin c'est c'est un langage où tu peux [9:17] faire des serveurs Web tu peux faire moi j'ai codé un par exemple j'ai développé un un moteur d'un base de recherche qui s'appelle Sonic qui est une sorte d'élasticque search simplifié très simplifié bah tout ça c'est codé en rust donc par exemple si je veux inclure un morceau de ce que j'ai fait avec Sonic dans un backend Thory je peux le faire aussi en soi c'est juste tu fais des imports tu peux publier ça publier des morceaux de ce que de travail que tu as fait sur le l'équivalent de npmjs pour le rust qui s'appelle crates.io et donc en fait c'est assez puissant tu vois le problème c'est que il y a [9:55] beaucoup de choses où par rapport à électron tu réinventes beaucoup la roue par exemple quand je te parlais des notifications tout à l'heure des push notification ça tu vois éctron il te fournit un enin un backend pour ça qui que tu as pas à recoder en thorie tu dois aller trouver la bonne librairie pour la target MacOS pour pouvoir parler avec le système de notification natif de MacOS et ça sera pas la même chose sur Windows donc il faudra faire des trucs conditionnels machin mais mais l'avantage c'est que tu arrives avec quelque chose qui est pur tu vois enfin tu as zéro librairie qui sont fournis tu [10:24] sources les packages communautaires et c'est ultra léger du coup c'est peut-être ça aussi que tu peux expliquer ce qui est intéressant c'est que en fait électron il est quand tu as une app électron par exemple elle est toujours plus lourde qu'une app Tory notamment si tu peux expliquer parce que en fait ça embarque un navigateur et l'autre n'embarque pas ouais alors la grande différence entre toryi et électron c'est que électron donc par exemple l'électron on l'utilise pour l'application desktop de crisp donc il faut savoir que quand tu télécharges l'application desktop de crisp c'est entre 200 et 300 moct de pour une application à télécharger et ensuite une quand tu l' fait c'est à peu [10:59] près 700 800 m de RAM et à blanc donc ça peutre ça peut être beaucoup plus que ça c'est dire quand tu la démarres et en fait ça pourquoi parce qu'en fait électron bundle quand tu vas faire construire ton application avec électron donc on va prendre l'application de crisp donc c'est du VGS qui va être compilé enfin qui va être buildé avec avec vite donc on prend tous les le slash 10 de ça donc c'est ce qu'on déploierait normalement sur un serveur web donc ça on le met dans un dossier ensuite le build il va inclure un notjs un exécutable notjs donc pour exécuter le Javascript du backend électron parce [11:36] que ça faut savoir que c'est exécuté par un c'est du javascript exécuté par not JS donc là tu as un V8 le le moteur Javascript et ensuite un chromium ouais non non ça c'est encore séparément tu as un chromium qui est inclus et ça le chromium il va servir au front end enfin tu commences à voir pourquoi c'est obèse en fait c'est que tu réinclus complètement un navigateur web àéger et ça ça tout ça c'est packagé ça forme ton point ton point app que tu vas distribuer donc ça fait une application qui est obèse mais l'avantage c'est qu'elle tourne elle est portable c'estàdire que tu peux être sur un Mac [12:09] OS 6 un Mac OS 11 12 13 14 sur un windows tu sais que tu auras le même moteur de rendu parce que au build pour une version donnée de ton app tu auras packagé en fait ton app avec une version d'électron qui du coup ben c'est une version de Chromium donné une version de not JS donné donc tu sais qu'elle sera absolument portable Thory à l'inverse ça fait choix complètement différent c'est que quand tu es sur un Mac par exemple et que tu développes par exemple une application en Swift sur sur Xcode tu tues libre de d'inclure des webvieew donc c'est juste une API qui est fournie [12:43] par Apple qui est qui est toute simple et en fait la WebView elle elle te fournit un moteur de rendu web avec un moteur JavaScript mais qui est fourni par le système et en fait toryi il utilise ça euh de manière assez maline en fait et du coup ton application quand tu vas la publier toi en fait tout ce que tu fournis c'est c'est tes dist donc ce que tu as construit de ton projet VGS par exemple en fait ça généralement c'est assez léger euh et tu vas fournir ton code backend en rust qui sera compilé en en un exécutable natif mais ça c'est tout LG [13:17] parce que c'est juste ton code et Tory va juste ajouter quelques enfin sa secret SCE on va dire et qui va juste en fait faire appel à la V la à la webvw systemme donc donc en fait une application par ex parfut du ouais ou du et une application comme prose par exemple et ce serait la même chose si on package crisp elle fait 10 m donc le point app pro fait 10 m si je l'avais packagé dans électron on sera entre 200 et 300 m le problème à ça c'est que ça utilise la safari WebView donc on sait que Safari c'est pas la meilleure navigateur c'est loin d'être le meilleur [13:55] navigateur quand on fait des applications il y a beaucoup de problèmes de rendu un peu part parce que je sais que Safari fait beaucoup de de d'optimisation un peu particulière pour les performances et économiser de la batterie euh notamment c'est il est très agressif quand tu quand tu as ton Tab Quand tu es dans un vrai safari il est pas visible pendant quelques minutes quelques heures je sais pas exactement de la la décision qui est faite mais en fait il va stopper tous les SEP timeout les SEP intervalles donc ce qu'on appelle les timers et du coup ton application en fait elle n'aura accès au timers que si l'utilisateur résume une [14:30] interaction c'est qu'il va réouvrir l'onglet il va regarder ton app et il va interagir et ça c'est très problématique quand tu fais du webscket par exemple quand tu as une application qui fait du chat et que tu dois maintenir une connexion réseau active et que si jamais tu perds le réseau et que tu scadules une reconnexion bah c'est des timers en fait que tu vas pas te reconnecter immédiatement dès que tu perds la connexion donc tu es obligé de faire des set timeout tu sais avec les algorithm qui te permett de si le serveur est pas disponible tuévite de te reconnecter trop fréquemment enfin tu fais des [14:58] exponent back off tout ça ça c'est des timers et en fait tu peux pas le faire euh quand on a quand on onglais il est en background et le problème c'est que du coup ça c'est dans un safari navigateur mais les mêmes règles s'appliquent sur une WebView Tory donc tu vois en fait le fait de dépendre de Safari et de de cette WebView donc tu as pas le contrôle tuapporte des problèmes et du coup si tu passes sur une version de MacOS différente la version de Safari peut-être sera différente et donc la WebView sera différente et donc du coup en fait le ton app elle va pas forcément se rendre pareil pour [15:32] une un même exécutable à une même version sur différentes versions de MacOS et de façon similaire si tu arrives sur Windows ça va être je sais plus comment ça s'appelle sur Windows mais ça va être la WebView Edge donc en application Tory elle sera tout aussi légère sur Windows mais elle va dépendre en fait d'un d'un moteur de rendu qui sera totalement différent donc en fait tu commences à avoir des contraintes qui sont enfin tu peux pas distribuer ton application de de façon universel et et notamment ce que j'ai remarqué en pratique c'est que les webvieew sur Mac en fait elles se comporte pas du pas tout à fait pareil [16:08] quand tu es les packager en mode WebView que sur un vrai safari je sais pas j'avais des problèmes de scroll un peu bizarres sur l' enfin des comportements qui étaient pas tout à fait pareil du coup il faut faire quelques if enfin quelques fixes on va dire CSS JS spécifique à ton build ton build de Thory gros Thory nécessite qu'on check un peu sur chaque navigateur comment ça se passe en fait pour être sûr que tout tout s'affiche bien quoi par rapport à électron o on peut passer mais est-ce que tu vois d'autres avantages à utiliser Thory misise à part le fait d'avoir un une app qui est légère par [16:38] rapport à électron en fait parce que là on se dit B en fait pourquoi je m'embête autant lui balancer un gros un gros bundle et puis pas m'embêter tu vois B dans en fait je dirais que si tu as une app qui a pour objectif de de tourner à H24 sur l'ordinateur de de des utilisateurs je pense que c'est quand même vachement plus cool d'avoir une app qui est extrêmement légère donc à ce moment ah oui en terme de RAM aussi ouais de RAM si tu as de la si tu as du scale on va dire avec plein d'utilisateurs franchement l'investissement vaut la chandelle tu vois parce que c'est infiniment [17:08] effectivement tu pourrais tenter de faire une application native donc de partir carrément dans la voie full Swift Swift tu je sais pas enfin selon ce que tu développes ça peut avoir du sens mais si tu as toute une grosse base utilisateur qui est sur Windows ou sur un navigateur web et tu dis ok il y a des gens qui veulent une app Mac mais c'est tellement coûteux en temps et en argent de la développer euh il y a une grosse différence entre le faire sur Tory ou électron par exemple en terme de ressources d'impact ressource et si ton application tourneage 24 sur l'ordinateur de tes utilisateurs [17:38] franchement bah en fait le truc c'est que dans beaucoup de cas quand tu vas regarder ton icône batterie tu sais ils vont mettre application avec utilisation d'énergie significante significante energy usage et ils vont te mettre ton application et ça parce que parce qu'elle tournera sur électron c'est un peu le cas de discord par exemple je sais pas si tu as remarqué mais discord c'est Spotify Spotify un moment si tu vois il y en a plein ouais bah c'est ça en fait tout ça c'est des applications Web et qui tournent sur des systèmes qui sont quand même assez lourd et Spotify je sais pas qu qu'est-ce qu'ils [18:09] utilisent mais discord il me semble bien qu'ils utilisent éctron et franchement c'est c'est une horreur euh pour la batterie et ça peut Prompter tes utilisateurs à se dire ok bah je vais fermer l'application parce que elle consomme de l'énergie tu vois ou je la désinstalle tu vois ou j'utilise la version web tu vois et si tu veux que tes utilisateurs à un moment ils utilisent euh ton application il la laisse ouverte bah il faut qu'elle respecte un peu la batterie quoi et il y a plein de Mac tu vois qui ont pas beaucoup de mémoire vive genre il y a beaucoup de gens qui ont des Mac avec 8 [18:37] Go de RAM tu vois encore aujourd'hui bah 8 Go de RAM en 2024 c'est pas beaucoup avec les applications qu'on fait tourner to déjà quand tu considères que l'alication éectron ça consomme 1 Go quoi le truc c'est que tu vois genre en terme de de marketing c'est bien d'avoir en terme de rétention d'avoir une application Tory puisque les gens ils vont tu for améliore l'usage en fait si les gens ils ferment pas ton app ils vont utiliser plus et tuas plus de chance qu'il qu'ils aillent au bout des enfin par quand ça lagu en fait tout le monde ils font la même chose tu vois ils [19:06] relancent ils des mal ordi ou il désinstallent au bout d'un moment euh il y a la je pense que les gens sont de plus en plus exigeants en plus sur la fluidité parce que mine de rien on commence à avoir beaucoup d'applications des surcouche moi paremple j'utilise rcast tu vois j'utilise même plus Spotlight par défaut euh j'ai mon navigateur il j'utilise arc et Arc on sait qu'il est lourd donc il y a a plein de choses qui s'empilent et cetera et tout le monde n'a pas des MacBooks à 3000 € donc il faut aussi euh euh t tester sur plein d'ordin en fait avec le feedback quoi ouais c'est ça mais du [19:35] coup quand on par dis- ouais vas-y non quand on parlait de la sécurité tu me posais de la question tout à l'heure de la sécurité je viens de m'en souvenir mais mais mes thories en fait rend configurable le modèle de sécurité quand tu quand tu échanges entre les process quand je parlais du fronton et du ben tout à l'heure savoir que ton fronton c'est ton application web et du coup en fait si tu fais une application de chat tu reçois des messages de tes utilisateurs qui est pas forcément trusté euh ton application elle est vulnérable au XSS enfin toutes les failles d'injection JavaScript que tu peux imaginer et du coup potentiellement [20:09] une XSS peut permettre de remonter à l'IPC Tory la librerie Tory qui permet de faire de l'IPC et qui permet d'envoyer des messages au backend Tory c'està-dire à une application qui tourne nativement sur ton ordinateur et qui a accès par exemple au système de fichierers et et ça c'est potentiellement assez dangereux tu vois et je sais que par fait tu peux avir un haur qui dit ok je Targ cette application je sais que cette application a une fonction qui permet de télécharger un fichier et du coup j'appelle du code derrière qui permet de modifier le système de fichier ou potentiellement de lire des fichiers sur ton dossier sur ton dossier personnel tu [20:41] vois qui sont potentiellement confidentiels je sais que Thory alors je l'ai pas encore exploré mais je sais que Tory a deux modèles de sécurité il y en a un par défaut qui est assez laxiste qui est simple il y en a un deuxième qui ils appellent ça le Brownfield en gros c'est je crois que la définition Brownfield quand tu regardes sur wikipéia mdiia c'est les techniques d'ingénierie en fait où tu sais en fait on on veut pas trop modifier les ce qui est c'est un peu comme imaginer tu construis sur de la terre tu fais Brown field tu vois genre quelque chose qui est sale tu vois et tu veux [21:11] pas trop modifier en fait le l'environnement autour de toi parce que c'est trop compliqué parce qu'il y a trop de de choses existant tu vois de passif tu vois et du coup tu construis par-dessus et puis tu essayes d'interfacer ça avec la meilleure des compatibilités ça c'est le modèle de sécurité par défaut donc en gros tu as pas vraiment de sécurité mais tu as un modèle de sécurité que j'ai pas encore observé qui permet de faire de signer carrément les messages que tu envoies entre le fontin et le backend avec de la crypto tout ça même pour éviter qu'il y a d'autres processur processus sur l'ordinateur qui viennent je sais genre [21:41] commencer à à essayer de faire man in the middle ou parler envoyer des messages qui sontouffés je sais que one password faisait beaucoup ça sur la version 7 entre la l'extension navigateur et ton one password parce que tu as un échange de mot de passe du coup et même même si c'est en local sur ton ordinateur si tu veux il y a un modèle de sécurité qui peut Perre de te protéger contre d'autres applications qui pourrai potentiellement tourner sur ton ordi et qui seraient potentiellement euh bah des applications qui t'attaqueraient tu vois c'est assez poussé mais bon tu tu vois tu as des modèles de sécurité qui sont [22:10] configurables et ça je sais pas si c'est possible avec elctro en tout cas c'est battle ready quoi pour tu peux commencer à utiliser pour la plupart des projets SAS qui ont besoin de faire une application native ils peuvent y aller là-dessus c'est à mon avis avant qu' heurte un cas que T ne gère pas il y a le temps un peu ouais alors après pour les gens qui qui veulent de la productivité chercher la simplicité je recommanderais commme électron c'està-dire genre les personnes qui veulent juste avoir une app qui soit lancée je sais pas sais la personne qui l'utilise elle la lance et puis elle fait un truc elle la ferme ça c'est [22:39] électron c'est c'est nickel pour ça euh après si c'est une application qui est utilisée à 24 c'est que je recommanderais d'aller chercher un peu plus sur la légèreté même si ça demande de l'investissement ouais après tu vois même une application qui permet de resiz les images et cetera tu peux tu peux dire que c'est des applications que tu ouvres et que tu refermes mais il y a des designers qui vont l' vooir tout le temps en ver tu vois tu fais une application qui faire toute la manipulation d'image et ce en fait ça dépend beaucoup des personn et de voir l'usage qu'ils ont j'avais noté d'ailleurs c'est facile de débuger [23:08] dessus oou tu es tombé des fois sur des des des Edge cas qui t'ont vraiment fait perdre beaucoup de temps bah débuger si si tu considères que la les death tools de Safari sont sont sont bien ça sera ça sera convenable les dev tools de Safari pour moi j'aime pas du tout donc parce qu'en fait tu peux les poper tu fais tuas une tu peux tu peux les lancer avec quand tu es en mode développement tu peux faire option commande i là et ça d ça ça ouvre les dev tools mais en fait c'est c'est exactement les mêmes que ce de Safari donc en fait je développe [23:41] absolument pas avec ça donc ce que j'ai c'est que j'ai un système qui permet de remonter les logs du frontend donc dans vue c'est avec le le V loger je pense et je crois me souvenir et ça remonte au backend Thory en fait les logs et après ça les log dans un fichier sur l'ordinateur donc c'est c'est sur le slash librairie de ton MacOS du coup ça permet d'avoir un fichier central de log un peu comme si cétait une application native et l'avantage à ça c'est que ton backend et ton frontend peuvent remonter les logs avec différents logueurs au même endroit donc ça ça pe permettre de débuger assez [24:12] facilement euh après je t'avoue que je débug plutôt sur la version sur Firefox tu vois buune version web de mon app et le principal debugging il se fait là euh l'avantage en fait de ce genre de c'est que tu as pas en général quand tu la package tu as pas énormément de code spécifique à la version Mac tu vois ou Windows à écrire dans Tory c'est plus le gros de ton application se fait sur un browser en fait du coup tu as la productivité du développement d'une app d'une app web et le déboggage sur le des death tools de Firefox par exemple qui sont très bien [24:49] et après le reste pour t c'est assez simple quoi il y avait aussi un truc que j'avais noté dans ta conférence que j'avais trouvé très intéressant c'était comment est-ce que tu gères les mise à jour avec Thory pour prose justement quand on alors ceux qui va avoir c'est prose.org et tu as c'est différent de ce que tu ce que faites sur cris d'ailleurs je crois pour mettre à jour si tu peux aller en détail là-dessus h ouais en fait c'est c'est pareil différent à la fois c'est pareil en le sens où Tori comme électron va te fournir une seule commande qui te permet de bah du coup de [25:20] générer tes tes exécutablees ton point app enfin ton point exé pour Windows et en parallèle de de ça en fait il est capable de te générer un fichier manifeste donc c'est un point Jason euh que tu vas héberger sur un serveur ça peut être un Amazon S3 et en fait ça va être ce que tu vas donner à tes applications dans ta configuration c'est ton url de mise à jour qui va contenir les dernières versions disponibles de ton application avec les signatures cryptographiques tu sais de tes de tes de tes applications à jour et en fait toutes C toutes les versions que tu as installé sur les machines des gens elles [25:56] vont venir de temps en temps checker tu sais quand tu fais check for software update il vient juste faire une requête GET HTTP sur l'URL que tu lui as donné du manifeste et il va regarder est-ce que j'ai la dernière version et il est capable du coup de télécharger automatiquement la nouvelle et de redémarrer automatiquement alors avec ces deux systèmes différents entre électron et th je sais pas ce que c'est ça l' système un peu custom c'est Squirel je sais plus je sais qu'éctron utilise un système de mise à jour qui s'appelle Squirel qui est assez bien et qui permet de packager aussi je sais plus mais [26:30] bref ça c'est assez similaire en fait ça télécharge ex ça va checker si un exécutable il est nouveau sur après derur ça va l'installer quoi ouais c'est ça j'avais une question du coup c'est on peut publier j'imagine en sur l'App Store de MacOS en fait dans l'application t derrière ouais tu peux publier sur l'App Store en fait le le Builder de de Tory en fait retour retournes un exécutable signé fait tu fournis ta cl développeur enfin ta clé de production Apple ça te signe ton exécutable et puis après ben tu tu le balances sur les app stores tu tu peux le même le permettre un téléchargement [27:07] direct normal par contre alors moi par exemple dans mon cas sur prose j'utilise beaucoup un système qui s'appelle la transluccence la vibrancy je crois qu'on appelle comme ça ça comme ça sur MacOS et en gros tu sais quand tu fais des AB MacOS par exemple tu ouvres ton Finder le la partie la sideb à gauche elle est transluccente un peu donc tu peux voir ce qu'il a ouais et ça en fait sur une application euh où tu utilises pas les AP natifs d'Apple donc typiquement bah une application comme Tory en fait ce que tu vois pas c'est que tu as la WebView qui est qui est là et en fait la [27:40] fenêtre qui vrappe la WebView c'est une fenêtre qui a été instanciée bah par du code natif quoi donc ça ça parle avec les API Apple et euh et en fait à des fois elle est blanche par derrière et tu peux activer en fait un mode translucent et après du coup tu peux quand tu mets de la transparence dans ton application euh si tu mets tout ton body HTML transparent en CSS et par exemple dans pr j'ai la sidebar en fait tu mets juste background color transparent et en fait derrière du coup tu vois en fait la le background de la fenêtre native des transucente et ça en fait pour activer [28:10] ça faut faut activer l'option AP privé donc private IPI de MacOS enfin de SDK et Tory et quand tu utilises cette option Apple ne te permet pas de publier sur l'App storeen fait il permettent pas en fait des applications qui utilisent la private API d'être publié sur l'App Store MacOS en revanche tu peux la tu peux quand même la faire télécharger tu sais sur ton site quand les gens il télécharge directement le point app il sera signé avec ta clé développeur Apple tout ça pas de souci mais tu pourras jamais le publier donc si tu veux publier par exemple dans mon cas si je veux publier prose sur l'App Store bah [28:48] je vais devoir en fait désactiver la translucence c'est-à-dire que je perd quand même un petit peu en en sexiness quoi sur l'application donc je vais devoir faire deux builds un build tu sais pas App Store et un build App Store ou le build App Store ser un peu plus moche donc c'est un peu bête quoi donc tu peux le faire mais avec des limitations et la communauté par rapport tu sens qu'elle est elle est assez active he sur toryi je vois que ça gagne un momentum de plus en plus là depuis 3 4 ans puis on entendant parler de plus en plus autour de nous ce que je vois c'est que [29:19] là aujourd'hui moi j'utilise la version 1 de toryi mais ils sont en train de travailler sur une version 2 qui est actuellement en betta c'est pour ça que je l'ai pas encore utilisé euh je t'avoue que je me suis pas trop intéressé au changeelog parce qu' elle est betta je voulais quand même avoir une app qui était faite au plus vite là la V1 Tory est déjà très fonctionnelle moi ce que ce que j'aimerais bien en fait sur les sur la version un Tory c'est pouvoir configurer tous les paramètres liés à ce qu'on appelle appnap sur sur un Mac tuas une fonction qui avait été introduite il y a quelques [29:48] années qui s'appelle appnap qui qui permet au système de décider en fait quand une app tu l'utilises pas et qu'elle est dans ton doc elle est ouverte mais tu tu tu interteragis pas avec elle est peut-être M même pas visible euh en fait il va mettre en pause l'application un peu à la même manière qu'un qu'un qu'un background Tab tu vois quand tu es dans Safari il va mettre en pause les timers tout ça et en fait ça permet d'économiser de la batterie pareil mais sur des applications natives c'estàd que normalement tu les fais en Swift Swift I et et ça s'applique aussi du coup comme [30:17] je disais à la WebView et et en fait Apple a permis de tuner un peu le paramètre tu sais genre la condition de appnap et est-ce que tu stoes les timers tout ça et ça par exemple il y a une PA qui est ouvert sur le site de enfin sur le gthub de Tory donc ça je l'attends énormément parce que ça ça ça m'a ça m'a causé beaucoup de problèmes parce que pros éant une application qui fait du chat pour faire les reconnexions par exemple quand tu perds le réseau quand tu réouvres ton Mac qui sort de la veille bah typiquement ça je pouvais pas le faire j'ai j'ai dû développer [30:47] moi-même en fait un Connection Manager en rust qui tourne sur le backend tu vois qui est pas soumis à tous les trucs enfin toute la machine virtuelle j'aV script sur le frontend et du coup tu arrives dans des complexités comme ça où tu es enfin tu perds du temps alors que tu vois sur un système type électrro bah tu peux déjà configurer depuis plusieurs années le tu vois le le behavior je crois que ça sappelle background euh background NAP ou quelque chose comme ça je sais plus exactement à vérifier je sais que sur crisp on l'a désactivé quoi c'estàd l'application elle est toujours euh elle est jamais en veille parce que [31:22] sinon on peut pas se reconnecter au wescket quoi quand elle est pas ouverte ça y ça tu vois c'est des trucs j'ai pas trop regardé mais j'aimerais j'aimerais que ça apparaisse en Tory version 2 pour que ce soit un peu plus plus versatile quoi d'ailleurs nous c'est un peu la c'est je me rends tellement compte à quel point euh il faut surtout pas faire le développeur cutting edge et partir sur des des versions tout tout le temps les plus les plus récentes faut leur laisser du temps tu l'avais dit dans un épisode sur et cetera et nous on a eu le même problème sur une base de données qui s'appelle [31:51] HDB là rest cette semaine il faut attendre que les choses soni matures avant de migrer dessus des applications qui sont utilisées par des milliers de personnes en fait sinon c'est un coup à en fait à devoir drade et perdre des jours de travail ou euh euh de de faire des laisser le faut laisser le temps en fait application de maturer avant de migrer dessus ça c'est vraiment la morale Quand tu es dans les tranchées tu la prends vite ouais ouais et sur ça moi j'avais c'était l'été dernier j'avais fait la mise à jour de enfin tout crispe quoi tout de l'Infra de crispe donc là il [32:21] faut s'imaginer que tous les jours je je mettais à jour un type de base de données genre redis MySQL Mongo et cetera bah mec on est passé de redis 5 à redis 7 redis 7 était stable he bah redis 7 au bout de quelques jours après la mise à jour il s'est mis à secfult en production donc tu imagines le le le master de redisk donc qui est le celui qui prend tous les les tous les écriture il crache d'un coup redis tu sais que la base de donné elle est in memory et elle se snapshot sur le disque je sais pas tous les 3h tous les enfin selon ta [32:53] config bah là on a perdu du coup les je crois que c'était 2 heur de d'ÉCR écriture en plus donc pere a des gens qui avaient créé des sites sur crisp et ben on avait plus la data juste à cause d'un secfult ouou et ça a été fixé dans une dans un patch et pourtant tu sais on avait installé la 7.013 un truc comme ça donc tu imagines quand tu vois 7.013 tu dis ok c'est des versions patch a priori c'est stable tu vois elle est elle est elle elle est packagé en plus dans le Debian Debian 12 donc c'était officialisé c'était pas une version beta [33:24] quoi et pareil pour ma ma SQL pour Maria dB on a eu des gros problèmes de corruption d'index comme ça sur une version qui était normalement stable dans desbian et donc même en fait peut-être qu'avec le le recul je recommanderais de d'utiliser quand vous faites vos mises à jour de distribution les Debian de toujours rester sur la Debian N-1 quoi c'est que nous on était passé Debian 10 à Debian 11 plus Debian 12 immédiatement en un été en fait on aurait peut-être dû rester en dbian 11 sachant que dbian 12 était la stable tu vois parce que le problème c'est quand tu quand tu es trop [33:57] vieux dB 10 tu peux faire toutes les mises à jour de sécurité mais il y a un moment quand tu veux installer un Mongo dB et que tu utilises le package tu sais Mongo dB community ils vont même plus te fournir les nouvelles versions de Mongo dB euh pour des vieilles versions de Debian donc tu vas être obligé de mettre à jour Debian donc ça va forcer des mises à jour de certains trucs qui sont installés genre des redis tout ça et et après tu te retrouves un peu tu sais sur un entre deux est-ce que je prends la dernière version ou pas h ouais et d'ailleurs tu avais un [34:27] truc cool que tu as appris la semaine dernière que tu voudrais nous partager pour terminer cet épisode sur toryi ah oui ne jamais alors quand vous quand vous développez un sas euh là là on parle de crisp qui est euh genre qui est utilisé internationalement donc tu as un data center on a un data center dans notre cas en Europe donc on utilise les clot FLIR tunnel pour que les gens se connectent plus rapidement de par exemple là dans ce cas-là c'était l'Asie et bien nos nos clients en Asie en fait genre pendant plusieurs heures d'affilé ils avaient des erreurs 500 de la part de claud flair où ils arrivaient plus du [35:04] tout à accéder à crisp et en fait j'ai appris que c'est que il y avait eu enfin c'est ce que le support de notre hébergeur nous a envoyé en avril fin fin mars ou début avril de cette année il y a eu les ous qui ont les rebelles ous qui ont coupé des fibres dans dans la mer Rouge c'est ça euh et en fait il y a des 25% du trafic ils ont coupé plusieurs fibres et 25 % du trafic entre l'Europe et l'Asie du coup a été perturbé c'est que tu dois le rerouter quoi sur des routes alternatives donc ça ce que ça fait en fait c'est quand tu [35:40] perds de la capacité autant de capacité réseau c'est que te l'Internet est fiable dans le sens où des routes alternatives sont trouvées mais aux périodes de pointe de trafic à certains heures de la journée certaines journées donc là on cétait le mercredi ou jeudi je pense qu'il y avait pas mal de trafic à 16h de laprê bah là on en Asie genre il y avait de la paacket de l à mort et les les gens en fait ils arrivaient même plus à accéder à crisp tu vois et donc ce que ça m'a appris c'est que quand tu fais une application internationale comme ça il faut toujours te dire ok il [36:11] faut que j'ai des systèmes de failover en place euh donc fournir un unpo d'API en fait secondaire qui va éventuellement permettre aux gens qui sont un peu loin de l'Europe de d'emprunter une route réseau un peu différente donc là dans ce cas-là on a moi j'avais implémenté un bypass clotfur et du coup j'utilise une librairie qui est assez qui est pas mal qui est assez simple qui s'appelle axios t retrive en fait c'est un c'est un truc que tu viens ajouter en module à axios quand tu le crées ton instance ton client axios et tu vas lui dire ok bah si la la request elle elle fail HTTP vers ton API dans ce [36:45] cas-là donc laapi de crisp euh donc au lieu euh juste de retourner directement ton promise pour enfin reject avec l'erreur HTTP euh tu vas retry suivant cette policlà donc tu lui donnes on va RET moi dans mon cas c'est une fois et tu vas changer le la base URL de la requête donc le nom de domaine qui sert à faire la requête à P et tu vas lui passer unom domaine de failover et donc en fait ça va j'ai créé juste un domain de failover pour notre API qui pointe vers un serveur qui est pas cl FL et et du coup les gens en Asie de manière automatique tu vois au lieu [37:21] de leur donner une au lieu qu' des erreurs rouges en fait l'application elle est juste ralenti et et ça marche quand même quoi on espère parce que là en fait on avait le support qui était en mode DDoS total en fin de semaine avec des gens qui ne pouvaient plus accéder à Chris donc c'est comme en fait tous les gens étaient persuadés que c'était nous qui av un problème tu sais que c'était l'Infra qui était down en fait tout était Green et on devait leur expliquer que c'était un problème de fibre entre l'Europe et l'Asie qui était créé par des rebelles tu arrives dans la géopolitique [37:54] au début je pensais que c'était un truc avec genre Chine Taiwan tu sais parce que genre on était tous les pays affectés se trouvaient en fait dans la zone dans cette zone là majoritairement et que genre tu sais il y avait des activités autour de Taiwan au même moment donc sais tu commences à te poser des questions euh sais tu arrives dans des tuas tu as pas le contrôle c'est des problème de éventuellement de géopolitique dans ce cas-là parfois c'est des bateaux de pêcheurs tu sais qui arrivent et qui sans faire gaffe coupent des fibres enfin tu sais c'est des problèmes à la con quoi et quand tu as une app qui [38:24] scale internationalement donc soit tu as plusieurs datas Center où tu fais des Data Center localisés au plus proche de la personne pour éviter les problèmes de fibr sous l'océan bah soit tu fais des techniques comme ça de failover ouais enfin tu sais c'est pas magique hein h ben écoute ouais super intéressant euh écoute merci valent pour tous les informations sur Tory nésitez pas à regarder le site tory.a pour ceux qui veulent non c'est Tory Tory je crois le site je crois que c'est ouais tory. apppp ouais ouais et pour avir toutes les informations et puis à testerésitez pas aussi à N dire en commentaire s'il y a d'autres choses [39:01] vous avez bien aimé dans qu'on aurait pas mentionné pouir compléter cette vidéoésite pas vous abonner si ça vous a plu merci pour T éclairc et je une agréable semaine à bientôt --- About this transcript Read from YouTube's own caption track and laid out by ViewRank AI (https://viewrankai.com). ViewRank AI finds the videos already beating a creator's own average on Instagram, TikTok and YouTube Shorts, transcribes them from the audio itself in more than 60 languages, and turns what worked into new ideas and scripts. Free transcript tools, no account needed: https://viewrankai.com/tools How to read any video this way: https://viewrankai.com/llms.txt