23Mai

Android Makers 2019 : Immersion au coeur d’Android

Les 23 et 24 avril derniers, j’ai eu la chance de participer pour la première fois aux Android Makers. Je vous emmène donc à la découverte de cet évènement.

Qu’est ce que les Android Makers ? Il s’agit de deux jours de conférences liées à Android. L’événement existe maintenant depuis 2 ans et rassemble chaque année de plus en plus de participants ainsi que des intervenants d’exception, prenant part à pas moins de 70 conférences.

Ces dernières, bien qu’axées sur des sujets techniques, permettent à chacun de trouver son bonheur en variant les sujets ainsi que leurs complexités.

Pour ma part, j’ai assisté à différentes conférences allant de l’architecture de projet, aux tests unitaires, en passant par Kotlin et par du design.
Avec autant de sujets, on obtient un évènement très complet où chacun est en mesure de trouver son bonheur.

Les 3 conférences qui m’ont le plus marqué :

 


“Design System” par 
Maria Neumayer, développeuse Android chez Deliveroo

 


Le design system concrètement à quoi ça sert ?

La réponse est simple : à créer une vrai cohérence visuelle dans votre application, voir dans vos applications.

Dans la pratique ça donne quoi ?
La création de composants visuels, conjointement entre l’équipe de développement et l’équipe graphique, pour en finir avec les projets ayant trop d’éléments différents pour un rendu similaire. 
Cela permet donc d’avoir une “base de données des composants graphiques” pour le projet sur laquelle les équipes vont pouvoir s’appuyer pour faire évoluer ou créer de nouveaux écrans.

 

Ainsi, grâce à cette base visuelle, on a la capacité de limiter les duplications de composants similaires. On obtient également une uniformisation des couleurs, des polices ou encore des tailles. En effet, dans l’exemple de Deliveroo, il existe plusieurs applications et ces dernières se doivent de conserver une harmonie.

Mais lorsque l’on a seulement une application est-ce vraiment utile ?
Ma réponse : oui. Beaucoup d’applications, qu’elles soient mobiles ou web, manquent cruellement de cohérence à la suite d’évolution de maquette au fil du développement (par nouveautés visuelles mais également par des changements d’UX/UI)

Ces composants personnalisés ne sont pourtant pas figés dans le marbre, ils peuvent bien évidemment évoluer. Ces changements impacteront alors tous les projets et feront gagner un temps précieux au développeur, qui n’a pas à retravailler sur tous les écrans pour modifier un code couleur.

 

“L’architecture MVI” par Simone Civetta, développeur iOS, et Arnaud Piroelle, développeur Android, de Xebia

 

La salle était comble dès le matin pour parler d’architecture. Cela m’a conforté. Je n’étais donc pas la seule à ne pas toujours comprendre comment intégrer les nouvelles architectures dont on entend régulièrement parler.

Mais qu’est-ce que le MVI ?
Tout d’abord on définit l’architecture MVI par Model-View-Intent

  • Model : stock les données de la vue ainsi que son état
  • View : interface qui est implémentée dans nos vues : activity, fragment
  • Intent : action à effectuer (intention). Le model est notifié de l’intention et mettra en retour la vue à jour ainsi que son état par copie.

 

Cette architecture nous permet de connaître l’état de notre vue (en cours de chargement, en erreur, en succès …). Ainsi, nous pouvons avoir une représentation côté code de son état. Nous pouvons donc tester notre application plus précisément,  mais également réduire le nombre de comportements non désirés.

 

Bénéfices :

  • Séparation de la logique métier et de la logique de vue
  • Testabilitée accrue
  • Bindings
  • Inspectabilité de l’état

Complexités :

  • Couche d’indirection supplémentaire
  • Prise en main complexe
  • Pas totalement intégrée dans les composants JetPack (Navigation et Paging)

 

“Les bonnes pratiques pour les applications modulaires” par  Ben Weiss, développeur Android chez Google

 


J’avais vaguement entendu parler des applications modulaires avant cette présentation et cela m’a permis de découvrir l’ampleur des possibilités des applications modulaires, je vais vous en faire découvrir une partie.

La plupart d’entre-nous ont en effet comme projet, ou même sur leur smartphone en général, des applications classiques : un exécutable qui contient toute l’application, y compris des fonctionnalités que l’on n’utilisera jamais, et qui pourtant font partie du poids de cet exécutable et ainsi prennent de la place sur votre smartphone.


Mais quelle est l’utilité de surcharger votre téléphone avec du code lié à des fonctionnalités que vous n’utilisez pas à ce-jour ?

C’est là tout le secret de la modularisation: mettre à votre disposition uniquement ce dont vous avez besoin pour votre utilisation de l’application et vous permettre d’obtenir le module correspondant lorsque vous en aurez besoin.

Côté technique, cela nécessite tout de même quelques changements afin de découper notre module principal (“app” pour la majorité d’entre nous) en fonctionnalités, en gardant bien évidemment notre module “app“ pour y laisser tout ce qui est indispensable.

 

 

 

 

 

Les apports de la modularisation :

  • un temps de build réduit, pour les utilisateurs d’Android Studio et de gradle ce n’est pas négligeable
  • des modules “fonctionnalités” réutilisables entre différentes applications
  • la possibilité de mettre en place de l’instant app
  • Et bien plus encore

Pour terminer sur la modularisation je vais brièvement vous présenter l’instant app évoqué juste au dessus : Avez-vous déjà eu envie de tester une application sans avoir à la télécharger? Ou de permettre à des utilisateurs potentiels de tester votre application en souhaitant faire grandir votre nombre d’utilisateurs ?

L’instant app permet via la modularisation d’avoir une version simplifiée de votre application dans le playstore pour en tester quelques fonctionnalités sans avoir à la télécharger.

Je remercie les intervenants des Android Makers pour la qualité de leurs présentations.

Je vous invite pour aller plus loin à vous rendre sur cette page afin de voir les vidéos des autres conférences, elles valent vraiment le coup de s’y pencher même si vous êtes novices (vous pouvez retrouver ici le programme, la complexité de chaque conférence y est indiquée).

 

Isaline

 

 

Leave reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *