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

    View full-size slide

  2. THERE IS A BETTER WAY
    Notre contexte
    2

    View full-size slide

  3. 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

    View full-size slide

  4. 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

    View full-size slide

  5. 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

    View full-size slide

  6. 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 ?

    View full-size slide

  7. THERE IS A BETTER WAY
    Dans les détails
    7

    View full-size slide

  8. 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

    View full-size slide

  9. 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

    View full-size slide

  10. 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

    View full-size slide

  11. 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

    View full-size slide

  12. THERE IS A BETTER WAY
    Que pouvons-nous faire pour
    permettre aux devices d’être
    utilisés plus longtemps ?
    12

    View full-size slide

  13. 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é !”

    View full-size slide

  14. 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

    View full-size slide

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

    View full-size slide

  16. 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 ???

    View full-size slide

  17. 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

    View full-size slide

  18. 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

    View full-size slide

  19. 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

    View full-size slide

  20. 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

    View full-size slide

  21. 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

    View full-size slide

  22. 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é !”

    View full-size slide

  23. 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

    View full-size slide

  24. THERE IS A BETTER WAY
    La mesure
    24

    View full-size slide

  25. 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 ?

    View full-size slide

  26. 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

    View full-size slide

  27. 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.

    View full-size slide

  28. 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

    View full-size slide

  29. 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.

    View full-size slide

  30. 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

    View full-size slide

  31. THERE IS A BETTER WAY 31
    Sum up

    View full-size slide

  32. 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é

    View full-size slide

  33. 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

    View full-size slide