Développement d’application en Flutter : retours d’expérience (2/2)

Au cours du développement de l’application PeerTube, nous avons acquis certaines expériences dans le choix des technologies employées et les freins que certaines décisions ont entraîné. Nous les partageons ici.

Si vous ne l’avez pas déjà lu, nous vous conseillons de commencer par l’article précédent.

Publication sur les magasins d’application

Publier une application de streaming vidéo issue du fediverse sur les différents magasins d’applications a été un vrai parcours du combattant.

Entre les politiques parfois très strictes des stores, et la sensibilité autour des contenus vidéo — notamment ceux générés ou diffusés par des tiers — il a fallu redoubler de prudence. Apple et Google considèrent en effet qu’en tant qu’éditeur de l’application nous serions responsables de tout le contenu auquel l’application permet d’accéder, et sont particulièrement virulents sur la question dans le cas des formats vidéos (bien davantage que pour une application de podcasts ou même un navigateur internet, assez curieusement). Voici donc un retour sur les différentes étapes, de la toute première soumission à la mise en production.

Les précautions prises

Pour maximiser nos chances d’être acceptés sur les stores, nous avons pris plusieurs précautions dès le départ.

Filtrage des plateformes accessibles

Première mesure : restreindre l’accès aux plateformes via un système de filtrage utilisant des identifiants spécifiques à chaque magasin. Cet identifiant permet de maintenir une liste d’autorisation (allowlist) de plateformes de confiance adaptée à chaque store :

  • Sur le Play Store (Android), seule une allowlist restreinte de plateformes est accessible afin de répondre aux exigences de Google.
  • Sur l’App Store (iOS), l’allowlist est encore plus limitée, Apple imposant des critères de validation particulièrement élevés.
  • Sur F-Droid, en revanche, toutes les plateformes listées dans notre index (qui est modéré) sont accessibles sans filtrage supplémentaire.

L’avantage de ce système basé sur des tags, c’est qu’il est entièrement déporté côté serveur. Autrement dit, si nous devons retirer une plateforme problématique ou en ajouter une nouvelle, cela peut être fait sans mettre à jour l’application elle-même. Ce fonctionnement offre une grande souplesse et réactivité en cas de besoin.

Pas d’ajout manuel de plateformes au début

Pour garantir une validation rapide lors de la première soumission, nous avons volontairement désactivé la possibilité d’ajouter manuellement une plateforme dans l’application. Ainsi, seuls les serveurs autorisés par notre filtre, dont le nombre était très réduit, étaient disponibles.

Une fois l’application validée et disponible sur le Play Store, nous avons réactivé cette fonctionnalité manuelle côté Android, en observant attentivement si cela posait problème. Après plusieurs mois sans retour négatif, nous avons ensuite ouvert cette possibilité sur iOS également.

Présentation et stratégie de déploiement

Par ailleurs, pour mettre toutes les chances de notre côté, un soin particulier a été apporté à l’interface utilisateur de l’application ainsi qu’aux fiches des stores (miniatures, descriptions, mots-clés, captures d’écran, etc.), les stores étant également très sensibles à l’apparence, à la qualité perçue et au respect des bonnes pratiques UX/UI.

Nous avons décidé d’y aller étape par étape :

  1. D’abord le Play Store, plus rapide et souple.
  2. Puis l’App Store, plus exigeant mais incontournable.
  3. Et enfin F-Droid, qui demande une approche différente essentielle pour le public libriste.

Google Play Store, une validation sans accroc

Pour la publication sur le Google Play Store, la documentation officielle Flutter a été suivie : https://docs.flutter.dev/deployment/android

Le Play Store permet plusieurs types de déploiement, utiles pour tester différentes étapes de l’application :

  • Test interne : permet de distribuer l’application à un petit groupe de testeurs internes (jusqu’à 100).
  • Test fermé : permet de cibler un groupe restreint plus large via une liste d’adresses email ou un groupe Google.
  • Test ouvert : permet à n’importe quel utilisateur de rejoindre le programme de test via un lien public.
  • Production : c’est la version stable, publiée pour tous les utilisateurs sur le Play Store.

Les étapes de validation

Chaque type de déploiement est validé automatiquement par Google, avec des délais très courts :

  • Les tests internes et fermés sont généralement disponibles en moins d’une heure.
  • Les tests ouverts et la mise en production peuvent prendre quelques heures, rarement plus.

Google a toujours accepté l’application dès la première soumission, sans demander de modifications ou poser de questions. Aucun échange, aucun retour de leur part : uniquement la validation après envoi et un changelog bien rédigé.
À croire que les précautions mises en place en amont ont été suffisantes… voire qu’on aurait pu être un peu plus détendus !

Apple App Store, les complications…

Une fois l’étape Google franchie haut la main, direction Apple — réputé pour être nettement plus exigeant.

Comme pour Android, j’ai suivi la documentation officielle Flutter pour le déploiement iOS :
👉 Flutter iOS Deployment

Sur iOS, les applications peuvent être distribuées via deux canaux principaux :

  • TestFlight : pour partager des versions bêta avec un groupe de testeurs (jusqu’à 10 000). Le processus est plus souple que pour la production, mais reste soumis à validation.
  • Production : la version stable et publique de l’app, visible sur l’App Store.

Les étapes de validation

L’avertissement de Gabe

Avant de soumettre PeerTube sur iOS, nous avons échangé avec Gabe, développeur du projet OwnCast, qui avait essuyé plusieurs refus de la part d’Apple. Il nous a transmis ses précieux retours et stratégies pour répondre aux fameuses App Store Guidelines. Voici un résumé :

  • Guideline 1.2 – Safety – User Generated Content
    Solution : intégrer un système de signalement côté client, qui envoie un email à un modérateur capable de retirer une instance si besoin.
  • Guideline 5.2.3 – Legal
    ➤ Problème : Apple considère que l’app pourrait donner accès à des contenus vidéo ou audio tiers sans autorisation, ce qui pose un risque légal.
    Solution : fournir un document PDF listant chaque serveur vidéo préconfiguré dans l’app, avec la mention “Authorized” pour chacun. Apple ne se satisfait pas d’une simple déclaration : ils veulent des preuves tangibles.
  • Guideline 3.1.1 – Business – Payments – In-App Purchase
    Problème : l’app permettait de faire des dons via des liens comme PayPal, OpenCollective, KoFi, etc.
    Solution : supprimer toute interaction liée au paiement dans l’app. Tous les liens renvoyant vers des dons doivent ouvrir une page dans un navigateur externe (Safari, Chrome…). Aucun lien de paiement ne doit être affiché dans une WebView interne.
  • Guideline 5.2.3 – Legal (bis)
    Solution : fournir un maximum de documents, liens et preuves que les catalogues et services de découverte intégrés sont bien opérés par nous, et non une tierce partie non autorisée.

Merci encore à Gabe pour ces conseils précieux !

On se lance… et ça coince.

Notre plan était pourtant sans accros !

Malgré l’application rigoureuse des conseils de Gabe, Apple n’a pas fait de cadeau.

Entre Lokas et PeerTube, les deux apps que nous tentions de publier fin 2024, nous avons essuyé 8 refus pour Lokas avant d’obtenir la validation, et 3 refus pour PeerTube.

Dès qu’un reviewer Apple trouvait un souci (même mineur), la demande était rejetée, et il fallait corriger point par point avant de pouvoir espérer passer à l’étape suivante.

Voici les principales guidelines qui nous ont posées problème :

Guideline 5.2.3 – Legal

Votre application contient du contenu ou des fonctionnalités susceptibles de porter atteinte aux droits d’un ou plusieurs tiers. Plus précisément, votre application fournit un accès potentiellement non autorisé à des services tiers de streaming audio ou vidéo, à des catalogues et à des services de découverte.

Malgré l’envoi d’un document listant les plateformes autorisées dans l’app iOS, cela n’a pas suffi à convaincre Apple. Nous avons donc répondu :

Les plateformes répertoriées dans l’application PeerTube ont accordé à l’application PeerTube le droit de répertorier et d’accéder à leur contenu vidéo.

Ces autorisations sont répertoriées dans le document « Plateformes autorisées pour l’application PeerTube ».

Pouvez-vous expliquer quel type de preuve nous devons fournir pour démontrer que nous avons le droit d’accéder à ce contenu ?

Le document joint était rigoureusement le même que celui soumis lors du dépôt de l’application.

Guideline 3.1.1 – Business – Payments – In-App Purchase

Apple nous a signalé un lien vers le site joinpeertube.org dans l’app, qui contient… un bouton de don. Ce simple lien externe a suffi à justifier un rejet.

Nous avons alors tenté une première réponse, en expliquant que tous les liens de dons ouvraient désormais une page externe dans le navigateur, et qu’aucune collecte n’était réalisée dans l’application elle-même. Nous avons souligné que cette approche respectait les guidelines de l’App Store, puisque le processus de don était totalement séparé des fonctionnalités de l’app. Malgré cette clarification, Apple n’a pas été convaincu.

En replongeant dans les App Store Guidelines, j’ai repéré un paragraphe en notre faveur :

Section 3.2.2 (iv) : Les applications qui ne sont pas approuvées en tant qu’organisations à but non lucratif ou autrement autorisées en vertu de la section 3.2.1 (vi) peuvent collecter des dons caritatifs en dehors de l’application, par exemple via Safari ou SMS.

