Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Développement_mobile_durable.pdf

 Développement_mobile_durable.pdf

Réfléchissons aux actions que pouvons prendre en tant que devs mobiles pour réduire l’impact environnemental de nos apps

Gabriel Adgeg

April 21, 2020
Tweet

Other Decks in Technology

Transcript

  1. OCTO Part of Accenture Digital © 2020 - All rights

    reserved Soyons acteurs du développement (mobile) durable Gabriel Adgeg - Virtual Android Makers 2020 - mardi 21 avril 2020 1
  2. OCTO Part of Accenture Digital © 2020 - All rights

    reserved Sans changement, en 2025, même pollution que le trafic automobile mondial 90 % des émissions en CO₂ d’un smartphone sur 2 ans proviennent de sa fabrication 4% des émissions mondiales de gaz à effet de serre en 2020 75% des déchets exportés illégalement en Chine, en Inde et en Afrique 3 D’un côté, l’impact environnemental du numérique LE STREAMING VIDÉO émet chaque année 300 millions de tonnes de CO₂ Source : ADEME Source : ADEME Source : Greenpeace Source : Greenpeace Source : Université de McMaster
  3. OCTO Part of Accenture Digital © 2020 - All rights

    reserved 4 D’un autre côté, les initiatives individuelles Bien manger Y’a-t-il vraiment un impact ? Mieux gérer sa consommation d’eau Optimiser sa consommation énergétique Réduire ses déchets Se déplacer autrement Source : WWF - Agir au quotidien En dehors du numérique, des initiatives individuelles sont prises depuis plusieurs années
  4. OCTO Part of Accenture Digital © 2020 - All rights

    reserved 5 D’un autre côté, les initiatives individuelles Bien manger Le passage d’un régime carné à un régime végétarien représente à lui seul 10% de baisse de l’empreinte carbone de l’individu. Source : cabinet Carbone 4 Y’a-t-il vraiment un impact ? Pour les GES, impact pas du tout négligeable, mais nécessite des actions plus que symboliques Dans les leviers de réduction de l’empreinte carbone, la part de l’effort individuel est de 25%, celle du collectif est de 75% Source : cabinet Carbone 4
  5. OCTO Part of Accenture Digital © 2020 - All rights

    reserved 6 Les initiatives individuelles appliquées au numérique ? L’impact environnemental global du numérique est une réalité (contrairement à ce que notre jargon laisse à penser) Certaines initiatives individuelles ne sont pas du tout négligeables Quelles initiatives peut-on prendre en tant que devs d’apps mobiles, dont certaines sont massivement utilisées ?
  6. OCTO Part of Accenture Digital © 2020 - All rights

    reserved 8 Les indicateurs environnementaux Consommation d’eau Energie primaire Réchauffement global xxxx Epuisement des ressources Electricité Source : Green IT - Empreinte environnementale du numérique mondial
  7. OCTO Part of Accenture Digital © 2020 - All rights

    reserved 9 Le numérique découpé en 3 tiers Source : Green IT - Empreinte environnementale du numérique mondial Equipements utilisateurs Réseau Data centers
  8. OCTO Part of Accenture Digital © 2020 - All rights

    reserved 10 Energie GES Eau Electricité Ressources Equipements 60 % 63 % 83 % 44 % 75 % Réseau 23 % 22 % 9 % 32 % 16 % Data Centers 17 % 15 % 7 % 24 % 8% Les équipements utilisateurs constituent la principale source d’impacts environnementaux Source : Green IT - Empreinte environnementale du numérique mondial
  9. OCTO Part of Accenture Digital © 2020 - All rights

    reserved Les leviers sur lesquels nous devons nous concentrer en tant que développeurs d’apps mobiles Permettre aux devices d’être utilisés plus longtemps Réduire le volume de données échangées sur le réseau 11
  10. THERE IS A BETTER WAY Que pouvons-nous faire pour permettre

    aux devices d’être utilisés plus longtemps ? 12
  11. OCTO Part of Accenture Digital © 2020 - All rights

    reserved 13 Ce qui nous nous fait acheter un nouveau smartphone “Je ne peux plus utiliser mes apps préférées.” “Mon tel galère de ouf…” “La batterie est morte au bout de 3 heures...” “Comment il est trop stylé !”
  12. OCTO Part of Accenture Digital © 2020 - All rights

    reserved 14 Ce qui nous nous fait acheter un nouveau smartphone “Je ne peux plus utiliser mes apps préférées.” “Mon tel galère de ouf…” “La batterie est morte au bout de 3 heures...” “Comment il est trop stylé !” Le premier point sur lequel on a vraiment un rôle à jouer
  13. OCTO Part of Accenture Digital © 2020 - All rights

    reserved 15 Le jour de ma prise de conscience ? ? ? ? ? ?
  14. OCTO Part of Accenture Digital © 2020 - All rights

    reserved Mais qu’est-ce qu’on a donc fait pour mériter ça ? ๏ Une app en prod depuis 3 ans sur laquelle l’équipe continue de travailler ๏ Pas d’effort d’optimisation identifié ๏ Un projet à l’état de l’art > Un code source quasi full Kotlin > Anciennement du RX, maintenant Jetpack, ViewModel, LiveData, Room, coroutines > AndroidX, Material Components, ConstraintLayout, ViewPager2 Du code assez éloigné du code d’il y a 7 ans... 16 Mais alors Jamy, quelles sont les leçons que l’on pourrait donner ???
  15. OCTO Part of Accenture Digital © 2020 - All rights

    reserved ๏ Une PO qui porte le message d’être présents sur le plus de devices possibles ๏ Un minSDK 16, qui correspond au max des minSDK de nos dépendances ๏ Des tests (presque) avant chaque release pour s’assurer que l’app tourne bien sur des plus vieux devices et emulateurs > l’app ne crash pas ! > le contenu est bien scrollable si nécessaire ๏ Dans le code, principalement gérer l’ état cliqué avec des selectors en plus du ripple France Télévisions investi d’une mission de service public 17
  16. OCTO Part of Accenture Digital © 2020 - All rights

    reserved ๏ Android X : minSDK 14 ๏ Certaines dépendances nécessaires fonctionnellement pour nos apps ont des minSDK > 14 ๏ Les nouvelles versions incluent notamment des correctifs de sécurité ๏ Mais en dehors de ça, pourquoi nos apps ne sont elles-pas utilisables par l’intégralité des smartphones ? Mais alors qu’est-ce qui nous pousse à avoir un minSDK élevé ? 18
  17. OCTO Part of Accenture Digital © 2020 - All rights

    reserved “Comment elle est trop stylée cette librairie !” 19 La face cachée de la hype “Jetpack Compose Android’s modern toolkit for building native UI” “SwiftUI Better apps. Less code.” Sources : Sites développeurs Android et Apple
  18. OCTO Part of Accenture Digital © 2020 - All rights

    reserved Le cas d’école de la Declarative UI 20 Ou comment inciter les développeurs à augmenter le minSDK de leurs apps “Jetpack Compose Android’s modern toolkit for building native UI” minSDK 21 “SwiftUI Better apps. Less code.” iOS 13 et + Sources : Statcounter & Statista Rien qu’en France, 560 000 devices ont une version d’Android inférieure à 21 Rien qu’en France, 2 800 000 devices ont une version d’iOS inférieure à 13
  19. OCTO Part of Accenture Digital © 2020 - All rights

    reserved La veille Lecture d’articles, confs, vidéos, discussions entre collègues... 1 2 L’essai Et bien sûr, l’essayer, c’est l’adopter. 3 Le porte-parole “On va développer plus vite, faire moins de bugs, être plus maintenables !” “Et puis, quasiment tous nos utilisateurs ont des versions d’OS récentes” “Ces utilisateurs ne nous rapportent rien de toute façon...” 4 La mise en prod “Il y aura toujours la précédente version de disponible.” “Ah, mince, y’a une montée de version des API, l’ancienne version est KO…” 5 Le jeté de device “Dès que je lance l’application, j’ai un message d’erreur. Bande de connards, moi qui vous faisait des compliments…” Signé le lotharingien Ne peut-on vraiment pas empêcher cela ? Chaque montée de version de minSDK participe à l’impact environnemental du numérique 21
  20. OCTO Part of Accenture Digital © 2020 - All rights

    reserved 22 Ce qui nous nous fait acheter un nouveau smartphone “Je ne peux plus utiliser mes apps préférées.” “Mon tel galère de ouf…” “La batterie est morte au bout de 3 heures...” “Comment il est trop stylé !”
  21. OCTO Part of Accenture Digital © 2020 - All rights

    reserved 23 Un même procédé à mettre en place “La batterie est morte au bout de 3 heures...” Réduire le volume de données échangées sur le réseau “Mon tel galère de ouf…” Mesurer Faire évoluer ses apps
  22. OCTO Part of Accenture Digital © 2020 - All rights

    reserved Une image représenterait un moyen très efficace pour concrétiser, et donc motiver une action. Comment mesurer l’impact environnemental de nos apps ? 25 Citymapper “L’envoi d’un e-mail avec une pièce jointe de 1 Mo émet autant de gaz à effet de serre qu’une ampoule qui reste allumée pendant une heure” ADEME - 2011 Peut-on considérer que chaque Mo non téléchargé, c’est la consommation d’une ampoule pendant une heure en moins ?
  23. OCTO Part of Accenture Digital © 2020 - All rights

    reserved Une étude très précise, dont les hypothèses ne s’appliquent pas à notre cas Estimée à 1 an Stockage 4 ans pour l’unité central, clavier, souris, PC portables. 6 ans pour l’écran Durée de vie 1 Mo - contexte “particulier” - en France Réseau Matériel Pour l’émetteur et le destinataire, équipement moyen français (PC à écran, PC portables). Pour le data center, modèle électrique mondial. Source : ADEME 26
  24. OCTO Part of Accenture Digital © 2020 - All rights

    reserved Pourquoi est-il si difficile de connaître vraiment l’impact environnemental de nos apps ? 27 1 km marché x calories 0,y 1 Mo téléchargé 0,x kWh 0,z 0,y g de CO₂ - WiFi, 3G, 4G, 5G ? - Changement de réseau (5g vers 3g, avec perte de socket, renégociation TLS) - Infrastructure - Soft côté app - Soft côté backend - Nucléaire, hydraulique, gaz naturel, charbon ? Il existe des modèles, tel 1 byte de The Shift Project. Pas évident à manipuler. S’ils vous donne de la motivation, essayez-les ! Mais gardons en tête que nous sommes dans un contexte complexe.
  25. OCTO Part of Accenture Digital © 2020 - All rights

    reserved 28 Mesurer est indispensable, appliquer un modèle carbone est une autre étape Mesurer en absolu Le volume de données à chaque mise à jour Mesurer un parcours type A partir des analytics & les outils de l’IDE Mesurer en relatif L’évolution de la conso réseau et CPU
  26. OCTO Part of Accenture Digital © 2020 - All rights

    reserved L’exemple du poids des mises à jour 29 Sur l’app france.tv, en 2019 : ๏ L’app est passée de 7.4 à 9.3 Mo ๏ 19 mises à jour ๏ 1.150.000 installations actives 177 To de mises à jour ๏ Chaque mise à jour évitée, 9.6 To de données en moins ๏ App Bundle réduirait l’APK de 5%, et aurait économisé 9 To de données sur l’année Même sans modèle carbone, mesurer les données en absolu motive à prendre des initiatives qui auraient pu paraître inutiles.
  27. OCTO Part of Accenture Digital © 2020 - All rights

    reserved Les pistes pour faire évoluer ses apps Les vidéos Android Performance Patterns de Colt McAnlis Réduire la taille des images téléchargées Compression, WebP Réduire la taille de vos APK Talk d’Antoine Danois SVG , WebP, R8, App Bundle Moins d’appels réseau JetPack ViewModel & LiveData, cache réseau Challenger les protocoles JSON vs Protobuf, FlatBuffers Envisager un Backend For Frontend, idéalement avec une analyse de cycle de vie 30
  28. OCTO Part of Accenture Digital © 2020 - All rights

    reserved Soyons acteurs du développement (mobile) durable 32 ? ? ? Impact numérique réel Initiatives individuelles à valeur Matériel Réseau Permettre usage plus long des devices Réduire le volume de données Ne pas ignorer l’impact d’une de montée de version du minSDK Mesurer, même sans modèle carbone Faites évoluer vos apps Décideurs, l’optimisation globale de votre service a plus de leviers Vers davantage de sobriété
  29. OCTO Part of Accenture Digital © 2020 - All rights

    reserved Spéciale cace-dédi, wesh 33 tribu SEED @OCTO Olivier Wojciech “le lotharingien” Gabriel Adgeg [email protected] @g_adgeg
  30. 34