Chaque fois que je téléphone à quelqu'un, mon petit garçon court vers moi pour le prendre sur mes mains. Chaque fois qu'il ouvre le téléphone, il cherche l'icône d'appel pour faire du Allo! Allo!. Parfois, ça dérange les autres car j'oublie qu'il y a de crédit dans le téléphone. Je pense qu'il est temps de résoudre ça et ce que je vais faire c'est de construire une application qui simule un appel pour lui.
Je veux que l'application soit le plus simple possible, puis j'ai décidé de réaliser ces trois choses là:
- Un écran pour saisir un numéro
- Un écran qui affiche l'appel en cours et qui lance la voix choisie
- Un écran pour ajouter et choisir une voix à entendre lors de l'appel
Je fais toujours des applications mobile avec du React Native et lorsque je fait la configuration d'Android de certaines librairies, quelquefois je ne sais pas vraiment ce que je suis entrain de faire. C'est pour cela que je vais le faire avec Kotlin comme ça je pourrai le découvrir.
Réalisation
Mon objectif principal dans ce découvert est de comprendre l'écosystème d'Android comme le routage, l'accès à des différents storages, etc. Ensuite, d'apprendre la base de Kotlin pour écrire le code.
Au début du développement, je n'apprécie pas déjà l' architecture MVVM surtout avec le XML, c'est l'enfer de faire l'interface graphique. Peut-être que c'est du à mon habitude avec React et la déclarative UI mais là, même un simple TODO list, on touche trois tonnes de codes. Concernant de Kotlin, le langage est vraiment simple et facile à apprendre, je me sens très bien avec ce langage.
J'ai vu qu'il y a l'outil Compose qui simplifie la construction de l'interface de l'application en adoptant le principe de déclarative UI. Je ne l'ai pas encore testé mais je vois déjà que c'est beaucoup mieux que l'architecture classique d'Android. Du coup, c'est aussi la tendance de la construction d'UI actuelle donc il est un peu "obligé" de la suivre 😃.
J'ai passé environ trois jours au total pour terminer l'application et découvrir Android. Voici les trois écrans qui sont fait:
Conclusion
Bref, je ne suis pas vraiment à l'aise avec l'architecture classique d'Android mais l'annonce de Compose me motive à développer une application native. Mais le souci c'est que des frameworks cross-platform comme React Native ne support pas encore Compose donc, je suis obligé de ne pas ignorer l'architecture classique d'Android. En plus, c'est toujours mieux de comprendre l'origine d'un quelque chose.