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.

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.

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.

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.

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.

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.

