URL du flux RSS

ACCÈS LIBRE

▸ les 20 dernières parutions

13.06.2025 à 10:10

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

Framasoft
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 … Lire la suite­­
Texte intégral (3159 mots)

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 !

11.06.2025 à 16:48

FramIActu n°5 — La revue mensuelle sur l’actualité de l’IA

Framasoft
Alors que les chaleurs estivales arrivent, l'actualité de l'Intelligence Artificielle s'est elle aussi réchauffée ce dernier mois avec des avancées techniques majeures. Préparez votre boisson préférée et installez-vous confortablement : c'est l'heure de la FramIActu !
Texte intégral (4357 mots)

Alors que les chaleurs estivales arrivent, l’actualité de l’Intelligence Artificielle s’est elle aussi réchauffée ce dernier mois avec des avancées techniques majeures.

Préparez votre boisson préférée et installez-vous confortablement : c’est l’heure de la FramIActu !

Le dessin d'un perroquet Ara, avec un remonteur mécanique dans son dos, comme pour les jouets ou les montres. Celui si est assis et semble parler.

Stokastik, la mascotte de FramamIA, faisant référence au perroquet stochastique. Illustration de David Revoy – Licence : CC-By 4.0

Pourquoi est-ce que Grok se met à parler de « génocide blanc » ?

Le 14 mai dernier, Grok, l’IA générative de xAI (société mère de X, ex-Twitter), a été détournée par un individu afin d’orienter les réponses de l’IA.
Celle-ci a, pendant plusieurs heures, parlé d’un génocide anti-blanc fictif qui aurait eu lieu en Afrique du Sud.
Outre le fait que l’événement ait surpris les utilisateurices de l’outil d’Elon Musk (patron de l’entreprise), celui-ci démontre qu’il est aujourd’hui possible d’orienter et d’influencer massivement les réponses des IA génératives.
Pour ce faire, la personne mal-intentionnée a exploité un outil fréquent des systèmes d’IA générative : le prompt système.

Plutôt que de ré-entraîner les IA génératives sur des éléments spécifiques ajoutés au fil de l’eau, les entreprises d’IA générative indiquent des instructions à l’Intelligence Artificielle au moment où l’utilisateurice fait sa propre demande. Cette instruction permet, par exemple, d’indiquer des règles de modération de contenu et de les adapter au fil de l’eau, en fonction des besoins.
Or, ces instructions ne sont pas communiquées publiquement. Nous ne savons jamais quand elles changent ni leur contenu exact.
C’est ce point qui a permis à l’attaquant·e de pouvoir modifier le prompt système discrètement.

xAI s’est engagé à publier les prompts systèmes sur la forge logicielle Github afin que tout le monde puisse consulter ceux-ci. Cela devrait aider à limiter une éventuelle récidive… même si rien ne peut le garantir.
Aussi, rien n’indique que la concurrence suivra ce mouvement et publiera aussi ses prompts systèmes.

Enfin, nous voyons encore une fois que les systèmes d’IA génératives sont plus complexes qu’ils n’y paraissent pour l’utilisateurice et manquent de transparence. Même si les prompts systèmes sont publiés, les données d’entraînement des IA génératives sont très opaques et nous manquons toujours énormément d’informations pour comprendre réellement ce qu’il se passe quand nous envoyons une instruction à une IA.

Est-ce que Google vient d’enterrer la recherche sur le web ?

Le 20 mai dernier, à l’occasion de la conférence Google I/O, Google a annoncé l’arrivée de nouvelles innovations biberonnées à l’Intelligence Artificielle.

Parmi celles-ci, vous avez peut-être déjà entendu parler de Veo 3, le nouveau générateur de vidéos ultra-réaliste de l’entreprise. Si, deux ans en arrière, nous pouvions nous moquer des images générées par IA, car nous pouvions facilement compter les 7 doigts présents sur les mains des personnes générées artificiellement, nous ne pouvons presque plus faire la différence entre un contenu réel et fictif aujourd’hui… et pas seulement pour les images mais pour les vidéos aussi.
Certain·es artistes s’amusent même à surfer sur la vague de popularité des vidéos générées par Veo 3 en indiquant que leurs propres clips vidéos, réalisés entièrement sans IA, seraient générés à l’aide de l’outil de Google.

