Murena : comment intégrer et adapter le Launcher d'Android - FOSDEM 2025 partie 5
mer, 12/02/2025 - 09:24
Durant la dernière FOSDEM, l'équipe de Murena animait la session : hijack Launcher3. Murena développe /e/os, un OS mobile alternatif à Android. Le projet est apparu en 2018. En 2022, la version 1 était disponible, puis la v2 en 2024. Développer un OS mobile prend beaucoup de temps et de ressources. /e/os est initialement un fork de LineageOS, qui lui-même est un fork de AOSP. AOSP est, pour faire court, la version open source d'Android que Google met à jour à chaque version. Un des projets les plus importants est le Launcher. Il s'agit de l'écran d'accueil / démarrage de l'OS pour accéder aux services et applications. Pour /e/os, le Launcher devient BlissLauncher.
BlissLauncher a été l'un des premiers projets lancés car sans lanceur, impossible d'utiliser simplement l'OS ! Le développement a débuté dès février 2018. Même si le projet s'inspire beaucoup du Launcher d'AOSP, il a été écrit depuis zéro. Les développeurs n'ont pas voulu suivre les mécanismes de lancement d'applications, la gestion des widgets, etc. D'autre part, un énorme travail de refactoring aurait dû être réalisé pour adapter le code existant à BlissLauncher. La v0 était très différente du Launcher de Google et de la version actuelle. Le code était instable et les plantages réguliers. Le placement des icônes était parfois imprécis et il fallait intégrer et stabiliser la gestion des gestes, gérer le switch entre les applications, intégrer le glisser-déposer, etc. Bref : tout ce que devait faire le Launcher.
La v3 de BlissLauncher a permis de faire un grand bond en avant dans l'usage, l'ergonomie, la stabilité. L'ergonomie a été profondément revue : agencement automatique des icônes, gestion du toucher long sur une icône, intégration du dossier, création d'une page widget, ajout d'effets, etc. La gestion du pixel scaling a été un des chantiers les plus difficilesà cause des différents formats d'affichage.
Les développeurs s'appuient sur les modules Kotlin, une architecture MVI, une reprise des fonctionnalités de Trebuchet Launcher d'AOSP (par exemple pour le défilement horizontal), le multilingue, etc. En 2024, BlissLauncher a intégré le mode tablette.
Une des difficultés de BlissLauncher est de suivre les évolutions d'Android, de mieux gérer les modes smartphones et tablettes et d'avoir un niveau de fonctionnalité le plus proche possible. Deux questions se posent aux développeurs : la disponibilité des widgets sur l'écran et un mode desktop.
La v3 a été développée par 2 développeurs durant environ 18 mois.