Caso de estudo
Projeto próprio · Aplicação Windows
AutoDark: alternância de temas do Windows, publicada na Microsoft Store.
Alternância automática entre os modos claro e escuro do Windows 11 ao nascer e ao pôr do sol. Um utilitário focado, de LIGAR/DESLIGAR, criado por Danilo Stoletovic e publicado na Microsoft Store.
A aplicação
O problema
Há anos que queria que o Windows acompanhasse a luz do dia. As alternativas que experimentei traziam mais complexidade e atividade em segundo plano do que eu queria. Uma funcionalidade simples do Windows não devia exigir software complicado. Queria um interruptor, não mais um passatempo.
A solução
Criei uma aplicação Windows nativa em .NET com uma interface mínima de LIGAR/DESLIGAR. O AutoDark calcula o nascer e o pôr do sol a partir da localização do Windows ou de coordenadas introduzidas manualmente, usa o modo claro durante o dia e o modo escuro à noite, e entrega as execuções agendadas ao Windows Task Scheduler. Fechar a janela encerra a aplicação; DESLIGAR a automatização remove a tarefa e restaura as definições de tema guardadas.
Fazer pouco, mas bem
Funcionalidades bem delimitadas e baixo consumo de recursos em segundo plano eram requisitos do projeto. Não há ícone na área de notificação nem serviço residente: o Windows inicia execuções breves quando necessário. Sem conta, sem telemetria, sem labirintos de definições. São escolhas de arquitetura, não resultados de testes de desempenho.
Um pacote muda as regras
A integração com os temas do Windows teve de ter em conta o comportamento do MSIX. A aplicação sem pacote faz alterações pontuais no registo; a implementação atual em pacote aplica uma cópia de um tema através do Windows Theme Manager, alterando os modos claro/escuro sem aplicar o fundo do ambiente de trabalho, os cursores, os ícones e os sons. Essa interface não está documentada, por isso a compatibilidade exige testes, não suposições. A aplicação em pacote, quando agendada, usa um alias de execução independente da versão em vez de um caminho de instalação associado a uma versão.
A sandbox disse que não
A submissão à loja também implicou lidar com restrições de capacidades. A capacidade unvirtualizedResources foi rejeitada e removida. Numa experiência separada com AppContainer, foi possível iniciar o programa de teste e inicializar o Theme Manager, mas a aplicação de um tema incluído no pacote, com acesso de leitura, foi recusada e o acesso ao Task Scheduler falhou. Foi uma investigação, não uma funcionalidade de sandbox disponibilizada aos utilizadores. O manifesto de produção atual mantém runFullTrust para execução normal como utilizador do ambiente de trabalho; não pede elevação a administrador. Estas experiências locais não comprovam o comportamento em todas as compilações do Windows nem identificam a versão exata do pacote atualmente apresentada na loja.
Entregar faz parte da engenharia
Criei o empacotamento e a validação MSIX em torno da identidade do pacote da aplicação, da versão, dos recursos e do alias de execução, com um pacote preparado para submissão manual no Partner Center. Os detalhes da página da aplicação, as declarações de privacidade e de capacidades, as restrições de permissões e as verificações de compatibilidade fazem parte do trabalho de entrega. Uma compilação bem-sucedida, por si só, não põe uma aplicação nas mãos de ninguém.
O resultado
O AutoDark é uma aplicação funcional, disponível ao público na Microsoft Store, sob o nome de editor Danilo Stoletovic. Esse é o marco: um utilitário real que as pessoas podem instalar através de um canal de distribuição público. A publicação na loja é distribuição, não um aval da Microsoft.
O botão foi a parte fácil
Uma interface pequena pode esconder muito trabalho de integração com a plataforma. O empacotamento muda o comportamento da execução. Os modelos de permissões podem bloquear a funcionalidade principal. A distribuição tem os seus próprios requisitos. A lição: entregar software inclui compatibilidade, empacotamento e fazê-lo chegar aos utilizadores, não apenas escrever código.
Confirma por ti
Serviço relacionado: Aplicações web e integrações de IA
A minha stack
Aprendiz de tudo. Mestre de nada.
Mesmo assim, entrego a merda toda