Mais Veo 3 n’est pas la seule prouesse technique présentée par Google lors de l’événement. L’entreprise a dévoilé différentes nouveautés pour faire évoluer leur moteur de recherche et la manière dont les utilisateurices explorent (ou consomment) le Web.
Parmi les évolutions, et celle-ci est déjà accessible et utilisée par de nombreuses personnes, l’AI Overview, la fonctionnalité du moteur de recherche pour résumer l’essentiel d’un site web ou apporter une réponse à votre question… directement dans le moteur de recherche. Nous n’avons (ou n’aurons bientôt) plus besoin de sortir de Google pour obtenir réponse à nos questions.

Dans son article, Numerama rappelle :

Reste que Google n’a pas évoqué, encore, comment il compte rémunérer les contenus parcourus par son IA et répondre à la question que tout le monde se pose : à partir de quelles données l’IA répondra-t-elle quand aucun humain ne pourra être rémunéré pour les produire ?

Autre évolution importante et uniquement disponible aux états-unis pour le moment, les achats par IA.
Cette fonctionnalité nous permet de demander à l’IA de chiner pour nous sur les sites d’achats en fonction de critères choisis puis nous permet d’automatiser entièrement le processus d’achat via Google Pay.
Cette fonctionnalité, nommée « Buy for me » (« Achète pour moi » en français), permet de définir le prix auquel nous souhaitons acheter un article et le fera automatiquement dès que celui-ci sera trouvé.

Enfin, la dernière nouveauté rapportée dans l’article de Numerama n’est pas des moindres : celle-ci s’appelle sobrement AI Mode.
L’outil AI Mode permet, entre autres, de faire des « recherches profondes ».
Dans l’exemple présenté par Google, l’utilisateurice demande à l’
AI Mode de trouver deux billets pour un match de baseball avec des places situées vers le bas. L’outil essaye différents mots-clés pour sa recherche, puis compare 15 sites afin de trouver les places souhaitées. Les options trouvées sont alors triées du moins cher au plus cher avec une description de la vue obtenue sur le terrain à partir des sièges…

En quelques secondes, l’outil explore pour nous des dizaines de sites et en extrait les éléments qui pourraient nous intéresser. C’est (techniquement) absolument bluffant.
Pour réaliser toutes ces opérations, nous pouvons aujourd’hui imaginer
(bien que de manière extrêmement floue) la quantité d’énergie nécessaire à avoir la qualité de ces résultats de recherche.

Google détient ~90 % du marché mondial de la recherche en ligne. Cela représente 5 billions (5 000 000 000 000) de requêtes annuelles soit ~14 milliards de requêtes journalières.
Si Google décide de banaliser l’AI Mode et de l’intégrer directement dans son moteur de recherche, quelle quantité d’énergie sera nécessaire pour permettre ces 14 millions de requêtes ? Et même si grâce à cette nouvelle manière de rechercher celles-ci étaient réduites à (un chiffre totalement au pif) 5 millions de requêtes journalières, l’énergie requise semble rester totalement démesurée.

Aussi, nous en parlions dans une précédente FramIActu, mais le Web subit déjà aujourd’hui une pression monstre liée au « pillage » permanent de son contenu par les robots indexeurs des IA. Quels efforts les petits sites vont-ils encore devoir réaliser pour faire face à une augmentation drastique du trafic automatisé sur leur infrastructure ? Pourront-ils seulement y parvenir ?

Ici encore, nous observons un des mouvements récents de Google : le lancement d’une application mobile pour tester des modèles d’IA fonctionnant uniquement sur le téléphone de l’utilisateurice.

Si cela peut sembler anodin, il nous a semblé important de faire le lien avec la news citée plus haut.
Il paraît évident que Google a besoin de mettre en place des solutions pour réduire largement les coûts de l’inférence (en gros, le coût lié à l’utilisation de l’IA).

Un des moyens de réduire ces coûts est de déporter le travail de l’inférence vers la machine de l’utilisateurice, ici le smartphone.

Ainsi, en proposant une application permettant aux utilisateurices de tester les différents modèles d’IA, Google peut collecter de nombreuses données sur les capacités des smartphones actuels à faire tourner des modèles d’IA plus ou moins puissants.

Bien sûr, rien ne prouve que Google ira dans ce sens, cependant, il ne nous paraît pas totalement farfelu d’imaginer Google reproduire, dans un futur plus ou moins proche, une stratégie similaire à celle de Microsoft avec Windows 11 : forcer les utilisateurices à acheter du matériel neuf pour faire tourner l’IA dessus, accélérant de fait l’obsolescence des périphériques incompatibles.

