DroidSoft App : application Android Kotlin pour DroidSoft

A l'occasion du projet tutoré de deuxième année, nous avons développé une application mobile pour DroidSoft, un média en ligne spécialisé dans l'univers Android. L'idée était de proposer autre chose qu'une simple version mobile du site : une application native, avec un accès plus direct aux articles, aux contenus et à certaines données produits.

Le projet s'est déroulé principalement entre fin 2022 et avril 2023. L'historique GitHub du dépôt DroidApp montre une activité entre janvier et avril 2023, avec plusieurs contributeurs. Nous étions quatre sur le projet, et j'ai notamment travaillé sur la coordination avec DroidSoft, l'application Android et la partie API autour des fiches produits.

Logo DroidSoft App

Caractéristiques techniques du projet

Application Android

  • Android Studio et Kotlin.
  • Architecture MVVM.
  • Repository pattern pour isoler l'accès aux données.
  • Paging 3 pour le défilement progressif des articles.
  • Retrofit pour les appels réseau.
  • Firebase Messaging pour les notifications push.
  • Shimmer loading pour améliorer la perception de chargement.

API et données produits

Une autre partie du projet concernait la création d'une API et d'une base de données de smartphones.

  • Scripts JavaScript de scraping.
  • API Express.js pour exposer les données.
  • Base MySQL pour stocker marques, modèles et fiches techniques.
  • Endpoints de consultation pour les produits.

Cette partie a ensuite alimenté d'autres projets autour de DroidSoft, comme le Comparateur DroidSoft.

Détails du projet

Organisation du travail

Le projet était mené avec un contexte proche d'un vrai client. DroidSoft avait une attente produit, et nous devions avancer avec des retours réguliers. J'étais en charge d'une partie de la relation avec le média, ce qui m'a amené à faire le lien entre les besoins exprimés, les choix de design et les contraintes techniques.

Nous avons utilisé GitHub pour partager le code et Trello pour suivre les tâches. Le travail était réparti entre design, développement Android et API.

Exemple de suivi projet Trello

Design et UX

Le design devait rester cohérent avec l'identité DroidSoft, tout en tenant compte des usages mobiles. J'ai surtout travaillé les retours et l'ajustement des écrans, pour que les choix graphiques restent compatibles avec les contraintes de développement.

Design DroidSoft App

Numérique responsable

Nous avons aussi intégré une réflexion autour du mode sombre. Sur les écrans OLED, un noir réel peut réduire la consommation, car les pixels concernés sont éteints. Ce n'était pas l'argument principal de l'application, mais cela donnait du sens au travail sur les thèmes clair et sombre.

Design OLED DroidSoft

Communication avec WordPress

DroidSoft étant un média WordPress, l'application devait communiquer avec l'API du site pour récupérer les articles, commentaires et métadonnées utiles. Cette intégration était centrale : l'application n'avait de valeur que si elle restait branchée sur les contenus existants.

Base smartphones et scraping

La partie API produits reposait sur un flux de scraping puis d'enregistrement en base. L'objectif était de transformer des fiches techniques en données exploitables par une API.

Endpoints API produits

Le modèle reposait sur des endpoints comme /brands, /brand/{url} et /device/{url} pour naviguer entre marques, produits et fiches détaillées.

Ce que le projet m'a appris

Ce projet a été une vraie transition entre travaux scolaires et logique client. Nous avons dû apprendre Kotlin, comprendre l'API WordPress, gérer une équipe, tenir compte des retours de DroidSoft et livrer quelque chose de présentable.

Sur le plan technique, j'ai surtout progressé sur le développement Android, la communication API et la structuration d'un projet mobile plus ambitieux qu'un TP.

Auto-critique du résultat

Avec le recul, nous aurions pu réduire le périmètre pour livrer plus vite certaines fonctionnalités. L'application était fonctionnelle, mais chaque bloc demandait un apprentissage : Android, Kotlin, API WordPress, scraping, base de données.

La partie API produits était prometteuse, mais dépendait de beaucoup d'intermédiaires. Pour la rendre plus robuste, il aurait fallu mieux gérer les erreurs de scraping, les changements de structure du site source et l'observabilité des scripts.

Sources du projet