J’ai donc renvoyé un message à l’équipe de validation, en expliquant que l’application ne collecte aucun don en interne : tous les liens de soutien ouvrent une page externe dans le navigateur (Safari), conformément à la section 3.2.2 (iv) des App Store Guidelines qui autorise ce fonctionnement pour les apps non caritatives. J’ai ainsi demandé une réévaluation de la décision ou des précisions si d’autres points posaient problème.

🎉 Résultat : l’application PeerTube a officiellement été publiée sur iOS !

Depuis, j’ai soumis 5 mises à jour successives de PeerTube, toutes validées sans accroc — y compris celle qui introduisait la fonctionnalité de connexion.
Chaque mise à jour a été validée en quelques heures, au plus sous 24h.

L’App Store, ce n’est jamais simple… mais avec de la patience et une bonne lecture des guidelines, ça passe.

F-Droid, une autre aventure

Une fois l’étape Apple validée, je me suis attaqué à la soumission sur F-Droid.
Ici, ce n’est pas un problème de guidelines, mais plutôt de processus.

La documentation officielle est plutôt éparse, et j’ai eu du mal à trouver une ressource exhaustive pour un projet Flutter. Je me suis donc appuyé sur :

S’adapter au fonctionnement de F-Droid

F-Droid a des exigences particulières :

  • Le build doit être reproductible et entièrement libre.
  • Toute dépendance externe doit pouvoir être vérifiée ou supprimée.
  • Il faut déclarer les anti-features, c’est-à-dire des limitations qui ne correspondent pas aux idéaux du libre.

Exemple : TetheredNet

L’application PeerTube utilise par défaut deux services maintenus par Framasoft :

Ces services ne sont pas configurables par l’utilisateur, ce qui a été considéré comme une “anti-feature” du type TetheredNet (connexion à un service centralisé sans possibilité de le changer).

Cette mention a donc été ajoutée lors de la soumission initiale.
Bonne nouvelle : depuis, cette anti-feature a été retirée, car nous avons rendu ces services personnalisables dans l’app.

Dépasser le blocage d’une dépendance obsolète

Avant de parvenir à la validation, nous avons rencontré un obstacle lié à une dépendance utilisée pour la gestion de la base de données locale. Cette bibliothèque, pourtant populaire au moment du choix initial, n’était plus maintenue et ne proposait pas de version compatible avec la dernière version de Flutter requise par F-Droid pour garantir la reproductibilité des builds. Ce blocage a empêché la compilation de l’application sur l’infrastructure F-Droid, rendant impossible sa publication.

Après analyse, il est apparu que la meilleure solution, pour des raisons de pérennité et de sécurité, était de remplacer cette dépendance obsolète par une alternative maintenue et compatible avec les exigences de F-Droid. Ce changement a nécessité une réécriture partielle de la gestion des données locales, mais a permis de débloquer la situation et d’assurer la stabilité du projet sur le long terme.

Le merge request de soumission

Après plusieurs itérations, nous avons enfin pu soumettre notre app sur F-Droid.
Vous pouvez consulter la MR ici : https://gitlab.com/fdroid/fdroiddata/-/merge_requests/17235