Finalement, ces deux articles traitant des avancées de Google dans le domaine soulignent que Google tend à inverser le rapport de force avec OpenAI (l’entreprise derrière ChatGPT, la plus en vogue actuellement). Les futurs changements que Google apporteront seront sans doute déterminants dans l’évolution de nos usages.

Mème : un homme tagué « #LesGENS » regarde d'un œil intéressé une femme taguée « Google », pendant que sa compagne taguée « OpenAI » lui lance un regard noir.

Le rapport de force entre OpenAI et Google.
Généré avec https://framamemes.org – CC-0

OpenAI rachète l’entreprise de matériel de Jony Ivy

En mai dernier, nous apprenions que OpenAI a racheté l’entreprise io, spécialisée dans la conception de matériel informatique fondée par l’ancien designer en chef d’Apple, Jony Ive.
Ive ne rejoindra pas OpenAI et sa compagnie spécialisée dans le design, LoveFrom, restera indépendant, mais elle prendra désormais en charge l’ensemble de la conception des designs pour OpenAI, dont ses logiciels.

À travers l’article de The Verge, nous découvrons que le travail sur de nouveaux appareils, dédiés à l’IA, sont en phase de conception. Plusieurs pistes ont été considérées, comme des écouteurs ou des appareils disposant de caméras, mais ce ne sera pas des lunettes type Google Glass.
L’appareil rentrerait dans une poche, « tiendrait compte du contexte » et ne posséderait pas d’écran.

Nous nous questionnons particulièrement sur la notion de « tenir compte du contexte ». Qu’est-ce que cela signifiera concrètement ? Serait-ce encore un dispositif qui « écoutera » ou « observera » en permanence, sous prétexte de pouvoir nous répondre immédiatement quel temps il fera demain quand nous poserons la question à nos proches ?
Pour le moment, nous n’en savons trop rien.

Il est difficile de dire si le pari (à 6.5 milliards de dollars, tout de même) de OpenAI portera ses fruits, cependant, si OpenAI affirme que l’objectif n’est pas de remplacer le smartphone, il semble y avoir une réelle volonté à suivre la piste de celui-ci : construire un appareil ergonomique qui s’impose comme un nouveau besoin pour la société. Et dans le même temps, imposer toujours plus l’IA dans nos quotidiens.

Le dessin d'un perroquet Ara, avec un remonteur mécanique dans son dos, comme pour les jouets ou les montres. Accroché à son aile gauche, un ballon de baudruche.

Stokastik, la mascotte de FramamIA, faisant référence au perroquet stochastique. Illustration de David Revoy – Licence : CC-By 4.0

C’est tout pour cette FramIActu ! Nous espérons que vous l’avez appréciée !

Vous pouvez poursuivre votre lecture sur le sujet en consultant les articles de notre site de curation dédié au sujet, mais aussi et surtout FramamIA, notre site partageant des clés de compréhension sur l’IA !

Si nous pouvons vous proposer cette nouvelle revue mensuelle, c’est grâce à vos dons, Framasoft vivant presque exclusivement grâce à eux !
Pour nous soutenir et si vous en avez les moyens, vous pouvez nous faire un don via le formulaire dédié  !

Enfin, notez que le rythme de parution de la FramIActu risque de changer dans les prochains mois. Nous constatons en effet une diminution du rythme de parutions d’informations « intéressante pour le grand public » sur l’IA. Il y a certes des avancées techniques, et toujours énormément de recherches sur le sujet… mais nous percevons tout de même une forme de baisse de régime. Attendez-vous donc à d’éventuels changements autour de la FramIActu pour refléter tout ça !

À bientôt ! 👋

11.06.2025 à 12:10

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

Framasoft
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 … Lire la suite­­
Texte intégral (3112 mots)

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 !

09.06.2025 à 07:42

Khrys’presso du lundi 9 juin 2025

Khrys
Comme chaque lundi, un coup d’œil dans le rétroviseur pour découvrir les informations que vous avez peut-être ratées la semaine dernière. Tous les liens listés ci-dessous sont a priori accessibles librement. Si ce n’est pas le cas, pensez à activer … Lire la suite­­
Texte intégral (11114 mots)

Comme chaque lundi, un coup d’œil dans le rétroviseur pour découvrir les informations que vous avez peut-être ratées la semaine dernière.


Tous les liens listés ci-dessous sont a priori accessibles librement. Si ce n’est pas le cas, pensez à activer votre bloqueur de javascript favori ou à passer en “mode lecture” (Firefox) ;-)

Brave New World

L’info popcorn de la semaine

Spécial IA

