kdrag0n, le développeur de ProtonAOSP ROM, a publié sa propre version de « monet », le nouveau système de thème basé sur des fonds d'écran d'Android 12.
Le système de thème basé sur le fond d'écran de Material You, nommé "monet", a finalement été mis en ligne Android 12 bêta 2. Le système de thème crée des palettes de couleurs basées sur la palette de couleurs dominante de votre fond d'écran et les applique aux vignettes Paramètres rapides, à l'écran de verrouillage, aux paramètres, aux fenêtres contextuelles et aux applications. Cependant, dans sa mise en œuvre actuelle, il thèmes faisant partie de l'interface utilisateur du système et sélectionner les applications système. La plupart des applications tierces ne prennent pas en charge cette thématique dynamique car Google n'a pas encore publié la documentation sur Material You. Bien que nous ne sachions pas quand Google publiera des ressources et des bibliothèques sur Material You, Danny Lin (kdrag0n), le développeur de ProtonAOSP ROM, a présenté son propre moteur de thème basé sur « monet ».
Le moteur de thème de kdrag0n fonctionne comme « monet » et ouvre la thématique dynamique exclusive à Pixel à tous les appareils exécutant Android 12 et certaines anciennes versions d’Android. kdrag0n est le développeur qui a fait fonctionner « monet » pour la première fois dans les premières versions d'aperçu des développeurs d'Android 12. Depuis, il a procédé à l'ingénierie inverse de l'implémentation de Google et a même fait part de ses commentaires aux membres de l'équipe SystemUI de Google, notamment James O'Leary (qui semble faire partie de l'équipe qui a développé "monet" chez Google).
Selon kdrag0n, son implémentation n'utilise aucun code ni API de Google ou d'Android 12, il n'y a donc aucune dépendance aux appareils exécutant Android 12 pour que son modèle soit utilisé. Le moteur de thème de kdrag0n suit les cibles de couleur Material You. Ces cibles sont alors « recoloré en ajustant la couleur et la teinte dans l'espace colorimétrique perceptuel Oklab de @bjornornorn. Les couleurs résultantes sont mappées en gamme sRGB en utilisant l'intersection de gamme dans l'espace Oklab. Les utilisateurs peuvent également modifier la couleur et lui donner la priorité aux nuances précises.
Le moteur de thème de kdrag0n est open source sous licence MIT, permettant aux développeurs de ROM personnalisées (et même aux OEM) de l'implémenter s'ils le souhaitent. En fait, le propre du développeur ProtonAOSP ROM sera l’un des premiers à l’implémenter lors de la publication du code source d’Android 12. Si vous êtes un développeur de ROM personnalisée, vous pouvez sélectionner ces engagements et fusionnez-les dans votre build.
Le développeur travaille également sur les bibliothèques Jetpack Compose et Flutter, qui permettront même aux applications conçues pour Android 11 de prendre en charge les couleurs dynamiques. Les applications ciblant les anciennes versions d'Android peuvent enregistrer un auditeur pour être averti lorsque les couleurs du fond d'écran changent — le code de kdrag0n est davantage destiné à générer des thèmes basés sur la nouvelle couleur du fond d'écran.
À titre d'exemple de son modèle fonctionnant pour des applications ciblant Android 11, le développeur a partagé avec nous une vidéo démontrant une application changeant de thème à chaque image à 90 ips. Notez que cette démo n’est qu’un exemple de ce qui peut être fait et qu’il n’est pas recommandé de la recréer exactement comme indiqué.
Celui-ci peut avoir un impact important sur les performances et la batterie, bien que le Pixel 4 du développeur puisse restituer les changements de thème à 90 ips pour des vues plus simples. Selon le développeur, Jetpack Compose n'a pas été optimisé pour les performances, et la bibliothèque Flutter pourrait être meilleure. Dans tous les cas, il ne faut que 0,05 ms à son moteur pour générer un thème, mais changer le thème de l'interface utilisateur à chaque image pèse néanmoins sur les performances.
Mishaal Rahman a contribué à cet article.