Dan Delivers

Studium przypadku

Własny projekt · Aplikacja na Windows

AutoDark: przełączanie motywów Windows, opublikowane w Microsoft Store.

Automatyczne przełączanie jasnego i ciemnego trybu Windows 11 o wschodzie i zachodzie słońca. Proste narzędzie z przełącznikiem WŁ./WYŁ., którego twórcą jest Danilo Stoletovic, opublikowane w Microsoft Store.

Aplikacja

  • Ikona aplikacji AutoDark
  1. Problem

    Od lat chciałem, żeby Windows dostosowywał się do światła dziennego. Rozwiązania, które testowałem, były bardziej skomplikowane i robiły w tle więcej, niż potrzebowałem. Prosta funkcja Windows nie powinna wymagać skomplikowanego oprogramowania. Chciałem przełącznika, a nie kolejnego hobby.

  2. Rozwiązanie

    Zbudowałem natywną aplikację .NET na Windows z minimalistycznym interfejsem WŁ./WYŁ. AutoDark oblicza wschód i zachód słońca na podstawie lokalizacji z Windows lub ręcznie wpisanych współrzędnych, włącza jasny tryb w dzień i ciemny w nocy, a zaplanowane uruchomienia przekazuje do Windows Task Scheduler. Zamknięcie okna kończy działanie aplikacji; wyłączenie automatyzacji usuwa zadanie i przywraca zapisane ustawienia motywu.

  3. Ma robić swoje. I tyle.

    Wąski zakres funkcji i niskie zużycie zasobów w tle były założeniami projektowymi. Nie ma ikony w zasobniku ani stale działającej usługi: Windows uruchamia aplikację na krótko, gdy jest potrzebna. Bez konta, bez telemetrii, bez labiryntu ustawień. To decyzje architektoniczne, a nie wyniki testów wydajności.

  4. Pakiet zmienia zasady gry

    Integracja z motywami Windows musiała uwzględnić zachowanie MSIX. Aplikacja bez pakietu wprowadza niewielkie zmiany w rejestrze; obecna implementacja w pakiecie stosuje skopiowany motyw przez Windows Theme Manager, zmieniając tryb jasny/ciemny, ale pomijając tapetę, kursory, ikony i dźwięki. Ten interfejs nie jest udokumentowany, więc zgodność trzeba testować, a nie zakładać. Zaplanowane uruchomienia aplikacji w pakiecie korzystają z aliasu wykonywania niezależnego od wersji zamiast ze ścieżki instalacji zawierającej numer wersji.

  5. Piaskownica powiedziała: nie

    Zgłoszenie do sklepu oznaczało też zmagania z ograniczeniami uprawnień. Odrzucone uprawnienie unvirtualizedResources zostało usunięte. W osobnym eksperymencie z AppContainer udało się uruchomić program testowy i zainicjalizować Theme Manager, ale zastosowanie dołączonego motywu, który dało się odczytać, zostało zablokowane, a dostęp do Task Scheduler nie zadziałał. To było badanie, a nie funkcja piaskownicy udostępniona użytkownikom. Obecny manifest produkcyjny zachowuje runFullTrust do uruchamiania z uprawnieniami zwykłego użytkownika pulpitu; nie żąda podniesienia uprawnień do administratora. Te lokalne eksperymenty nie dowodzą, że aplikacja zachowa się tak samo w każdej kompilacji Windows, ani nie wskazują dokładnej wersji pakietu dostępnej obecnie w sklepie.

  6. Wydanie aplikacji to też inżynieria

    Przygotowałem pakowanie i walidację MSIX z uwzględnieniem tożsamości pakietu aplikacji, wersji, zasobów i aliasu wykonywania, a sam pakiet przygotowałem do ręcznego zgłoszenia w Partner Center. Opis w sklepie, deklaracje prywatności i uprawnień, ograniczenia uprawnień oraz testy zgodności — to wszystko jest częścią pracy nad wydaniem. Sama udana kompilacja nie sprawi, że aplikacja trafi do czyichś rąk.

  7. Rezultat

    AutoDark to działająca aplikacja dostępna publicznie w Microsoft Store, z Danilo Stoletovic jako wydawcą. To właśnie ten etap: prawdziwe narzędzie, które każdy może zainstalować przez publiczny kanał dystrybucji. Publikacja w sklepie oznacza dystrybucję, a nie rekomendację ze strony Microsoft.

  8. Przycisk był najłatwiejszy

    Mały interfejs może skrywać sporo pracy z platformą. Pakowanie zmienia sposób uruchamiania aplikacji. Modele uprawnień potrafią zablokować jej główną funkcję. Dystrybucja ma własne wymagania. Wniosek: wydawanie oprogramowania to także zgodność, pakowanie i dotarcie do użytkowników, a nie tylko pisanie kodu.

Pobierz AutoDark z Microsoft Store (otwiera się w nowej karcie)

Opublikowana w Microsoft Store pod nazwą Danilo Stoletovic.

Sprawdź samodzielnie

Powiązana usługa: Aplikacje webowe i integracje AI

Mój stack

Znam się na wszystkim. Mistrzem nie jestem w niczym.
A i tak dowożę całą tę cholerną robotę

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