Dan Delivers

Кейс

Собственный проект · Приложение для Windows

AutoDark: переключение темы Windows с публикацией в Microsoft Store.

Автоматическое переключение светлого и тёмного режимов Windows 11 на рассвете и закате. Утилита с одной задачей и переключателем ВКЛ/ВЫКЛ, которую разработал Danilo Stoletovic и опубликовал в Microsoft Store.

Приложение

  • Значок приложения AutoDark
  1. Проблема

    Я годами хотел, чтобы Windows подстраивалась под световой день. Варианты, которые я пробовал, добавляли больше сложности и фоновой активности, чем мне было нужно. Простая функция Windows не должна требовать сложного софта. Мне нужен был переключатель, а не ещё одно хобби.

  2. Решение

    Я написал нативное приложение для Windows на .NET с минимальным интерфейсом ВКЛ/ВЫКЛ. AutoDark рассчитывает время рассвета и заката по данным геолокации Windows или введённым вручную координатам, включает светлый режим днём и тёмный ночью, а запуски по расписанию поручает Windows Task Scheduler. Закрытие окна завершает приложение; отключение автоматизации удаляет задачу и восстанавливает сохранённые настройки темы.

  3. Не раздувать задачу

    Узкая функциональность и низкое потребление ресурсов в фоне были заложены в требования к проекту. Здесь нет значка в трее или постоянно работающей службы: Windows запускает приложение ненадолго, когда это нужно. Без аккаунта, телеметрии и лабиринта настроек. Это архитектурные решения, а не результаты замеров производительности.

  4. Пакет меняет правила

    При интеграции с темами Windows пришлось учитывать поведение MSIX. Приложение без пакета вносит точечные изменения в реестр; текущая пакетная реализация применяет копию темы через Windows Theme Manager, меняя светлый и тёмный режимы, но не применяя обои, курсоры, значки и звуки. Этот интерфейс не документирован, поэтому совместимость нужно проверять, а не принимать на веру. Для запуска пакетного приложения по расписанию используется псевдоним запуска, не зависящий от версии, а не путь установки с номером версии.

  5. Песочница сказала «нет»

    Подача в магазин также потребовала разобраться с ограничениями возможностей приложения. Отклонённая возможность unvirtualizedResources была удалена. В отдельном эксперименте с AppContainer удалось запустить тестовую программу и инициализировать Theme Manager, но применение доступной для чтения темы из комплекта приложения было запрещено, а получить доступ к Task Scheduler не удалось. Это было исследование, а не функция песочницы, вошедшая в релиз. Текущий манифест релизной версии сохраняет runFullTrust для запуска в обычном пользовательском контексте настольной среды; повышения прав до администратора он не запрашивает. Эти локальные эксперименты не доказывают, что поведение будет одинаковым на всех сборках Windows, и не определяют точную версию пакета, которая сейчас представлена в магазине.

  6. Выпуск — часть инженерной работы

    Я настроил упаковку в MSIX и проверку с учётом идентификатора пакета приложения, версии, ресурсов и псевдонима запуска, подготовив пакет для ручной отправки через Partner Center. Данные для страницы в магазине, декларации конфиденциальности и возможностей, ограничения разрешений и проверки совместимости — всё это часть работы по выпуску. Одной успешной сборки мало, чтобы приложение попало к пользователям.

  7. Результат

    AutoDark — работающее приложение, доступное всем через Microsoft Store под именем издателя Danilo Stoletovic. В этом и состоит результат: настоящая утилита, которую можно установить через общедоступный канал распространения. Публикация в магазине — это способ распространения, а не знак одобрения Microsoft.

  8. Кнопка была самой простой частью

    За маленьким интерфейсом может скрываться серьёзная работа с платформой. Упаковка меняет поведение при запуске. Модель разрешений может заблокировать основную функцию. У распространения свои требования. Вывод: выпустить софт — значит обеспечить совместимость, собрать пакет и доставить его пользователям, а не просто написать код.

Скачать AutoDark из Microsoft Store (откроется в новой вкладке)

Опубликовано в Microsoft Store под именем Danilo Stoletovic.

Проверь сам

Связанная услуга: Веб-приложения и ИИ-интеграции

Мой стек

За всё берусь. Ни в чём не мастер.
И всё равно довожу всю эту хрень до релиза

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