Spécial Palestine et Israël

Spécial femmes dans le monde

Spécial France

Spécial femmes en France

RIP

Spécial médias et pouvoir

Spécial emmerdeurs irresponsables gérant comme des pieds (et à la néolibérale)

Spécial recul des droits et libertés, violences policières, montée de l’extrême-droite…

Spécial résistances

Spécial outils de résistance

Spécial GAFAM et cie

Les autres lectures de la semaine

Les rapports de la semaine

Les BDs/graphiques/photos de la semaine

Les vidéos/podcasts de la semaine

Les trucs chouettes de la semaine

Retrouvez les revues de web précédentes dans la catégorie Libre Veille du Framablog.

Les articles, commentaires et autres images qui composent ces « Khrys’presso » n’engagent que moi (Khrys).

08.06.2025 à 09:00

L’IA ne va pas vous piquer votre job : elle va vous empêcher d’être embauché !

Framasoft
L’IA ne sera pas la révolution que l’on pense. Son déploiement concret va prendre du temps. Elle ne sera pas non plus la menace existentielle qu’on imagine, parce qu’elle ne se développera pas là où les risques de défaillances sont trop importants. L’IA va rester sous contrôle malgré sa diffusion, estiment les chercheurs Arvind Narayanan et Sayash Kapoor dans une mise en perspective stimulante de notre avenir.
Texte intégral (4355 mots)

Cet article est une republication, avec l’accord de l’auteur, Hubert Guillaud. Il a été publié en premier le 28 mars 2025 sur le site Dans Les Algorithmes sous licence CC BY-NC-SA.


Dans le monde du recrutement, les CV ne sont plus vraiment lus par des humains. Le problème, c’est que les scores produits sur ceux-ci pour les trier sont profondément problématiques. Les logiciels de tris de candidatures cherchent à produire des correspondances entre les compétences des candidats et ceux des employés et à prédire les personnalités… sans grand succès. Bien souvent, ils produisent surtout des approximations généralisées masquées sous des scores qui semblent neutres et objectifs. Problèmes : ces systèmes peinent à favoriser la diversité plutôt que la similarité. Ils répliquent, amplifient et obfusquent les discriminations plutôt que de réduire les biais de décisions des recruteurs.

 

 

 

 

 

 

« Les dégâts qu’un responsable du recrutement humain partial peut causer sont réels, mais limités. Un algorithme utilisé pour évaluer des centaines de milliers de travailleurs pour une promotion ou de candidats à l’emploi, s’il est défectueux, peut nuire à bien plus de personnes que n’importe quel être humain », affirmait dans Wired la journaliste américaine Hilke Schellmann. Après avoir publié depuis plusieurs années de nombreuses enquêtes sur les défaillances des systèmes automatisés appliqués à l’emploi, elle vient de faire paraître un livre permettant de faire le point sur leurs limites : The Algorithm : How AI decides who gets hired, monitored, promoted, and fired and why we need to fight back now (L’algorithme : comment l’IA décide de qui sera embauché, surveillé, promu et viré et pourquoi nous devons riposter, Hachette, 2024, non traduit). Son constat est sans appel : dans l’industrie technologique des ressources humaines (la « HRTech » comme on l’appelle), rien ne marche ! Pour elle, l’IA risque bien plus de vous empêcher d’être embauché que de vous piquer votre job !

La couverture du livre de Hilke Schellmann, The Algorithm.Il est écrit : How AI can hijack your career and steal your future

La couverture du livre de Hilke Schellmann, The Algorithm.

 

Dans le domaine des ressources humaines, beaucoup trop de décisions sont basées sur de la « mauvaise camelote algorithmique », explique-t-elle. Des systèmes d’évaluation qui produisent déjà des préjudices bien réels pour nombre d’employés comme pour nombre de candidats à l’emploi. Dans son livre, la journaliste passe en revue les innombrables systèmes que les entreprises utilisent pour sélectionner des candidats et évaluer leurs employés… que ce soit les entretiens automatisés, les évaluations basées sur les jeux, les outils qui parcourent les publications sur les réseaux sociaux et surtout ceux qui examinent les CV en ligne… Tous cherchent à produire des correspondances entre les compétences des candidats et ceux des employés et à prédire les personnalités… sans grand succès.

