Dan Delivers

Étude de cas

Projet personnel · Application Windows

AutoDark : changement de thème Windows, publié sur Microsoft Store.

Passage automatique entre les modes clair et sombre de Windows 11 au lever et au coucher du soleil. Un utilitaire qui va droit au but, avec un simple interrupteur ON/OFF, développé par Danilo Stoletovic et publié sur Microsoft Store.

L’application

  • Icône de l’application AutoDark
  1. Le problème

    Ça faisait des années que je voulais que Windows suive la lumière du jour. Les solutions que j’avais essayées ajoutaient plus de complexité et d’activité en arrière-plan que je n’en voulais. Une fonction Windows toute simple ne devrait pas nécessiter un logiciel compliqué. Je voulais un interrupteur, pas un nouveau passe-temps.

  2. La solution

    J’ai développé une application Windows native en .NET avec une interface ON/OFF minimale. AutoDark calcule le lever et le coucher du soleil à partir de la localisation Windows ou de coordonnées saisies manuellement, utilise le mode clair le jour et le mode sombre la nuit, et confie les exécutions planifiées à Windows Task Scheduler. Fermer la fenêtre quitte l’application ; désactiver l’automatisation avec OFF supprime la tâche et restaure les paramètres de thème enregistrés.

  3. S’en tenir à l’essentiel

    Des fonctionnalités ciblées et une faible consommation de ressources en arrière-plan faisaient partie des contraintes de conception. Pas d’icône dans la zone de notification ni de service résident : Windows lance de brèves exécutions au besoin. Pas de compte, pas de télémétrie, pas de labyrinthe de paramètres. Ce sont des choix d’architecture, pas des mesures de performance.

  4. Le packaging change les règles

    L’intégration des thèmes Windows devait tenir compte du comportement de MSIX. L’application non empaquetée effectue des modifications ciblées du registre ; l’implémentation empaquetée actuelle applique une copie de thème via Windows Theme Manager, en changeant les modes clair et sombre sans appliquer le fond d’écran, les curseurs, les icônes ni les sons. Cette interface n’est pas documentée : la compatibilité doit donc être testée, pas supposée. L’application empaquetée planifiée utilise un alias d’exécution indépendant de la version plutôt qu’un chemin d’installation lié à une version.

  5. Le bac à sable a dit non

    La soumission au Store impliquait aussi de gérer les restrictions de capacités. La capacité unvirtualizedResources, refusée, a été retirée. Lors d’une expérimentation AppContainer distincte, le lancement du programme de test et l’initialisation de Theme Manager ont réussi, mais l’application d’un thème inclus et accessible en lecture a été refusée, et l’accès à Task Scheduler a échoué. C’était une investigation, pas une fonctionnalité en bac à sable livrée aux utilisateurs. Le manifeste de production actuel conserve runFullTrust pour une exécution classique avec les droits de l’utilisateur du bureau ; il ne demande pas d’élévation administrateur. Ces essais locaux ne prouvent pas le comportement sur toutes les versions de Windows et ne permettent pas d’identifier la version exacte du package actuellement référencée sur le Store.

  6. Livrer fait partie de l’ingénierie

    J’ai mis en place le packaging MSIX et sa validation autour de l’identité du package, de sa version, de ses ressources et de son alias d’exécution, avec un package préparé pour une soumission manuelle dans Partner Center. Les informations de la fiche, les déclarations de confidentialité et de capacités, les restrictions d’autorisations et les vérifications de compatibilité font tous partie du travail de livraison. Une compilation réussie ne suffit pas à mettre une application entre les mains de quelqu’un.

  7. Le résultat

    AutoDark est une application fonctionnelle accessible au public sur Microsoft Store, sous le nom d’éditeur Danilo Stoletovic. C’est ça, le cap franchi : un vrai utilitaire que chacun peut installer via un canal de distribution public. La publication sur le Store, c’est de la distribution, pas une approbation de Microsoft.

  8. Le bouton, c’était la partie facile

    Une petite interface peut cacher un gros travail d’intégration à la plateforme. Le packaging change le comportement à l’exécution. Les modèles d’autorisations peuvent bloquer la fonction principale. La distribution a ses propres exigences. La leçon : livrer un logiciel, c’est aussi gérer la compatibilité, le packaging et sa mise à disposition des utilisateurs, pas seulement écrire du code.

Obtenir AutoDark sur Microsoft Store (s’ouvre dans un nouvel onglet)

Publiée sous le nom de Danilo Stoletovic sur Microsoft Store.

Vérifie par toi-même

Service associé : Applications web et intégrations IA

Ma stack

Touche-à-tout. Expert en rien.
Mais je livre quand même tout le putain de projet

  • React
  • TypeScript
  • Node.js
  • Python
  • Kotlin
  • Flutter
  • C#
  • Docker
  • Linux
  • Cloudflare
  • Vercel

Tu as un problème similaire ?