16/05/2019 4 Minutes read

Retour sur la conférence Android Makers par Maxime Delbut et Bastien Coutable

Maxime Delbut et Bastien Coutable, Ingénieurs Android reviennent sur l’édition 2019 d’Androïd Makers.
Android Makers

Team ekino : Pourquoi avez-vous eu envie d’aller à cette conférence ?

Maxime Delbut : AndroidMakers est la seule conférence en France pour les développeurs Android où l’on y retrouve un concentré de flux de très bonne qualité avec des orateurs de renommée mondiale. Cette conférence m’a été bénéfique l’an passé avec la découverte ou l’approfondissement de certains points, par exemple :

  • Les nouveaux composants de l’architecture component,
  • La gestion des tests UI,
  • L’utilisation de l’écosystème Android Auto,
  • Android Things, un sujet sur l’IoT qui m’était inconnu où l’orateur à réussi à me mettre l’eau à la bouche.

Cette conférence est le moment et l’endroit où sont réunis énormément de bonnes pratiques, conseils et aides sur tout l’écosystème Android.

Bastien Coutable : C’est la seule conférence en France centrée sur l’écosystème Android. C’est aussi la seule qui permet de voir l’entièreté de celui-ci (Watch, auto, IoT, assistant, TV, smartphone/tablette…). Juste avant la Google I/O, nous avons régulièrement le droit à des sneak-peaks, et de grands noms y donnent des conseils, livrent des retours d’expérience sur des librairies/technos que nous utilisons (ou souhaitons utiliser). Ça nous permet aussi de discuter avec d’autres développeurs (comme ceux de chez Softbank Robotics, qui s’occupent du SDK de Pepper), et d’échanger nos expériences, des requêtes…

Team ekino : Quels sujets ont été abordés ?

Maxime Delbut : Les sujets étaient variés, il y en avait pour tous les goûts.

  • Florina Muntenescu (@FMuntenescu) a ouvert l’AndroidMakers par un sujet d’actualité : « comment avoir une architecture modulaire ? »

    Video -> https://androidmakers.fr/schedule/2019-04-23?sessionId=XEB-2115

  • Par la suite, d’autres sujets ont été couverts comme par exemple l’explication du design pattern MVI (Model, View, Intention) par Simone Civetta (@viteinfinite) et Arnaud Piroelle (@ArnaudPiroelle), mais également à propos de design, d’accessibilité, de Kotlin (beaucoup de talks sur les coroutines). Certains sujets m’ont davantage intéressés :
  • Nicola Corti (@cortinico)  « I  have no idea what my app is doing ¯_(ツ)_/¯ ». Cette présentation était une mise en garde de la provenance et du contenu des dépendances que nous intégrons à nos projets. Lorsque nous intégrons une nouvelle librairie, il est très important de faire attention au repository qui contient celle-ci. Si le repository indiqué par la librairie n’a pas été intégré au projet, il se peut qu’une copie malveillante soit trouvée sur un autre repository de votre projet. Il est ensuite difficile de se rendre compte qu’il ne s’agit pas de la vraie librairie.

Voir la présentation

Voir la vidéo

  • Eyal LEZMY (@Eyal_Lezmy) « Navigation Component, feedback from the trench ». Le composant Navigation fourni par Jetpack (en release depuis le 14 Mars 2019), fait partie de la boite à outils de la team Android chez ekino. Nous avons pu y rencontrer plusieurs problèmes, difficultés d’implémentation.Il était intéressant de comparer le retour d’expérience d’Eyal LEZMY afin de voir s’il avait rencontré les mêmes problèmes, comment il les a contournés et ce qu’il pensait de ce composant malgré tout. Eyal LEZMY ne s’est pas contentré d’un simple REX, il a également expliqué et montré différents exemples d’utilisation.

Voir la présentation

Voir la vidéo

  • Marc Poppleton (@marcpoppleton) « Slices up your app! ». Dans ce Talk Marc Poppleton nous a présenté la nouvelle API d’AndroidX appelée Slices. Il nous a présenté différents cas d’utilisation d’un point de vue fonctionnel mais également technique !

Voir la présentation

Voir la vidéo

Bastien Coutable : Beaucoup de sujets abordés, de l’architecture d’une application jusqu’au bien-être du développeur (keynote de la conférence). Diverses tracks sur les animations dans une application, des optimisations/démystifications de certains outils (profiler par exemple) et pratiques (fonctionnement des enums par exemple). Beaucoup de talks étaient centrés sur Kotlin (les récentes mises à jour, les coroutines, bonnes et mauvaises pratiques…).

Pour ma part, j’ai assisté à diverses conférences sur Kotlin, incluant les bonnes pratiques, des explications sur certaines fonctionnalités internes au langage (comme lazy, inline, unsigned, when…), les coroutines, le multiplatform, coroutines & channels. Ensuite, une conférence sur l’accessibilité sur les téléphones Android (pour les malvoyants, personnes ayant des problèmes de dextérité, gestion de l’affichage de langues -> RTL/LTR).

J’ai été à un talk concernant la sécurité dans le cadre du stockage et partage de fichiers volumineux de façon sécurisée via l’architecture Zero Knowledge. Divers talks sur la gestion des resources/assets sous android (vectors, animations, design system…). Enfin, des talks plus techniques très orientés Android avec la gestion de l’état de restauration des vues, architecture component (et la partie navigation component), gestion de différents services (service : opération qui n’a pas nécessairement besoin d’une interaction avec l’utilisateur, par exemple lecture d’une musique en arrière-plan) via le workmanager, ou encore Google Assistant.

Team ekino : Qu’est-ce qui vous a le plus marqué ? 

Bastien Coutable : Le Two Man Show de cloture (Chet Haase et Romain Guy) ? C’est surtout la facilité de dialogue avec les autres développeurs (dont certains possèdent un stand), des personnes avec qui nous ne pouvons en général pas discuter (car il y a des intermédiaires). Certains speakers donnent de leur temps hors conférence pour qu’on puisse parler plus tranquillement et poser des questions plus poussées, sans être derrière son écran.

Team ekino : Avez-vous appris quelque chose que vous aimeriez partager ? 

Maxime Delbut : Le talk de Nicola Corti (@cortinico)  « I  have no idea what my app is doing ¯_(ツ)_/¯ » que j’ai décrit ci-dessus. Je ne me suis jamais posé la question d’où venait les dépendances que j’intégrais. Je vous partage un exemple bien détaillé de ce genre « D’attaque par dépendances » ici.

Bastien Coutable : C’est surtout sur un talk Kotlin, ou le speaker expliquait ce qui se cache derrière certaines fonctionnalités, qui peuvent révéler un process relativement lourd, et donc à utiliser en connaissance de cause. Il expliquait comment fonctionne les when sur des enums (ça créé des tableaux statiques). Comment bien utiliser lazy (car ça utilise la reflection, donc process très lourd). Des explications sur les “unsigned” (Kotlin 1.3 <- experimental), sur le fonctionnement interne d’un forEach (receiver/iterator), les inline classes. Il a terminé sur des explications concernant les lambdas (création d’un wrapper, il faut toujours typer une lambda), les fonction d’extension (faire attention aux définissions et aux casts), enfin un mot sur les coroutines (c’est en réalité un state machine). 

Team ekino : Si vous deviez résumer la conférence en 1 mot ?

Maxime Delbut : Diversifiée.

Bastien Coutable : Instructive.