Ce qu’elle montre avant tout, c’est que les entreprises qui ont recours à ces solutions ne sont pas suffisamment critiques envers leurs défaillances massives. En guise de calculs, ces systèmes produisent surtout des approximations généralisées. Sous l’apparence de scientificité des scores et des chiffres qu’ils déterminent se cache en fait beaucoup de pseudo-science, de comparaisons mots à mots peu efficaces. Quand on s’intéresse au fonctionnement concret de ces outils, on constate surtout que leur caractéristique principale, ce n’est pas tant qu’ils hallucinent, mais de nous faire halluciner, c’est-à-dire de nous faire croire en leurs effets.

Les algorithmes et l’intelligence artificielle que ces systèmes mobilisent de plus en plus promettent de rendre le travail des ressources humaines plus simple. En l’absence de régulation forte, souligne la journaliste, ni les vendeurs de solutions ni leurs acheteurs n’ont d’obligation à se conformer au moindre standard. Or, poser des questions sur le fonctionnement de ces outils, les valider, demande beaucoup de travail. Un travail que les départements RH ne savent et ne peuvent pas faire. Nous aurions besoin d’un index pour mesurer la qualité des outils proposés, propose la journaliste… tout en constatant que nous n’en prenons pas le chemin. L’industrie RH se contente parfaitement de la situation, souligne-t-elle. Les avocats américains recommandent d’ailleurs aux services RH des entreprises de ne pas enquêter sur les outils qu’ils utilisent pour ne pas être tenu responsables de leurs dysfonctionnements ! À croire que la responsabilité sociale fonctionne mieux avec des œillères !

De l’automatisation des recrutements : tous scorés !

L’automatisation s’est imposée pour répondre aux innombrables demandes que recevaient les plus grandes entreprises et notamment les grandes multinationales de la Tech. Comment traiter les millions de CV que reçoivent IBM ou Google chaque année ? Qu’ils soient déposés sur les grands portails de candidatures et d’offres d’emplois que sont Indeed, Monster, Linkedin ou ZipRecruiter comme sur les sites d’entreprises, l’essentiel des CV sont désormais lus par des logiciels plutôt que par des humains. Les plateformes développées d’abord pour l’intérim puis pour les employés de la logistique, de la restauration rapide et du commerce de détail sont désormais massivement utilisées pour recruter dans tous les secteurs et pour tous types de profils. Mais elles se sont particulièrement développées pour recruter les cols blancs, notamment en entrée de tous les grands secteurs professionnels, comme l’informatique ou la finance. Si ces plateformes ont permis aux candidats de démultiplier facilement leurs candidatures, c’est au détriment de leur compréhension à savoir comment celles-ci seront prises en compte. Les fonctionnalités de tri massifs et automatisés restent encore l’apanage des grandes entreprises, notamment parce qu’elles nécessitent souvent d’accéder à des logiciels dédiés, comme les « systèmes de suivis de candidatures » (ATS, Applicant Tracking Systems) qui permettent de trier et gérer les candidats. Une grande majorité des employeurs y ont recours. Ces logiciels sont moins connus que les grandes plateformes de candidatures avec lesquelles ils s’interfacent. Ils s’appellent Workday, Taleo, Greenhouse, Lever, Phenom, Pintpoint, Recruitee, Jobvite… Sans compter les plus innovants parmi ces interfaces du recrutement, comme Sapia ou Hirevue, qui proposent d’automatiser jusqu’à l’entretien lui-même en mobilisant reconnaissance faciale, transcription des propos et analyse émotionnelle.

Tous ces systèmes font la même promesse aux entreprises qui les utilisent : minimiser et optimiser le nombre de candidats à un poste et réduire le temps de sélection des candidats. Pour ce faire, ces systèmes lisent les mots des CV selon les paramètres qu’en précisent les entreprises et que rendent disponibles les plateformes. Ils cherchent dans les CV les occurrences des termes qui décrivent le poste depuis l’annonce ou comparent les termes des CV candidats à ceux de personnes déjà en poste. La plupart utilisent des attributs par procuration pour détecter des compétences, comme le fait d’avoir un diplôme du supérieur ou le fait d’avoir des compétences précises formalisées par des mots-clefs littéraux.

Face à l’afflux des candidatures – en 2015, Glassdoor estimait qu’il y avait en moyenne 250 réponses par offre d’emploi pour 4 à 6 sélectionnés pour un entretien ; Jobvite, lui estime que le nombre moyen de candidats par offre tournerait plutôt autour de 29 en 2018, alors qu’il était de 52 en 2016, une baisse qui résulterait d’une meilleure optimisation des offres quand on pourrait questionner plutôt le recul de leur diffusion –, le recrutement automatisé s’est généralisé et ce dans une grande opacité au détriment des candidatures les plus précaires. Car dans ces outils, pour accélérer le tri, il est facile de ne retenir par exemple que ceux qui ont un diplôme du supérieur pour un poste qui n’en nécessite pas nécessairement. Les capacités de réglages sont bien plus conçues pour exclure et rejeter les candidatures que pour intégrer les candidats. Par exemple, comme souvent en informatique, si l’une des compétences exigée n’est pas présente, quelles que soit les qualifications et les qualités des autres compétences évaluées, le candidat va bien souvent être rejeté ou sa note globale dégradée, selon une moyennisation qui lisse les écarts plutôt que de capitaliser sur les forces et faiblesses des candidats. Dans leur livre, The Ordinal Society, les sociologues Marion Fourcade et Kieran Healy, parlent très justement du « lumpenscoretariat » pour qualifier le prolétariat du score dans le capitalisme numérique, pour parler de ceux qui sont toujours mal classés par les systèmes parce que les standards de ceux-ci s’adaptent extrêmement mal à tous les publics.

Ces logiciels de recrutement examinent, évaluent et classent les candidatures en leur attribuant des scores sur un certain nombre de critères définis par les possibilités du système et par l’entreprise qui recrute. Plusieurs scores sur plusieurs attributs sont produits (par exemple un score sur l’expérience requise, un score sur les compétences exigées, etc.) et forment un score unique qui permet de classer les candidatures les unes par rapport aux autres. Un très fort pourcentage de candidatures sont rejetées parce qu’elles ne remplissent pas les critères demandés. Et ce, alors que les employeurs ont tendance à démultiplier les critères pour réduire le nombre de candidats à examiner. Pour un simple emploi de vendeur, le nombre de compétences requises dans les offres d’embauche en ligne est en moyenne de 31 compétences différentes ! De plus en plus d’offres d’emploi demandent d’ailleurs des compétences qui étaient associées à d’autres professions : un vendeur doit savoir vendre, mais doit également désormais savoir utiliser tel ou tel logiciel par exemple ou disposer de compétences transverses, les fameux « soft skills », des aptitudes interpersonnelles qui n’ont pas toujours de liens avec les compétences techniques (qui elles relèvent par exemple de la maîtrise d’une langue étrangère ou de techniques de ventes spécifiques), que ce soient « l’autonomie », la « capacité à négocier » ou la « flexibilité », autant de « talents » dont l’appréciation est bien souvent difficile et subjective et que les calculs promettent de résoudre par des scores dont la formule est suffisamment complexe pour que nul ne regarde leurs défauts.

Bien souvent, les entreprises qui embauchent sont les premières responsables du sur-filtrage qu’elles utilisent. Mais surtout, à force de démultiplier les critères, elles ne parviennent pas à ouvrir leurs canaux de recrutement, comme s’en émouvait le rapport Fuller, Hidden Workers (2021). Joseph Fuller, le chercheur de la business school d’Harvard, montrait que nombre de candidats qualifiés n’étaient pas considérés par ces systèmes de tri automatisés. Nombre de systèmes de recrutement rejettent des candidats qui font de très bons scores sur nombre de critères, mais échouent totalement sur un seul d’entre eux, au profit de candidats qui peuvent être très moyens sur tous les critères. Ainsi, dans la moitié des outils d’analyse automatisés testés par son équipe, avoir un trou de 6 mois dans sa carrière conduit à une exclusion automatique, quelle que soit la raison de ce passage à vide (congé natalité, maladie…) et ce même si la candidature est par ailleurs très bien notée. Cet exemple montre que la qualification n’est pas le seul critère pris en compte. Ces systèmes font d’abord ce pour quoi ils sont programmés : minimiser le temps et le coût passé à recruter ! Pour Hilke Schellmann, ces exemples démontrent que les responsables RH devraient enquêter sur les outils qu’ils utilisent et comprendre les critères de sélection qu’ils mettent en œuvre. Les processus d’embauches automatisés se concentrent bien plus sur la détection de références que sur les capacités des candidats. L’automatisation du recrutement conduit à configurer les systèmes de manière inflexible afin d’en minimiser le nombre. Or, pour Fuller, ces outils devraient surtout permettre d’élargir le recrutement que de le resserrer, ils devraient permettre de s’intéresser aux expériences plus qu’aux compétences, explique-t-il en montrant que nombre de personnes compétentes ne sont pas recrutées parce que leur expérience peut-être sur des compétences similaires, mais dans un autre métier. Les descriptions de postes se complexifient, écartant certains postulants, et notamment les femmes qui ont tendance à postuler que si elles sont convaincues qu’elles satisfont à l’essentiel des exigences d’un poste.

