Android Architecture Components - Mise en pratique (Part 1 - Configuration de l’environnement)

Si c'est la première fois que vous entendez parler des Android Architecture Components (AAC), je vous invite à lire l'article suivant. Il présente par la théorie en quoi ces librairies consistent.

TL;DR : Elles ont été publiées fin 2017 par Google. Elles offrent aux développeurs une architecture structurée et assez complète, mise en avant sur leur site.

Cet article est la 1ère partie d'un lot de 7 tutoriels. Ils présentent par la pratique les AAC. Nous allons créer une application de tracking de cryptomonnaies. Nous suivrons chaque étape via un répertoire GitHub dédié. Nous nous baserons sur l'API (gratuite - sans authentification) de coinmarket. L'objectif est de fournir un socle architectural Android. A terme, l'application :

  • Consommera des webservices,
  • Disposera d'un cache local sous forme de base de données,
  • Utilisera de l'injection de dépendances.

NB : La solution de cette partie est disponible sur le commit 1-Initialization

Stack technique utilisée

Voici l'environnement de développement utilisé pour cet exemple :

  • Google Chrome
  • Android Studio. Vous pouvez le télécharger ici.
  • Android SDK (le bundle IDE + SDK est proposé par défaut).
  • Kotlin
  • Git

Nous utiliserons aussi les librairies suivantes :

  • AndroidX (nouvelles conventions de nommage et de versioning pour les platform libraries android)
  • Android Architecture Components (le sujet de ce billet de blog)
  • Dagger 2 : injection de dépendances (github)
  • Stetho : inspection de base de données SQLite dans google chrome (github)
  • Fuel : appels REST à des webservices (github)
  • Kotlin coroutines : asynchronicité, pattern producer / consumer (github)
  • Timber : logging facilité pour le développeur (fainéant) (github)

Initialisation

A cette étape, le projet reprend le Hello-World généré par Android Studio. Notons que nous utilisons des dépendances en androidx.xxx.xxx (voir app/build.gradle). Nous devons pour cela spécifier les propriétés gradle suivantes (voir gradle.properties) :

Ces spécificités permettent d'utiliser AndroidX, une récente nouveauté.

Conclusion

Ce premier article présente le socle de notre future application. La stack technique peut effrayer par le nombre de dépendances qu'elle embarque. Pourtant, nous verrons que tous les outils s'intègrent et s'utilisent facilement. Nous mettrons en place des outils de logs et de monitoring dans la prochaine étape

Sources