Et pour voir la configuration finale de l’application PeerTube sur F-Droid (fichier metadata/*.yml) : https://gitlab.com/fdroid/fdroiddata/-/blob/master/metadata/org.framasoft.peertube.yml

F-Droid demande rigueur et patience, mais l’expérience permet aussi de mieux comprendre les enjeux du libre et de la décentralisation.

C’était un vrai défi, mais on est fier·es de faire partie du catalogue officiel.

 

Nous en profitons pour vous rappeler que le financement participatif pour le développement de l’application PeerTube est en cours jusqu’au 17 juin 2025 !




Développement d’application en Flutter : retours d’expérience (1/2)

Au cours du développement de l’application PeerTube, nous avons acquis certaines expériences dans le choix des technologies employées et les freins que certaines décisions ont entraîné. Nous les partageons ici.

Pourquoi Flutter ?

Le développement d’applications mobiles pose rapidement la question du choix des technologies : faut-il créer une application distincte pour chaque plateforme, ou adopter une approche permettant de mutualiser les efforts ? C’est là qu’intervient le cross-platform : une méthode qui consiste à développer une seule base de code pour cibler plusieurs systèmes d’exploitation, principalement Android et iOS.

Le développement cross-platform présente ainsi de nombreux avantages. Il permet avant tout de réduire considérablement les coûts et les efforts de maintenance, puisqu’une seule base de code est nécessaire, limitant ainsi les corrections de bugs et les mises à jour multiples. Il offre aussi un déploiement plus large et plus rapide, en touchant un public plus vaste sans avoir à développer des applications distinctes.

Comme notre développeur n’était pas initialement spécialisé dans le développement mobile, il a dû se former pour maîtriser les outils nécessaires. Deux technologies principales se sont imposées dans notre réflexion : React Native et Flutter.

Nous avons donc mené une étude comparative afin de choisir la solution la plus adaptée à nos besoins. Après analyse, notre choix s’est porté sur Flutter. Pour plus de détails, vous pouvez consulter l’étude complète en suivant ce lien : https://framagit.org/wicklow/peertube-prototypes

Suite à ce choix, notre développeur s’est lancé dans l’apprentissage et la maîtrise de Flutter. Il vous partage son expérience à travers la suite de cet article.

Logo Flutter – Domaine public – Wikicommons.

 

Apprendre Dart et Flutter

La première étape a été d’apprendre le fonctionnement de Flutter. Les applications Flutter sont écrites en Dart, un langage orienté objet. J’ai donc commencé par explorer la documentation officielle de Dart et Flutter pour comprendre les bases.

Voici les différentes ressources que j’ai utilisées pour m’initier :

Choisir son architecture

Une fois ces bases acquises, je me suis penché sur la structure idéale pour le projet. Après avoir exploré différentes approches, j’ai opté pour une architecture “Feature First”. Cette méthode consiste à organiser le code par fonctionnalités plutôt que par type de fichier (comme les modèles, les vues, ou les contrôleurs).

L’approche “Feature First” offre de nombreux avantages. Elle apporte une clarté accrue au projet en isolant chaque fonctionnalité dans son propre dossier, ce qui simplifie la navigation et la compréhension de la structure du code. De plus, cette méthode favorise la modularité en rendant les fonctionnalités indépendantes, permettant ainsi leur réutilisation ou leur modification sans affecter les autres parties du projet. Enfin, dans le cadre d’un projet libre, cette organisation facilite la contribution des développeurs externes, qui peuvent se concentrer sur des fonctionnalités spécifiques sans interférer avec le reste du code.

Choisir ses dépendances

Chaque bibliothèque intégrée dans le projet doit être remise en question dans le but de s’assurer qu’elles répondent aux exigences fonctionnelles, qu’elles soient maintenables à long terme et qu’elles n’introduisent pas de risques techniques. Flutter étant une technologie encore jeune, il est important d’être prudent dans le choix des dépendances. Certaines bibliothèques peuvent manquer de maturité ou de soutien communautaire, ce qui pourrait entraîner des bogues ou des problèmes de mises à jour futures.

Voici quelques critères généraux pour choisir une dépendance sur pub.dev :

  • Vérifiez le nombre de personnes contribuant activement au projet sur GitHub. Une équipe de contributeur⋅rices plus importante indique souvent un projet plus robuste à long terme.
  • Assurez-vous que le projet est actif, avec des commits récents et des demandes régulières, de préférence de la part d’utilisateur⋅rices différent⋅es.
  • Regardez le score global sur pub.dev, qui mesure la qualité des paquets.
  • Vérifiez la fréquence des publications.
  • Donnez la préférence aux paquets publiés par un⋅e éditeur⋅rice vérifié⋅e.

Les dépendances choisies

En prenant en compte ces critères, j’ai soigneusement sélectionné les bibliothèques nécessaires pour le développement de l’application mobile PeerTube.

Voici les principales bibliothèques retenues pour le projet, accompagnées des réflexions qui ont guidé leur sélection :

Le gestionnaire d’état

Un gestionnaire d’état (ou “state management” en anglais) est une approche ou un outil utilisé pour gérer l’état d’une application. Dans le contexte de Flutter, l’état fait référence aux données dynamiques ou aux informations qui peuvent changer au cours de l’exécution de l’application, comme l’entrée utilisateur, les données récupérées d’une API, ou encore l’état d’une animation.

Plusieurs approches et bibliothèques sont disponibles pour la gestion des états dans les applications Flutter, chacune avec ses propres avantages et limitations.

Approches de gestion d’état

  • StatefulWidget : le mécanisme intégré le plus simple pour gérer l’état local.
  • InheritedWidget : une solution native qui permet de partager l’état entre les widgets.
  • Variables globales : une approche où l’état est stocké dans des variables globales qui sont accessibles dans toute l’application.

Les bibliothèques populaires

Provider :

  • Pour : simple, léger et largement utilisé par la communauté Flutter.
  • Contre : nécessite un code standard et manque de fonctionnalités avancées.

Bloc :

  • Pour : hautement structuré, il favorise la séparation des préoccupations et est idéal pour gérer une logique d’application complexe.
  • Contre : courbe d’apprentissage abrupte. Nécessite plus de code de base que les autres solutions.

Riverpod :

  • Pour : une alternative moderne à Provider avec une API plus simple, une meilleure testabilité et la prise en charge de l’injection de dépendances. Elle supprime les contraintes de l’arbre des widgets de Flutter, ce qui la rend plus flexible.
  • Contre : elle est plus récente que les autres bibliothèques, mais son développement est très actif.

Riverpod a été choisi pour sa simplicité, sa flexibilité et son évolutivité, offrant une gestion globale de l’état indépendante de l’arbre des widgets. L’approche de Riverpod avec des variables globales me convient. En outre, l’intégration de la génération de code dans le projet promet d’améliorer les performances à l’avenir. Cependant, il est important de choisir une solution qui correspond à vos préférences et à vos besoins spécifiques.

Le routeur

Un routeur est un composant essentiel qui gère la navigation entre les différents écrans d’une application, permettant de définir les itinéraires, de gérer les transitions, de transmettre des paramètres via les URL, et de prendre en charge les liens profonds.

Plusieurs bibliothèque sont disponibles pour gérer la navigation dans les applications Flutter :

  • Navigator : inclus dans le SDK Flutter mais manque de fonctionnalités telles que les liens profonds.
  • AutoRoute : permet de générer du code pour simplifier la gestion des itinéraires, mais peut être difficile à configurer.
  • GoRouter : une bibliothèque officielle soutenue par l’équipe Flutter, combinant la facilité d’utilisation avec un support avancé de liens profonds.

Après analyse, GoRouter s’est avéré être le meilleur choix pour ce projet, en particulier pour :

  • Un support actif de l’équipe Flutter et une documentation complète, garantissant un choix fiable à long terme.
  • La prise en charge des liens profonds, essentielle pour rediriger les utilisateurs entre les pages web des plateformes PeerTube et l’application.
  • Basé sur l’API Navigator 2.0 incluse dans le SDK Flutter.

Le lecteur vidéo

Le lecteur vidéo est un composant essentiel pour l’application PeerTube, car il constitue le cœur de l’expérience utilisateur. Il était crucial pour nous de faire le bon choix de bibliothèque dès le début pour garantir une lecture fluide, une compatibilité avec différents formats vidéo, et une intégration harmonieuse avec les fonctionnalités de l’application.

Plusieurs bibliothèques sont disponibles et utilisées par la communauté Flutter pour implémenter la fonctionnalité de lecture vidéo :

  • video_player : une bibliothèque officielle soutenue par l’équipe Flutter qui fournit des fonctionnalités de lecture vidéo de base, mais nécessite une personnalisation importante pour les fonctionnalités avancées.
  • Chewie : une puissante surcouche autour de video_player soutenue par la communauté Flutter qui fournit une interface de lecteur pré-construite et hautement personnalisable et prend en charge les commandes de base telles que lecture/pause, le plein écran et les sous-titres.
  • BetterPlayer : un lecteur vidéo avancé construit au-dessus de Chewie, avec des fonctionnalités supplémentaires, mais pas très bien maintenu.
  • MediaKit : un ensemble plus récent qui vise à fournir une expérience de lecture vidéo cohérente et riche en fonctionnalités sur toutes les plateformes, bien que son écosystème et le soutien de la communauté soient encore en cours de maturation.

Après analyse, Chewie s’est avéré être notre premier choix en raison de son équilibre entre simplicité et fonctionnalité :

  • Facile à intégrer, il fournit une interface de lecture prête à l’emploi avec une configuration minimale.
  • Personnalisable, permettant aux développeurs d’adapter l’interface utilisateur et le comportement aux besoins de l’application.
  • Maintenu par la communauté Flutter, il garantissait sa fiabilité.

Cependant, après plusieurs mois d’utilisation, nous avons constaté que la maintenance de Chewie était plus faible que prévu. Certaines fonctionnalités et corrections de bugs présentes dans des merge requests n’étaient pas intégrées, ce qui a limité notre capacité à répondre rapidement aux besoins de l’application.

En conséquence, nous avons décidé de migrer vers video_player. Bien que cette bibliothèque nécessite plus de temps pour mettre en place une interface utilisateur personnalisée et des fonctionnalités avancées, elle offre un contrôle plus granulaire et une stabilité accrue. Cette transition nous a permis de concevoir une expérience utilisateur sur mesure tout en garantissant une meilleure fiabilité à long terme.

Les flavors

Nous avions besoin de deux applications distinctes :

  • stable : la version en production, destinée à être déployée sur les stores publics.
  • nightly : la version intégrant les derniers changements, basée sur la branche de développement.

Les flavors permettent de gérer ces deux versions de manière distincte, en créant deux applications séparées. Pour mettre cela en place, il est nécessaire de configurer les flavors sur chaque plateforme native ciblée (Android et iOS). De plus, chaque application doit être signée séparément pour chaque flavor. Enfin, le code Dart partagé par toutes les plateformes peut être configuré en fonction de l’environnement grâce à l’argument --dart-define-from-file, qui permet de fournir un fichier .env contenant les variables nécessaires.

Exemple de commande pour construire l’environnement stable :

flutter build apk --flavor stable --dart-define-from-file=env-stable.json

Pour plus de détails sur la configuration des flavors et la signature des applications, consultez ce rapport dans lequel nous détaillons comment nous avons mis en place ce système de flavor.

Les erreurs commises

Écrire des tests trop tôt

L’une des erreurs que j’ai commises au début du projet a été de vouloir écrire des tests unitaires et d’intégration dès les premières étapes du développement. Bien que les tests soient essentiels pour garantir la qualité et la stabilité du code, les écrire trop tôt peut s’avérer contre-productif, surtout lorsque l’architecture et les fonctionnalités de l’application ne sont pas encore clairement définies. En effet, au début du projet, de nombreux changements ont été apportés à la structure du code et aux fonctionnalités, rendant ainsi les tests obsolètes rapidement.

De cette expérience, j’ai retenu la leçon suivante : il faut accorder la priorité à la stabilité de l’architecture. Avant d’écrire des tests, il est crucial de s’assurer que l’architecture de l’application est bien définie et stable. Cela permet de réduire le nombre de modifications fréquentes des tests.

Sous-estimer la complexité des dépendances

Nous avons initialement intégré plusieurs bibliothèques sans évaluer pleinement leur maturité et leur compatibilité avec notre projet. Certaines dépendances se sont avérées instables ou mal maintenues, ce qui a entraîné des problèmes imprévus et des retards. Une analyse plus approfondie des dépendances aurait permis d’éviter ces écueils.

Ce parcours d’apprentissage de Flutter m’a ainsi permis de poser des bases solides pour développer l’application mobile PeerTube.

Dans le prochain article, nous aborderons une étape cruciale : la publication de l’application sur les stores (Google Play, App Store et F-Droid). Nous y détaillerons les démarches, les bonnes pratiques et les pièges à éviter pour réussir la mise en ligne d’une application mobile telle que PeerTube.

Nous en profitons pour vous rappeler que le financement participatif pour le développement de l’application PeerTube est en cours jusqu’au 17 juin 2025 !




Amenons PeerTube dans nos poches !

Grâce à votre soutien, nous (Framasoft, une petite association à but non-lucratif) développons PeerTube depuis sept ans ! D’un projet étudiant à un logiciel d’envergure internationale, notre solution de plateforme vidéo est désormais utilisée et reconnue par de nombreuses institutions !

Bien sûr, nous avons encore beaucoup de chemin à faire, et si la communauté de PeerTube grandit de jour en jour, nous percevons déjà quelques étapes cruciales qui permettraient à PeerTube d’être adopté par un plus grand public !

Avec votre aide, amenons PeerTube dans la poche de toutes et tous !

 

Soutenir PeerTube

 

Une application pour toutes et tous !

L’année dernière a marqué un tournant important pour PeerTube. En effet, nous avons engagé Wicklow pour travailler sur l’application mobile PeerTube, doublant ainsi notre effectif dédié au développement de PeerTube.

Oui, ça peut sembler un peu dingue, et pourtant, PeerTube n’a été développé jusqu’à présent que par un seul développeur salarié et une poignée de contributeur·ices bénévoles ! (Merci mille fois à vous ! 💖)

Nous réfléchissions depuis longtemps à construire notre propre application mobile, constatant l’utilisation massive des smartphones pour profiter de contenus vidéos. Grâce à vos votes sur notre plateforme dédiée au partage d’idées concernant PeerTube, nous avons été convaincu·es d’entamer ce chantier et souhaitons aujourd’hui mettre des ressources dedans !

Depuis sa sortie en fin d’année dernière en version préliminaire, l’application a beaucoup évolué et vous pouviez il y a quelques semaines découvrir la première version majeure ! Le détail des améliorations apportées par cette version sont consultables dans l’article de blog dédié.

 

 

Une bulle d’autonomie hors du système YouTube-Twitch-Vimeo

Plus qu’une application mobile, PeerTube est un écosystème vibrant : 1300 plateformes recensées, totalisant 300 000 comptes utilisateurices et 756 000 vidéos. 

Outre les nombreuses autres améliorations, la version 7 a apporté un nouveau design, pensé pour être plus moderne, accessible et mieux adapté pour les institutions.

Parmi ces institutions, nous retrouvons notamment le Ministère de l’Éducation Nationale français ou le GARR (réseau informatique des universités italiennes).

Pour toutes ces raisons, nous considérons que PeerTube est désormais un logiciel mature

(même si, oui, il y a toujours moyen de l’améliorer et nous allons œuvrer dans ce sens ! 😛)

 

Nous voyons en PeerTube un logiciel émancipateur, permettant un partage non-marchand des vidéos.

Que vous souhaitiez partager vos vidéos avec vos élèves, publier vos tutoriels de jardinage facile, ou avoir une plateforme vidéo autonome pour votre structure, tout est possible avec PeerTube !

 

Popularisons les vidéos et lives partagées par des humain·es, pour des humain·es !

Pour permettre à encore plus de personnes d’accéder à PeerTube, nous sommes ravi·es d’annoncer le lancement d’une campagne de financement participatif ! 🎉

Notre feuille de route pour la partie Web de PeerTube étant déjà financée, nous voulons concentrer sur l’amélioration de l’application mobile. Nous aimerions y apporter des fonctionnalités clés pour qu’elle facilite l’apport de contenus.

Ensemble, allons plus loin en amenant PeerTube dans les poches de tout le monde !

 

Quatre objectifs collectifs

PeerTube est pensé comme un commun, un outil appropriable par toutes et tous. Nous souhaitons développer l’application dans ce sens et avons donc pensé à quatre objectifs-clés nous permettant de nous en rapprocher.

Contrairement à la plupart des financements participatifs, nous ne proposons pas de « contrepartie » pour votre don. En soutenant PeerTube, votre récompense, c’est d’avoir contribué à un Commun, qui sert à toutes et appartient à tous.

Cependant, nous avons joué avec le concept, et vous proposons différentes « contributions » possibles, pour vous montrer le travail que votre soutien nous permet de réaliser.

 

15 000€ – Un PeerTube « Premium » gratuit pour toustes

Cet objectif permet de débloquer un « PeerTube Premium »… mais gratuit et pour tout le monde !

Sepia, la mascotte de PeerTube, qui porte un plateau sur lequel il y a du popcorn. Il y a une serviette blanche sur le tentacule qui porte le plateau. Ses yeux sont fermés et sa tête orientée vers le bas.
Sepia apporte le popcorn. CC-BY-SA David Revoy

  • Lisez la vidéo en fond pour pouvoir continuer d’écouter une conférence ou un cours sans interruption, même si vous avez besoin d’aller jeter un coup d’œil rapide à un document
  • Diffusez les vidéos sur votre télévision et montrez à vos ami·es le tutoriel vidéo super utile pour votre association
  • Recevez des notifications sur les nouveaux contenus publiés afin de ne plus manquer les sorties de votre vidéaste préféré·e
  • Changez la définition de la vidéo et économisez ainsi votre forfait data

Tout ça, sans publicité ! La magie d’une application pensée pour vous servir, pas pour vous pister ! 🪄

 

35 000€ – Partager des vidéos depuis votre poche

Parfois, vous n’avez pas de grosse édition à faire sur vos vidéos et souhaitez juste les téléverser rapidement sans passer par votre ordinateur.

C’est ce que vous permettra cet objectif !

Sepia, la mascotte de PeerTube, qui édite une pellicule de film à coups de ciseaux.
Sepia fait de l’édition. CC-BY-SA David Revoy

  • Gérez toutes les chaînes de votre compte, directement dans l’application
  • Modifiez les chapitres, sous-titres et autres informations de vos vidéos
  • Consultez les statistiques détaillées de votre contenu : combien de personnes regardent vos vidéos, pendant combien de temps, à partir d’où, etc.
  • Téléversez de nouvelles vidéos avec votre téléphone

Est-ce qu’il faut que l’application réponde aux besoins des vidéastes…? À vous de nous le dire, car nous avons bien envie de développer ces fonctionnalités d’ici à la fin de l’année.

 

55 000€ – Diffuser en live depuis votre téléphone

Pour que vous puissiez aussi bien partager en direct un mouvement social ou votre découverte de Séoul !

Sepia, la mascotte de PeerTube, fait un live via son smartphone. Elle fait le cul de poule avec sa bouche.
Sepia tourne un vlog. CC-BY-SA David Revoy

  • Configurez et gérez vos diffusions en direct sur votre téléphone, sans passer par OBS ! 😎
  • Utilisez votre périphérique et sa connexion, pas de matériel supplémentaire requis
  • Diffusez en live du bout des doigts, sans avoir besoin d’ordinateur
  • Plus besoin d’application secondaire dédiée aux lives, retrouvez tous vos besoins au même endroit !

Nous imaginons déjà les directs partagés depuis une manifestation, une conférence, un débat associatif. Néanmoins, si cet objectif est financé, nous n’envisageons pas le finir avant fin de l’année, et tablons sur une publication en 2026.

 

75 000€ – Soutenir Framasoft & PeerTube

PeerTube est un projet majeur dans l’histoire de Framasoft, mais il n’est pas le seul. Si Framasoft a pu développer PeerTube, c’est parce que notre association a été soutenue pour ses autres actions, par des dons.

Soutenir Framasoft, c’est ainsi contribuer à la construction d’un numérique solidaire, émancipateur et non-marchand.

 

Sepia, la mascotte de PeerTube, sur les épaules de Pinchot, la mascotte de Framasoft. Pinchot court. Les deux ont une expression joyeuse.
Sepia et Pinchot. CC-BY-SA David Revoy.

  • Nous ne faisons pas de profit : nous fournissons des Communs
  • Tous les dons financent tous nos projets, à la fois PeerTube mais aussi des dizaines d’autres
  • Nous maintenons PeerTube, avec un support gratuit et de qualité — ce travail de l’ombre, quotidien, se fait en plus des nouveaux développements
  • Nous dégooglisons plus de 2M de personnes par mois, en leur fournissant des services web qui permettent de s’émanciper des géants du numérique

Nous détaillerons chacun de ces objectifs dans des articles de blog dédiés, très prochainement ! Comme on dit dans le Bouchonnois : Stay Tuned!

Contribuer aux communs : un cercle vertueux !

En contribuant, vous ne donnez pas seulement pour l’application mobile PeerTube, mais pour l’ensemble des projets de Framasoft !

Voici un graphique montrant, dans le détail, la manière dont nous utilisons cet argent. Si vous souhaitez plus de détails, vous pouvez aussi consulter notre rapport financier.

Graphique sur la répartition de l'argent de Framasoft.

Ressources humaines : 73 %
Serveurs et domaines : 7 %
Frais de fonctionnement : 5 %
Interventions et projets ext. : 4 %
Communication : 1,5 %
Prestations projets : 6 %
Frais bancaires et impôts : 3,5 %
Graphique sur la répartition de l’argent de Framasoft.

Ce financement participatif est vraiment important pour nous car non seulement il nous permet de sécuriser l’argent nécessaire au développement du projet, mais aussi d’estimer l’enthousiasme du public pour l’application mobile et le projet PeerTube en général !

Cependant, soyons clair·es ! Nous chercherons à réaliser les améliorations proposées dans cette collecte que nous parvenions à nos objectifs ou non !
Si les objectifs de collecte ne sont pas remplis, nous devrons piocher dans les dons faits par la communauté francophone en fin d’année dernière pour l’ensemble des projets de Framasoft. Cela nous signifiera que notre enthousiasme pour PeerTube et son application n’est pas partagé. (Ça arrive, parfois ! 🤷‍♀️)
Nous nous demanderons alors s’il faut vraiment ajouter l’envoi de vidéos (ou les live) dans l’application, mais surtout s’il faut lever le pied dans notre stratégie de populariser l’écosystème PeerTube.

Votre soutien est notre boussole : à vous ne nous dire si vous partagez notre enthousiasme !

 

Soutenir PeerTube

 

Soutenez l’écosystème PeerTube en partageant votre attention…

L’écosystème de PeerTube dépasse le seul giron de Framasoft. Mois après mois, de plus en plus de personnes ou structures s’approprient le projet et le font vivre !

Grâce à un système d’extensions puissant, des développeurs et développeuses volontaires ne cessent d’étendre les fonctionnalités du logiciel. Le catalogue d’extensions de PeerTube comporte plus de 200 extensions, chacune permettant d’ajouter des fonctionnalités de PeerTube ou de modifier son apparence !

Côté communauté, celle-ci s’enrichit de différentes initiatives inspirantes !

C’est le cas, par exemple, du compte Mastodon Fedi.Video qui, depuis des années, aide à visibiliser les vidéastes publiant sur PeerTube !

Capture d'écran d'un message de Fedi.Video.

Le pouet dit :
« The excellent artist and libre fan David Revoy has an official PeerTube account full of art, art tutorials, reviews of art-related hardware etc. You can follow at:

➡️ @shichimi 

There are already more than 80 videos uploaded. If these haven't federated to your server yet, you can browse them all at https://peertube.touhoppai.moe/a/shichimi/videos

You can also follow Revoy's general account at @davidrevoy »
Un des nombreux messages de promotion de Fedi.Video.

 

Aussi, des plateformes spécialisées se développent, à l’image de MakerTube, dédiée à celles et ceux « qui font ».

 

Nous ne pouvons évidemment lister dans cet article toutes les initiatives géniales que nous repérons, mais nous tenons à vous dire un immense bravo à toustes pour votre travail formidable. Merci d’enrichir PeerTube de vos couleurs ! 🫶

Si vous souhaitez en savoir d’avantage sur l’écosystème PeerTube, vous pouvez vous inscrire sur la newsletter PeerTube. Vous recevrez ainsi des informations concernant les avancées du projet mais aussi sur les initiatives de la communauté !

Vous pouvez aussi suivre le compte PeerTube (et Framasoft) sur les médias sociaux (Mastodon et BlueSky) :

En plus des informations ponctuelles, nous y publions chaque semaine des astuces pour utiliser PeerTube !

Message du compte Framasoft promouvant une astuce PeerTube :

« Dans #PeerTube, vous pouvez ajouter des sous-titres à vos vidéos, que ce soit manuellement ou en les générant automatiquement !

Mais saviez-vous que vous pouvez utiliser le widget de transcription pour chercher dans ces sous-titres ?

👉 https://docs.joinpeertube.org/use/watch-video#transcription-widget
»
Exemple d’astuce PeerTube partagée sur Mastodon chaque semaine.

 

 

…et en nous aidant à récolter les fonds !

Nous nous donnons 3 semaines pour, collectivement, financer nos actions pour populariser PeerTube.

Nous croyons sincèrement que nous pouvons y parvenir car nous sommes convaincu·es que PeerTube est un Commun qui vous importe autant qu’à nous !

Alors si vous aussi souhaitez voir advenir un monde où PeerTube est utilisé par toutes et tous, soutenez-nous en faisant un don (si vous le pouvez) et en diffusant le site de la campagne autour de vous !

 

Ensemble, ré-approprions nous les plateformes vidéos !

Soutenir PeerTube




2025 PeerTube Roadmap !

We (Framasoft) are proud to present the 2025 roadmap for the project! PeerTube is improving thanks to (only) two developers, the financial support of donors, the support of the NLnet foundation, and external contributions, whether in the form of code, design (hi La Coopérative des Internets), or user feedback from hundreds of people! Thanks to all of you!

Already done at the beginning of the year

Before we list future improvements to PeerTube, we can already tell you what we’ve done at the beginning of the year.

Broadly speaking (since you can get the detailed version of what’s new in version 7.1 here), you’ll find the redesign of the « About » page, your PeerTube content as podcasts and improved playback comfort thanks to the update of the p2p-media-loader, the library that allows PeerTube to use P2P in the video player!

As for the released late 2024 app (available on F-Droid, the Play Store and the App Store), it allows you to watch videos (pretty handy for a video-viewing app, isn’t it?), have a local account so you can add videos to a « to watch later » list, explore platforms, channels and so on, all while avoiding the dark patterns of applications developed by the GAFAMs (like doom scrolling, ubiquitous notifications, etc.).

Version 0.6.0 (released end of January) now allows you to see comments under videos!

Illustration - Dans la mer Sepia, læ poulpe mascotte de PeerTube, dessine un grand chiffre sept avec son encre.
Illustration: David Revoy – Licence : CC-By 4.0

What’s coming this year

Channel transfer

This year will see the arrival of a much requested feature: the ability to transfer ownership of a channel to another account! Currently, a channel is linked to the PeerTube account that created it. It will soon be possible for the account associated with the channel (or the admin of the instance) to transfer the ownership of this channel and propagate this change throughout the federation (as is already the case when changing the ownership of a video).

This feature goes hand in hand with the development of another much-requested feature: shared administration of a channel (see… below 👀).

Instance customisation

For many instance administrators, it is important to be able to customise their platform as they see fit (in their own image, in the image of the institution they represent, etc.). That’s why we’re working on making it easier to make changes such as the general colours of the interface, the ability to add a logo, customise the video player, allow or disallow the integration of videos according to an allowlist/blocklist, and much more… This extensive customisation of the interface will be accessible to admins directly from the PeerTube web interface.

Set-up wizard

PeerTube is designed for a wide range of audiences: institutions, non-profits, media, companies, etc. In order to simplify the configuration of a platform, we are going to develop a graphical configuration wizard that will allow, after the installation of PeerTube, to apply and display several recommended configuration rules according to the desired profile of the platform (with the installation of plugins depending on the use case: adding chat if lives are authorised, LDAP/OpenID, etc.).

Illustration : David Revoy (CC-By)

Multi-user channel management

Once the work on transferring channel ownership is complete, we’ll finally be able to offer the multi-user channel management! To the public, the channel will belong to a main account, but can be managed by several other users in the same instance. These co-manager accounts will have the same rights (upload videos, create and manage playlists, customise the channel, etc.) but will not be able to:

  • delete the channel;
  • transfer it;
  • manage the list of co-managers

These changes will be accompanied by a number of design and database changes, which is a lot of work!

But also…

This year will also see an improved warning system for sensitive content and « quality of life » features for the management and moderation of instances, allowing institutions, associations, media, administrations, etc. to use PeerTube more serenely. This will be done via shared lists of instances or accounts to be banned and also via auto-tags preventing video publication that contain specific keywords. We’re also planning to add batch action capabilities on videos, so you can update the licence of multiple videos in a single action, for example.

What the year holds for the mobile application

The mobile application is an excellent way to facilitate the adoption of PeerTube by a wide audience. We now want to expand the audience to also include tablet and TV users.

We’ll also allow you to connect to your PeerTube account, giving you access to all your subscriptions, likes, comments, history, notifications, settings and playlists.

By the end of the year, you’ll be able to play your videos in the background, stream them from your phone to your « smart » TV (initially Android; Apple TVs will take a bit more work) and receive notifications. The video player will also be improved.

For content creators, it will be possible to upload and manage your videos, start a live broadcast and manage your channels directly from the application!

PeerTube moves forward thanks to you!

It’s thanks to the trust you’ve placed in us over the years, your financial (and/or moral) support, the help of la Coopérative des Internets and the funding of the NLnet Foundation that we can offer you this roadmap.

We hope you like it enough to continue to help us!




Feuille de route PeerTube 2025 !

Nous (Framasoft) sommes fiers de vous présenter la feuille de route 2025 pour le projet ! Si PeerTube s’améliore c’est grâce à (seulement) deux développeurs, au soutien financier des donateurs et donatrices, à celui de la fondation NLnet, et aux contributions externes, que ce soit au niveau du code, du design (coucou La Coopérative des Internets) ou des retours utilisateurices de centaines de personnes ! Merci à vous !

Déjà fait en ce début d’année

Avant de lister les futures améliorations de PeerTube, nous pouvons déjà vous parler de ce que nous avons réalisé en ce début d’année.

Dans les grandes lignes (puisque vous pouvez avoir la version détaillée des nouveautés de la version 7.1 ici), vous trouverez le redesign de la page « A propos », vos contenus PeerTube en podcasts ou encore un confort de lecture amélioré grâce à la mise à jour de p2p-media-loader, la bibliothèque qui permet à PeerTube de faire du P2P dans le lecteur vidéo !

L’application quant à elle, sortie fin 2024 (disponible sur F-Droid, le Play Store et l’App Store) vous permet de regarder des vidéos (plutôt pratique pour une application de visionnage de vidéos, vous en conviendrez), d’avoir un compte local vous permettant d’ajouter des vidéos à une liste « à voir plus tard », d’explorer les plateformes, les chaînes, etc., tout en sortant des dark patterns des applications développées par les GAFAM (comme le doom scrolling, les notifications omniprésentes, etc.).

La version 0.6.0 (sortie fin janvier) vous permet maintenant de consulter les commentaires sous les vidéos !

 

Illustration - Dans la mer Sepia, læ poulpe mascotte de PeerTube, dessine un grand chiffre sept avec son encre.
Illustration: David Revoy – Licence : CC-By 4.0

Ce que l’année nous réserve

Transfert de chaîne

Cette année arrivera une fonctionnalité très demandée : la possibilité de transférer la propriété une chaîne à un autre compte ! Pour le moment, une chaîne est liée au compte PeerTube qui l’a créée. Il sera bientôt possible pour le compte associé à la chaîne (ou à l’admin de l’instance) de transférer la propriété de cette chaîne et de propager ce changement dans la fédération (comme c’est déjà le cas avec le changement de propriétaire d’une vidéo).

Cette fonctionnalité va de pair avec le développement d’une autre fonctionnalité très demandée : l’administration partagée d’une chaîne (voir… plus bas 👀).

Personnalisation d’instance

Pour beaucoup d’admin d’instances il est important de pouvoir personnaliser sa plateforme comme bon leur semble (à son image, à celle de l’institution qu’iel représente, etc.). C’est pourquoi nous travaillerons à faciliter les changements tels que les couleurs générales de l’interface, la possibilité de mettre un logo, de personnaliser le lecteur vidéo, de permettre ou non l’intégration de vidéos en fonction d’une liste d’autorisation ou de blocage et plus encore… Cette personnalisation poussée de l’interface sera accessible aux admin directement depuis l’interface web de PeerTube.

Assistant de configuration

PeerTube peut s’adresser à différents types de public : institutions, familles, associations, médias, entreprises… Afin de simplifier la configuration d’une plateforme, nous allons développer un assistant de configuration graphique qui permettra, après l’installation de PeerTube, d’appliquer et d’afficher plusieurs règles de configuration recommandées selon le profil voulu de la plateforme (avec l’installation d’extensions selon le cas d’utilisation : ajout du tchat si les lives sont autorisés, LDAP/OpenID, etc.).

 

Illustration : David Revoy (CC-By)

Gestion de chaîne… à plusieurs

Une fois le travail réalisé sur le transfert de propriété de chaîne terminé, nous pourrons enfin vous proposer la gestion de chaîne(s) à plusieurs ! 🎉

Publiquement, la chaîne appartiendra toujours à un compte principal mais pourra être gérée par plusieurs autres utilisateurs de la même instance. Ces comptes co-gérants auront les mêmes droits (téléverser des vidéos, créer et gérer des playlists, personnaliser la chaîne, etc.) mais ne pourront pas :

  • supprimer la chaîne ;
  • la transférer ;
  • gérer la liste des co-gérant⋅es

Ces changements iront de pair avec de nombreux changements au niveau du design et de la base de données, ce qui représente un sacré travail !

Mais aussi…

Cette année apportera aussi une amélioration du système d’avertissement pour les contenus sensibles et des fonctionnalités de « qualité de vie » pour l’administration et la modération des instances, permettant aux institutions, associations, médias, administrations, etc., de s’emparer de PeerTube plus sereinement. Cela pourra se faire via des listes partagées d’instances ou comptes à bloquer, ou via des auto-tags empêchant des publications ou lives utilisant tel ou tel mot clé ! Nous prévoyons aussi d’ajouter des possibilités d’actions en lot, pour par exemple, mettre à jour la licence de plusieurs vidéos en une seule action.

Ce que l’année réserve pour l’application mobile

L’application mobile est un excellent moyen de faciliter l’adoption de PeerTube auprès d’un large public. Nous souhaitons élargir l’audience aux utilisateurs et utilisatrices de tablettes et de télévisions.

Nous allons également permettre la connexion à votre compte PeerTube, vous donnant accès à tous vos abonnements, likes, commentaires, historique, notifications, paramètres et listes de lecture.

En fin d’année, vous aurez la possibilité de lire vos vidéos en arrière-plan, de les diffuser depuis votre téléphone vers votre télévision connectée (Android, dans un premier temps ; les télévisions Apple demandant un peu plus de travail), et de recevoir des notifications. Une amélioration du lecteur vidéo sera aussi effectuée.

Pour les créateurs et créatrices de contenu, il sera possible de téléverser, gérer vos vidéos, démarrer une diffusion en direct et gérer vos chaînes directement depuis l’application.

PeerTube avance grâce à vous !

C’est à la fois grâce à la confiance que vous nous accordez depuis des années, votre soutien financier (et/ou moral), l’aide de la Coopérative des Internets, et le financement de la fondation NLnet que nous pouvons vous proposer cette feuille de route.

Nous espérons donc qu’elle vous plaira suffisamment pour continuer à nous aider !




Framamèmes : vos mèmes préférés en versions libres et accessibles !

Vous voulez produire du mème libre, artisanal et remixé ? Framasoft sort (vraiment) le service Framamèmes. Vraiment. Promis.

Un générateur de mèmes libres ? C’est une blague ?

Noyons le poisson dans le bocal : Framamèmes est une blague… mais une blague durable, qu’on compte bien continuer de maintenir même après ce 1er avril.

Vous pouvez d’ores et déjà vous rendre sur Framamemes.org, et tester vous-mêmes les mèmes à faire… comme chez mémé. Même que mémé aime les mèmes de millenials : si Framasoft a 20 ans, ses membres en ont (en moyenne) deux fois plus 😊.

Capture d'écran du site Framamèmes

Notez que ce n’est pas la première fois qu’à Framasoft, on prend la blague au sérieux et maintient le petit projet fun au-delà de l’annonce (l’occasion de vous faire redécouvrir Framaprout, Framadsense ou le fameux bingo du troll).

Les mèmes sont hors la loi… sauf chez Framamèmes !

Il faut dire que la culture du remix et du partage est (à peine) tolérée par les industries culturelles qui capitalisent sur le droit d’auteur et le copyright.

Fi du fair use, exit l’exception pour parodie… les mèmes pourraient tout à fait être considérés comme illégaux, et mener à des poursuites judiciaires si leurs ayants droits y voyaient un intérêt (même que c’est déjà arrivé).

C’est pour cela que Gee s’est jeté sur sa tablette graphique au cours d’un stream (sur PeerTube, parce qu’ici, on est libres de bout en bout) et s’est dit : « tiens, et si je faisais mes propres versions libres des mèmes les plus populaires ? »

La route est longue, mais le mème est libre

Avec son propre style de dessin bien connu du lectorat du Framablog, et en n’hésitant pas à franciser les mèmes, que ce soit simplement en traduisant les textes inclus dans les images (« draw 25 » sur la carte Uno devient « pioche 25 cartes ») ou même en appliquant le style français aux panneaux autoroutiers !

Comparaison entre les mèmes originaux et ceux de Framamèmes.
À gauche, les versions originales ; à droite, les versions dessinées ET francisées par Gee !

Quelques mèmes plus tard, il est devenu évident qu’un site web était nécessaire pour les partager. En ajoutant une pincée de JavaScript pour inclure un éditeur (libre, évidemment), et même une police libre (parce que All Fonts Are Beautiful, comme on dit)… on obtient Framamèmes !

Pour l’instant, une sélection restreinte de mèmes est proposée, mais Gee compte bien continuer à enrichir l’éditeur dans les semaines à venir ! N’hésitez pas à proposer les mèmes que vous voudriez voir adaptés en commentaires.

Des mèmes libres… et accessibles !

Partager des images en ligne, c’est bien : si elles sont accessibles à toutes et à tous, c’est mieux ! Une bonne pratique consiste à systématiquement inclure une description des images porteuses d’informations dans la balise prévue à cet effet (la fameuse balise alt en HTML).

Pas mal de médias sociaux, notamment Mastodon (le réseau de microblogging libre et décentralisé que nous plébiscitons à Framasoft), permettent d’inclure un tel texte alternatif au moment d’intégrer une image dans un message.

Eh bien avec Framamèmes, on a décidé de vous simplifier la tâche : lorsque vous créez un mème, vous avez la possibilité de copier en un clic un texte descriptif de votre image dans le presse-papier ! Parce qu’il n’y a pas de raison que tout le monde ne puisse pas profiter de vos créations dont on ne doute pas qu’elles vaudront le détour…

Lancé sur un coup de tête et de crayon

Franchement : c’était pas prévu, à Framasoft, de faire un 1er avril cette année. On a du boulot plein le cloud. On a une Assemblée Générale ce week-end.

Alors faire un 1er avril qui en plus est un vrai service que vous pouvez vraiment utiliser… on ne l’imaginait pas. Sauf que Gee nous l’a servi sur un plateau. Et puis ça nous amuse. Et puis c’est une raison de rappeler que les monopoles de la propriété intellectuelle, ça peut très vite effacer de jolis sourires.

Alors on dit merci à Gee (et aux petites mains qui ont aidé à l’accouchement 😄) et on rappelle que cet artiste libre essaie de vivre de son art : vous pouvez le soutenir en achetant son nouveau livre, en jouant à ses jeux vidéo, ou encore par un don.

L’art libre, c’est vraiment bien plus intéressant que de voir ces mèmes refaits par des IA, avec OpenAI qui pille tranquillement le style de Hayao Miyazaki… le même Miyazaki qui déclarait que l’art généré par IA était « tout à fait écœurant » et constituait « une insulte à la vie même » (voir notamment cet article (en anglais).

Mème. Sophie n'aime pas : mèmes générés par I.A. Sophie aime : mèmes faits main.

Et puis surtout : amusez-vous avec Framamèmes, faites tourner autour de vous, et faites des mèmes libres, quelle que soit la date !




Retours sur les ateliers Nextcloud menés par La Dérivation et l’Établi Numérique

En juin 2024, L’Établi Numérique et la Dérivation annonçaient vouloir organiser des ateliers d’appropriation de Nextcloud, logiciel libre de collaboration. Nextcloud est utilisé par des dizaines de millions de personnes de par le monde. Nous même, à Framasoft, l’utilisons pour Framagenda, Framadrive, et bien entendu Framaspace.

Or, il faut bien reconnaître que Nextcloud est un logiciel difficile à prendre en main, notamment pour les personnes qui le découvre.

Framasoft a donc fait le choix de participer financièrement et techniquement, en soutien à ces ateliers qui nous paraissaient forts utiles. En contrepartie, nous avons demandé aux animateur⋅ices de nous partager publiquement leur expérience. C’est donc ce retour, sous forme d’interview, que vous pouvez lire ci-dessous.


Tout d’abord, est-ce que vous pouvez vous présenter ?

Oui, bien sûr ! Nous sommes trois : Mélissa Richard chargée d’animation numérique pour ritimo, et Romain Renaud et Julie Brillet de la coopérative l’Établi Numérique. Au départ du projet, il y avait aussi Lunar, qui travaillait avec Mélissa au sein de la Dérivation. Tous·tes les quatre avons mobilisé les pratiques d’éducation populaire pour animer formations et ateliers autour des enjeux politiques du numérique et ce, depuis de nombreuses années.

Pourquoi avoir proposé des ateliers Nextcloud ?

Cela fait longtemps que nous militons pour un numérique émancipateur et que nous promouvons les logiciels libres comme un des moyens de sortir de l’emprise du capitalisme de surveillance. Nous utilisons Nextcloud dans un cadre professionnel et militant et avons individuellement développé une expertise sur cet outil, par exemple pour Mélissa en rédigeant la documentation pour Coopaname ou pour Romain en administrant plusieurs serveurs et en accompagnant les personnes utilisatrices.

Nous sommes convaincu·es de deux choses sur Nextcloud :

  • C’est un outil puissant, vraiment adapté au travail collaboratif et qui constitue une alternative intéressante à Google Drive
  • C’est un outil difficile à prendre en main pour une personne néophyte, et qui manque d’ergonomie et d’accessibilité.

Nous avons eu l’impression partagée en 2023 d’être à un moment de bascule. Alors que les problématiques liées aux géants du numérique sont de plus en plus connues, des initiatives réussie dans le champ associatif (Zourit ou Framaligue) et une dynamique poussée par Framasoft (Emancipasso, Framaspace) nous ont fait penser que nos compétences de formation et d’accompagnement seraient utiles.

Comment avez-vous construit ces ateliers ?

Nous avons mis un an à les réfléchir, puisque notre première réunion a eu lieu en visio en juin 2023, puis nous avons alterné des temps de travail en présentiel, en distanciel et en asynchrone pour aboutir à l’organisation de 4 ateliers en juin 2024.

Nous sommes parti·es d’une envie commune pour l’Établi Numérique et la Dérivation de proposer des formations et ateliers autour de Nextcloud, mais en mutualisant nos efforts plutôt qu’en se retrouvant en concurrence. On a commencé avec un partage de nos envies et disponibilités, mais aussi de nos appréhensions et contraintes et on s’est finalement mis d’accord sur la création d’ateliers centrés sur des fonctionnalités du logiciel, qui constitueraient une sorte de parcours de formation.

Lors d’une première journée de travail à Nantes, nous avons continué à travailler en se concentrant sur le public de nos futurs ateliers. Nous avons d’abord identifié différentes étapes de la mise en place d’un Nextcloud dans un collectif, en mettant en regard les besoins de formation ou d’accompagnement avec chaque étape. Nous avons également élaboré une typologie des collectifs concernés. Nous nous sommes concentré⋅es sur un public que nous avons appelé « les éclaireur·ses », c’est-à-dire ces personnes bénévoles ou salariées, convaincues du bien-fondé de l’utilisation de Nextcloud au sein de leur collectif, et qui veulent bien prendre un peu de temps pour se former, afin de pouvoir accompagner les autres bénévoles ou salarié·es. Nous avons plutôt visé des personnes non-informaticiennes, en se disant que des personnes techniques (par exemple administratrices de Nextcloud) auraient plus l’habitude d’être autonomes avec une documentation.

Nous avons ensuite imaginé les besoins de ces personnes éclaireuses, à partir de nos diverses expériences d’utilisation de Nextcloud :

  • En priorité, les notions-clé, indispensables à comprendre : se repérer dans les différentes applications, le partage, les utilisateurices multiples ;
  • Proposer des cas d’usages (« je veux travailler en commission « ) plutôt que des fonctionnalités (« l’application agenda ») ;
  • Savoir comment ranger et comprendre l’arborescence des fichiers;
  • Comment utiliser Nextcloud sur plusieurs périphériques.

Nous avons également établi que ce public cible n’avait pas beaucoup de temps à accorder à la formation sur Nextcloud et avons décidé de partir sur un atelier de 2h en visio. En ce qui concerne le modèle économique, nous avons essayé de trouver un équilibre entre le peu de moyens financiers des public cibles et nos besoins de rémunération. Nous sommes parti·es sur l’idée qu’un atelier de ce type, animé par une personne seule pourrait être payé 250 € HT (300 € TTC) pour des jauges de 6 à 8 personnes. Cela demanderait donc aux collectifs de financer environ 40 € par personne participante. Nous avons par ailleurs réfléchi à comment faire financer ce type d’ateliers par des subventions ou du mécénat. De notre côté, ce tarif est en deçà de nos tarifs habituels, mais l’idée de pouvoir répéter ces ateliers nous permettait d’envisager une rentabilité sur un plus long terme.

Par la suite, nous avons travaillé par binôme sur des déroulés pédagogiques que nous avons ultérieurement mis en commun pour créer un premier prototype d’atelier de prise en main. En parallèle, Framasoft nous a soutenu financièrement à hauteur de 1000 €. Nous avons décidé de nous jeter à l’eau en proposant 4 ateliers gratuits pour tester grandeur nature notre premier déroulé (https://dérivation.fr/evenement/atelier-dappropriation-de-nextcloud/).

Comment avez-vous préparé ces ateliers ?

En amont, Framasoft nous a créé un espace Framaspace qui nous a servi de bac à sable pendant ces ateliers. Nous y avons créé des comptes pour chacune des personnes inscrites, en les groupant par atelier.

Nous avons aussi testé les différents outils de visio à notre disposition. Nous cherchions un outil libre qui ne nécessite pas d’installation de logiciel et qui permette de créer des sous-salles. Nous avons testé BigBlueButton et Jitsi. Nous avons privilégié ce dernier puisque la fonction des sous-salles, ajoutées dans les derniers versions du logiciel, génère moins de frictions côté utilisateur·ices que sur BigBlueButton (où il faut à chaque fois accorder l’autorisation au micro et à la caméra).

Nous avons assez facilement rempli les ateliers avec une communication ciblée dans nos réseaux. Nous avons bien rappelé les pré-requis : avoir déjà utilisé Nextcloud au moins une fois, rejoindre l’atelier depuis un ordinateur, être à l’aise pour utiliser un navigateur Web avec plusieurs onglets et avoir l’habitude de faire des visios (l’utilisation des caméras étant facultative).

Comment concrètement se passaient ces ateliers ?

Nous avons décidé d’animer en binôme chacun des ateliers, pour plus de confort mais aussi avoir des regards croisés sur chaque atelier. La jauge était de 8 personnes participantes, nous avons assez vite augmenté ce nombre car nous avions systématiquement quelques absent·es.

Chaque atelier durait deux heures et se déroulait de la façon suivante :

  • 10 minutes pour accueillir les personnes, vérifier leur accès au framaspace, présenter les animateurices et l’atelier ;
  • 15 minutes de transmission théorique que nous avons au fil du temps réduites à quelques minutes axées uniquement sur la fonction de partage des fichiers ;
  • 40 minutes de jeu de piste pendant lequel les personnes doivent effectuer un certain nombre d’actions (renommer un fichier, ajouter une image dans un dossier, la partager…) listées dans un fichier texte. Chacun·e allait à son rythme et nous aidions en cas de difficulté, y compris en proposant à certain·e personnes d’aller dans une sous-salle de Jitsi avec un·e des animateur·ices en cas de besoin
  • 30 minutes de jeu de rôle pendant lequel nous scindions le groupe en deux dans des sous-salles. Chaque sous-groupe devait organiser un événement pour un collectif imaginaire et utiliser Nextcloud pour ce faire.Le rôle de l’animateur·ice était alors de les guider sur quelques tâches à faire si jamais le groupe patinait un peu, mais en les laissant libres sur les modalités d’organisation.
  • 15 minutes à nouveau avec tout le monde pour partager les réussites et difficultés du jeu de rôles.
  • 10 minutes de bilan général de l’atelier

 

 

Quels ont été les retours ?

Nous avons eu beaucoup de plaisir à animer ces ateliers ! Les méthodes pédagogiques prévues ont fonctionné, les participant·es se sont vraiment pris au jeu et ont été surpris·es par la forme.

  • C’est super que je puisse trifouiller sans risque !
  • Je vais pouvoir encore plus dégoogliser mes pratiques.
  • Aaaah, mais on peut faire ça avec Nextcloud !

 

(Retours de quelques participant·es)

Pour autant, tout n’était pas parfait. Nous avons par exemple découvert certaines limitations techniques que nous ne connaissions pas, il y a eu quelques bugs (mais qui n’en a pas en visio ?) et il est arrivé que la dénomination de certains éléments de Nextcloud prête à confusion.

Par ailleurs, nous nous sommes rendu⋅es compte qu’il serait compliqué d’animer un atelier avec ce déroulé sans co-animation, ce qui venait reposer la question de la rentabilité économique de ce type d’ateliers.

Et maintenant, comment on se forme à Nextcloud ?

Nous n’avons pas reproduit ces ateliers car leur but premier était de tester une méthode d’animation à réutiliser dans une formation plus longue. Notre expérimentation étant concluante, nous allons pouvoir la mettre en œuvre les 15 et 16 avril 2025, dans une formation « Travailler en équipe avec Nextcloud » organisée par ritimo et animée par Romain et Mélissa. Les inscriptions sont ouvertes !

Nous avons également produit d’autres dispositifs d’autoformation, déjà déployés (comme cette vidéo d’onboarding) ou à venir très bientôt sur Framaspace.




Des nouvelles d’Argos Panoptès, la solution de supervision de sites web simple et efficace

Cela fait déjà plus de 8 mois que nous avons annoncé la sortie de la première version d’Argos Panoptès, notre logiciel de supervision dédié aux sites web, sur le Framablog et il est temps de faire un petit point d’étape.

Testé sur le champ de bataille

Si nous avions fait développer Argos, c’était évidemment pour l’utiliser ! Dans le cadre de Framaspace, nous savions que nous allions devoir surveiller un grand nombre de sites web. En effet, outre nos services classiques, il fallait pouvoir vérifier le bon fonctionnement de toutes les instances Nextcloud déployées, et comme nous prévoyons d’en héberger 10 000, ça en fait des sites !

Une petite fille regarde l’objectif, une maison brûle en arrière-plan. Texte : « On a bien dit « Testé sur le champ de bataille » ? »"

La bonne tenue du service

Nous sommes passés d’un peu plus de 1 000 espaces Framaspace en mai dernier à près de 1 700 aujourd’hui, sans compter nos quelques centaines d’autres sites à surveiller (entre les services, les sites vitrines, les services avec plusieurs instances comme les pads, les services en test sur Framalab). On peut se dire que ça ne fait pas une grosse différence, mais sachant que d’autres solutions de supervision (comme statping-ng et Uptime Kuma que nous avions testés) ne supportent pas quelques centaines de sites…

Et surtout, nous avons multiplié les sondes ! Vous le verrez plus bas, nous avons ajouté de nouvelles capacités de supervision à Argos, ce qui nous permet de surveiller plusieurs aspects d’un même site, là où les tests étaient plus basiques auparavant.

Ainsi, pour plus ou moins 700 sites en plus à surveiller, nous sommes passés de 1 986 tests en mai 2024 à 5 585 tests au 20 novembre de la même année, 11 654 tests au 25 novembre (5 jours plus tard !), 26 584 tests au 28 janvier 2025 ! Et ça tient formidablement bien ! Nous n’avons pas dû ajouter d’agent supplémentaire, la base de données ne couine pas, nous sommes alertés très rapidement en cas de défaillance d’un site… Bref, tout marche bien navette 🙂

Capture d’écran du 15 janvier 2025 de la page de statut d’Argos avec 25 946 tests, tous au vert

Une configuration automatisable et automatisée

Un des points importants du cahier des charges d’Argos était d’avoir une configuration facilement lisible (et écrivable) pour un humain, mais surtout automatisable, à savoir pouvoir générer cette configuration par un script ou tout autre moyen informatique. Un des outils testé avant de partir sur un nouveau logiciel ne permettait, pour sa configuration, que l’usage d’une API HTTP (utilisable via une interface web, et qui ne convenait pas très bien pour automatiser complètement le processus de configuration), ce qui n’était pas bien pratique.

La configuration étant en YAML, c’était chose entendue. Un script Python, lisant les Pillars Salt où nous déclarons nos serveurs, les sites qu’ils hébergent et les instances Framaspace déployées, nous permet de générer la configuration d’Argos. Il nous a suffit de l’utiliser dans une recette Salt, elle-même appelée par Hermès, l’agent de manipulation des espaces Framaspace, après l’exécution de sa liste de travaux (ajout ou suppression d’espace, changement de suite office…) pour qu’Argos ait une liste de sites à superviser toujours à jour, sans aucune intervention de notre part.

Un flux de travail très satisfaisant

Ne parlons pas de la configuration d’Argos, ce sujet ayant été traité ci-dessus.

Qu’en est-il de l’utilisation d’Argos au quotidien ? Et bien celui-ci s’insère fort bien dans notre infrastructure de supervision existante :

  • il utilise le mail et Gotify pour nous alerter des problèmes. Gotify est un service (libre, que nous hébergeons nous-même, cela va de soi) qui permet d’envoyer et recevoir des messages. Si on peut avoir un client Gotify sur son téléphone, c’est plutôt via son client web que nous l’utilisons. Lorsqu’Argos envoie un message au serveur Gotify, une notification s’affiche sur mon bureau, me permettant de voir les alertes (et les rétablissements) en temps réel ;
  • n’étant pas devant mon écran 24 heures sur 24, je peux toujours consulter les mails ou les messages sur l’interface web de Gotify. Mais pour savoir que je dois consulter ces messages du passé, j’ai créé une commande pour servir de sonde Nagios, utilisée dans notre service de supervision généraliste (mais vieillissant), Shinken. Couplé à un petit gadget nommé BlinkStick strip et un script de mon cru, je peux observer l’état de la supervision simplement en jetant un œil en haut de mon écran.

Mème avec Buzz l’éclair montrant « Des notifications d’Argos. Des notifications d’Argos partout. » à un Woody atterré

En résumé : Argos est très malléable et peut s’insérer dans plus ou moins n’importe quel manière de travailler.

De nombreuses évolutions ces six derniers mois

Lors de notre article de mai, Argos était en version 0.1.1. Depuis, pas moins de 14 nouvelles versions sont sorties, dont 6 que l’on peut qualifier de majeures. Nous en sommes aujourd’hui à la version 0.7.3.

Mème : Première case : une carte de Uno « Arrête les évolutions d’Argos ou pioche 25 cartes », deuxième case, un personnage représentant Luc avec une main qui tient un nombre impressionnant de cartes.

Parmi les améliorations notables, on peut noter :

  • la génération d’un fichier d’exemple de configuration, pratique pour une première installation : il n’y a plus qu’à le modifier, et en plus il est auto-documenté ;
  • un système d’authentification intégré (fini l’authentification HTTP), ainsi que l’usage possible d’un serveur LDAP ;
  • la possibilité toutefois de laisser un accès anonyme à tout ou partie d’Argos si on le souhaite ;
  • une commande pour être averti si aucun agent ne s’est connecté depuis longtemps (ce qui évite d’avoir un Argos qui dit que tout est OK avec des informations datant de Mathusalem) ;
  • une commande pour tester l’envoi de mails, pour valider les paramètres de configuration mail du logiciel ;
  • une commande pour tester l’envoi de messages Gotify ;
  • une commande qui peut être utilisée pour une sonde Nagios ;
  • l’ajout d’Apprise comme moyen d’envoyer des notifications. Apprise est un véritable couteau suisse de la communication, qui peut être utilisé pour envoyer des messages par mail, SMS, Mattermost, Mastodon et plein d’autres protocoles libres ou non ;
  • l’ajout de nombreux nouveaux types de sondes, permettant aisément :
    • de s’assurer de la correspondance partielle ou complète d’un fichier JSON avec ce qu’on attend de lui ;
    • de s’assurer de la présence ou de la correspondance d’en-têtes HTTP attendues ;
    • de s’assurer que le code de statut HTTP retourné par le site correspond à l’un des codes attendus (on ne pouvait auparavant que tester une correspondance avec un seul code de statut) ;
    • d’utiliser des expressions rationnelles dans certains types de tests (sur du JSON, des en-têtes et le corps de la réponse du site) ;
    • de s’assurer de la redirection de la version HTTP vers la version HTTPS du site (il fallait auparavant déclarer les deux versions du site dans le fichier de configuration d’Argos)
  • une retentative immédiate de requête en cas d’erreur httpx.ReadError (pour éviter les hoquets du réseau) ;
  • la possibilité d’attendre plusieurs états non conformes à ce qui est attendu avant d’émettre une notification (pour éviter les hoquets de service et les problèmes temporaires) ;
  • la possibilité de choisir une fréquence de sonde inférieure à la minute ;
  • les sondes peuvent maintenant tester les sites en IPv4 ou en IPv6 (par défaut, sans configuration, Argos teste les deux) ;
  • les requêtes identiques sont maintenant mutualisées : au lieu de faire deux requêtes pour tester le code de retour et le contenu HTML d’une même page, Argos n’en fera qu’une seule ;
  • la possibilité d’envoyer des données dans les requêtes des sondes (pour tester une authentification, par exemple).

D’autres évolutions à venir…

Mais moins ! Argos en est à un point qui nous convient très bien. Des idées d’évolutions sont là, mais rien d’aussi nécessaire que les évolutions évoquées ci-dessus.

Bien évidemment, nous continuerons à chouchouter ce logiciel, et à le maintenir, mais Framasoft a un carnet de bal bien rempli pour l’année à venir, et nous devons placer nos points d’énergie là où nous en avons le plus besoin.

Mème : Première case, Luc, joyeux, tend les bras vers un gros ballon représentant Argos. Deuxième case, un deuxième personnage, façon blob, enserre la taille de Luc et l’empêche de saisir le ballon. Il est écrit « Reste du boulot » sur le blob.

Soutenez Framasoft !

Que ce soit pour nos services, les logiciels que nous produisons (y a pas qu’Argos, très loin de là !), nos interventions auprès du public ou juste parce qu’on fait des mèmes trop stylés, qui ont encore plus la classe que Georges Abitbol, n’hésitez pas à nous faire un petit don sur notre page de soutien pour que nous puissions continuer nos actions 🙂
Ce don est défiscalisable en France à hauteur de 66% (si vous payez des impôts).