Capture d'écran du jeu Survival of the best fit.

Vous aussi entraînez une IA de recrutement !
Survival of the best fit est un jeu en ligne qui permet de comprendre les limites du recrutement automatisé.

 

Les responsables RH comme les recruteurs savent pertinemment que leurs outils ne sont pas toujours pertinents : 88 % d’entre eux reconnaissent que ces outils excluent du processus d’embauche des candidats hautement qualifiés ou tout à fait qualifiés ! Leur efficacité elle-même est limitée, puisque 50 % des employés embauchés ne sont plus en poste 18 mois après leur arrivée. Au final, comme leurs outils, les responsables RH ont souvent bien plus confiance dans les diplômes, la réputation des écoles que dans l’expérience. Les filtres des systèmes fonctionnent comme des proxys : avoir été embauché dans un rôle similaire à celui de l’annonce dans les derniers mois est souvent plus important que de trouver des personnes qui ont des expériences multiples qui devraient leur permettre de s’épanouir dans le poste. La recherche de l’adéquation empêche bien souvent de chercher l’adaptation. Le recrutement, dans sa logique, cherche à minimiser son coût plutôt que de maximiser le capital humain. Et ces systèmes qui visent d’abord à matcher avec des exigences strictes, peinent à favoriser la diversité plutôt que la similarité, les manières dont les gens ont progressé plutôt que les statuts qu’ils ont acquis.

Discriminations invisibles

Hilke Schellmann n’est pas la seule à s’inquiéter du fonctionnement des systèmes de recrutement. La professeure de droit américaine, Ifeoma Ajunwa, qui a publié l’année dernière The Quantified Worker (Le travailleur quantifié, Cambridge University Press, 2023 non traduit), explique elle aussi que les systèmes d’embauche automatisés réduisent tous les candidats à des scores. Dans ces scores, les pratiques discriminatoires, liées à l’âge, au sexe, à la couleur de peau, au handicap, au niveau social… sont invisibilisées. Or, ces systèmes se déploient sans contrôle, sans régulation, sans audit, sans label de qualité, sans informations aux candidats… Dans une tribune pour Wired, elle demandait à la Fédération du commerce qui régule ces questions aux États-Unis de faire son job : c’est-à-dire contrôler et sanctionner les pires pratiques !

Couverture du livre, The Quantified Worker, de Ifeoma Ajunwa.En sous-titre : Law and Technology in the Modern Workplace

Couverture du livre, The Quantified Worker, de Ifeoma Ajunwa.

 

Les systèmes servent à répliquer, amplifier et obfusquer les discriminations à grande échelle, estime la juriste. Dans l’histoire du développement des plateformes d’embauches depuis les années 1990, qu’elle dresse avec Daniel Greene, la principale raison de leur développement repose sur la promesse de réduire les biais de décisions en utilisant des processus techniques « neutres ». C’est pourtant bien à l’inverse qu’on a assisté : les décisions algorithmiques sont devenues le véhicule d’amplification des biais ! Mais, pour la juriste, la question des biais de ces systèmes est bien plus un problème légal que technique. Le problème, c’est que les biais des systèmes sont démultipliés à un niveau sans précédent. « La recherche d’un meilleur fonctionnement technique nous empêche trop souvent de regarder les limites légales de ces systèmes », explique Ajunwa. Trop de données sont des proxies pour contourner les interdictions légales à la discrimination inscrite dans la loi. Les discriminations de race, de genre, sociales… sont déguisées derrière une « nébuleuse adéquation culturelle » des candidats aux offres. Plus que les compétences ou l’expérience, les recruteurs et leurs machines sont à la recherche d’un « matching socio-culturel » qui masque ses motivations discriminatoires d’un couvert de neutralité, qui occulte combien nos stéréotypes acquis influencent en profondeur nos décisions, comme le fait de préférer certaines écoles à d’autres dans les recrutements, ou le fait que les systèmes de recrutements favorisent certains termes sur d’autres. Les exemples de biais de ce type sont nombreux et se démultiplient quand tous les termes d’un CV peuvent devenir prédictifs. C’est ainsi que parfois des prénoms, des formations ou des hobbies ont pu devenir des paramètres clefs de ces systèmes. Les systèmes d’analyse des CV fonctionnent bien trop sur des mots- clefs qui prennent alors des valeurs qui dépassent leur portée. L’avocat spécialiste des questions de travail Ken Willner a ainsi montré que des termes comme « Afric » ou « Latin », qu’ils soient associés à un travail où à un hobby (comme le fait de pratiquer la danse Afro par exemple) pouvaient dégrader le score d’un CV juste parce que la présence du terme renvoie à des publics afro-américains. Sur les douzaines de systèmes d’embauche que l’avocat a examinés, il a trouvé des variables problématiques dans plus d’un quart ! Pour Willner, les entreprises qui développent ces outils ne font même pas le travail liminaire de contrôle et de non prise en compte de termes potentiellement discriminatoires. Willner en a trouvé bien d’autres, comme la pratique du baseball et du softball, le second surtout joué par des femmes, dont l’occurrence pouvait être prise en compte pour dégrader le score des secondes.

