Touchradio: avancement

Ces derniers temps, j’ai pas mal avancé sur mon projet Touchradio. J’ai codé une bonne partie des fonctionnalités minimum de base:

Affichage du morceau en cours de lecture (artiste, album, titre, pochette si disponible)
Contrôle de la lecture (lecture, arrêt, pause, précédent, suivant) et du volume
Parcours de la bibliothèque par artistes, albums et chansons
Parcours de la liste des favoris.

Ces fonctionnalités me permettent d’avoir un lecture audio de base et de pouvoir lire ma collection musicale ainsi que mes radios internet favorites.

Le but est d’avoir un premier prototype utilisable en situation réelle (dans ma cuisine…) d’ici la fin de l’année.

Il reste donc la deuxième partie de ce projet, qui est peut-être la plus importante, l’interface graphique! Mon objectif est de réussir à créer une interface graphique agréable à utiliser, simple, rapide, moderne, et conçue pour être utilisée via un écran tactile. Le problème : je suis très mauvais à ce petit jeu! Les interfaces graphiques que je crée pour des applications PC sont, la plupart du temps, très laides, et absolument pas pratiques. Arriverai-je à faire mieux cette fois-ci?

Pour développer ces fonctionnalités, j’avais créé une interface graphique de base, très pratique pour distinguer les délimitations de chacun des éléments mais… excessivement moche.

J’ai bien essayé d’améliorer cela, mais sans résultat probants…

Il y a encore eu quelques autres essais, j’ai testé plusieurs mises en page, plusieurs compositions, plusieurs palettes de couleurs, et finalement, je me suis limité à quelque chose d’assez simple, plus à ma hauteur:

Il y a encore quelques petits détails à régler (alignement, taille des éléments et des polices,…), mais dans l’ensemble, cette interface me parait utilisable pour l’instant. QT5 est suffisamment flexible à ce niveau pour permettre la création d’une nouvelle interface + tard dans le développement.

Ces captures d’écran ont été prises sur mon PC de développement. En effet, c’est exactement le même code qui tourne sur mon PC Windows que sur le RaspberryPi. Il suffit de recompiler le code sur celui-ci pour que l’ensemble fonctionne parfaitement!

Et pour la suite ?

Je compte corriger quelques bugs, effectuer quelques améliorations mineures au niveau de l’UI, et, si possible, nettoyer, refactoriser et améliorer un peu le code. En effet, si je continuais à essayer de faire du code de qualité du premier coup (ce que je fais déjà à longueur de journée au boulot), j’en serais toujours au point où j’essaie d’ouvrir une socket pour communiquer avec le Logitech Media Server. J’ai donc une approche un peu moins professionnelle, mais cela tombe bien, je ne fais pas cela pour le boulot! Et je pourrai toujours améliorer cela plus tard.

Une fois que ces ajustements auront été effectués, je rendrai ce projet + publique : copie des sources sur Github, messages sur des forums,… dans le but d’avoir des retours, et peut-être de trouver d’autres personnes intéressées par le projet. Je pense qu’il pourrait être aussi intéressant pour d’autres projets d’extraire le code de communication avec le Logitech Media Server afin d’en faire une librairie indépendante. En effet, j’en avais trouvée une en Python, mais pas en C/C++.

Et puis, on verra bien! Si cela fonctionne bien et si j’ai du temps, je trouverai surement la motivation de continuer le projet pour mon utilisation personnelle!

Si ce projet vous intéresse, si vous avez une idée de fonctionnalité, ou pour toutes autres raisons, n’hésitez pas à écrire un petit commentaire!

Laisser un commentaire

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