L’autoritarisme de plateforme pour obscurcir les discriminations

Les systèmes d’embauche automatisés permettent d’abord d’obscurcir les discriminations. Par exemple, celles liées à l’âge, alors que la loi les interdit. Plusieurs études ont montré que la discrimination liée à l’âge est exacerbée par l’automatisation. Un audit de la banque of America a montré que les gens de plus de 40 ans avaient un taux de rappel suite à une candidature 30 % moins élevée que les plus jeunes pour des emplois de base et que ce taux s’effondrait plus encore pour les femmes de plus de 40 ans. Le problème, estime Ifeoma Ajunwa c’est que ces discriminations liées à l’âge sont facilitées sur les plateformes, comme l’avait souligné une enquête de CNBC.

Reste, souligne la juriste, que les disparités de traitements sont difficiles à prouver, d’abord et avant tout parce que les plateformes d’emploi ne sont contraintes à aucune transparence statistique sur ce qu’elles font. Une étude a même montré que pour quelque 600 plaintes pour discrimination raciale à l’emploi aux Etats-Unis, la majorité des jugements rendus peinent à reconnaître la discrimination à l’œuvre. Ajunwa parle « d’autoritarisme de plateforme » pour évoquer les contradictions entre les politiques des plateformes et les législations. Cet autoritarisme masque la relation qu’elles entretiennent avec les candidats comme intermédiaires qui bénéficie bien plus aux employeurs et aux plateformes qu’aux utilisateurs. Pas étonnant dès lors que le public soit très critique à l’égard des plateformes d’embauche, comme le montrait un sondage du Pew sur la très vive défiance du grand public à l’encontre de l’embauche automatisée (avec un autre biais récurrent, qui est de croire que le système a plus de conséquences négatives globalement que pour soi personnellement).

Plus que de résoudre les dérives du recrutement, son automatisation a surtout généré un empilement de problèmes, que toute la chaîne de la HR tech tente de mettre sous le tapis, plutôt que de l’affronter. Il n’est pas sûr que ce soit une position longtemps tenable…

(à suivre)

10 / 20

 

  GÉNÉRALISTES
Ballast
Fakir
Interstices
Lava
La revue des médias
Le Grand Continent
Le Monde Diplo
Le Nouvel Obs
Lundi Matin
Mouais
Multitudes
Politis
Regards
Smolny
Socialter
The Conversation
UPMagazine
Usbek & Rica
Le Zéphyr
 
  Idées ‧ Politique ‧ A à F
Accattone
Contretemps
A Contretemps
Alter-éditions
CQFD
Comptoir (Le)
Déferlante (La)
Esprit
Frustration
 
  Idées ‧ Politique ‧ i à z
L'Intimiste
Jef Klak
Lignes de Crêtes
NonFiction
Nouveaux Cahiers du Socialisme
Période
Philo Mag
Terrestres
Vie des Idées
 
  ARTS
Villa Albertine
 
  THINK-TANKS
Fondation Copernic
Institut La Boétie
Institut Rousseau
 
  TECH
Dans les algorithmes
Framablog
Goodtech.info
Quadrature du Net
 
  INTERNATIONAL
Alencontre
Alterinfos
CETRI
ESSF
Inprecor
Journal des Alternatives
Guitinews
 
  MULTILINGUES
Kedistan
Quatrième Internationale
Viewpoint Magazine
+972 mag
 
  PODCASTS
Arrêt sur Images
Le Diplo
LSD
Thinkerview
 
Fiabilité 3/5
Slate
Ulyces
 
Fiabilité 1/5
Contre-Attaque
Issues
Korii
Positivr
Regain
🌞