Uma aplicação desktop é um programa desenvolvido para rodar diretamente no sistema operacional de um computador (Windows, Linux, macOS), utilizando os recursos locais da máquina como processador (CPU), memória RAM, disco rígido e periféricos (impressoras, scanners, câmeras, etc.).
Diferente de aplicações web (que funcionam em navegadores) e mobile (para smartphones), o desktop oferece maior integração com o sistema, acesso mais direto ao hardware e, geralmente, melhor desempenho para tarefas pesadas.
Características principais:
Exemplos do dia a dia:
Atualmente, muitas aplicações desktop modernas utilizam frameworks multiplataforma (como Flet, Electron, Qt, Flutter) que permitem criar softwares que funcionam em diferentes sistemas operacionais a partir de um único código-base.
Antes de mergulharmos no desenvolvimento com Flet, é importante entender as principais diferenças entre os três tipos de aplicações mais comuns no mercado:
💡 Hoje, muitas empresas adotam aplicações híbridas, que combinam as vantagens de mais de uma plataforma. Exemplos: Slack e WhatsApp Desktop, que têm versão web, desktop e mobile, mantendo a experiência unificada para o usuário.
Uma aplicação desktop bem estruturada geralmente é organizada em camadas. Essa separação facilita a manutenção, o reaproveitamento de código e a compreensão do sistema. Podemos imaginar como se fosse uma empresa: cada setor tem sua função, mas todos trabalham juntos.
app/
ui/ # telas e componentes visuais (ex.: login.py, dashboard.py)
services/ # regras de negócio (ex.: autenticação, cálculos)
data/ # banco de dados, arquivos ou conexões
Imagine um programa de cadastro de alunos:
alunos.db.Essa arquitetura modular é conhecida como MVC (Model-View-Controller) ou Camada em Três Partes, sendo uma das mais usadas em aplicações desktop modernas.
O ciclo de vida descreve as etapas pelas quais uma aplicação desktop passa: desde a instalação até o encerramento, incluindo como ela reage aos eventos do usuário e do sistema operacional. Entender esse fluxo ajuda a projetar apps estáveis, rápidos e fáceis de manter.
Apps desktop são direcionados a eventos: a UI dispara eventos (cliques, teclas, mudanças de foco) e o seu código reage. Evite bloquear a thread da interface; use filas de tarefas, threads ou processos para trabalhos pesados.
# iniciar_app()
carregar_configuracoes()
inicializar_banco_local() # opcional
montar_janela_principal()
registrar_eventos_ui()
entrar_no_loop_de_eventos() # fica rodando até fechar
# ao_clicar_em("Salvar"):
coletar_dados_da_tela()
validar()
escrever_em_arquivo_ou_db()
mostrar_feedback("Salvo!")
~/.config/meuapp/ no Linux, ~/Library/Application Support/ no macOS).logs/app.log).Onde o desktop ainda brilha? Em cenários com alto desempenho local, acesso a hardware, trabalho com arquivos e fluxos que exigem produtividade e recursos do sistema operacional.
| Cenário | Requisito forte | Mais indicado |
|---|---|---|
| Trabalho offline e arquivos locais | Acesso a pastas, impressão, periféricos | Desktop |
| Uso por muitos usuários em locais diferentes | Zero instalação, atualizações centralizadas | Web |
| Funcionalidades nativas do smartphone | GPS, câmera, notificações push | Mobile |
| Mesma experiência em várias plataformas | Time pequeno, entrega rápida | Híbrido (desktop + web) |
Muitas soluções usam frameworks multiplataforma para compartilhar código entre desktop e web, mantendo a experiência consistente. Isso reduz custo e acelera entregas, desde que os requisitos de hardware e UX sejam compatíveis.
Objetivo: consolidar os conceitos de aplicações desktop, diferenças para web/mobile e a arquitetura em camadas (UI/Lógica/Dados).
Formato do envio:
Desktop_Semana01_NomeSobrenome.pdfReflexão final (5–8 linhas):
| Critério | Descrição | Pontuação |
|---|---|---|
| Compreensão das plataformas | Clareza ao diferenciar Desktop, Web e Mobile, com justificativas conectadas a requisitos (offline, periféricos, desempenho). | 0–2,0 |
| Argumentação aplicada | Comparativo da tarefa escolhido: análise realista, indicação da plataforma mais adequada e justificativa consistente. | 0–2,0 |
| Diagrama de arquitetura | Diagrama legível, com separação clara de UI/Lógica/Dados e exemplos de elementos em cada camada. | 0–2,5 |
| Ciclo de vida | Checklist coerente (instalação, preferências, encerramento seguro) e observações pertinentes. | 0–1,5 |
| Clareza e organização | Padronização visual, ortografia, títulos/âncoras, entrega em PDF no padrão solicitado. | 0–1,0 |
| Reflexão final | Capacidade crítica e síntese do aprendido (5–8 linhas, objetivas). | 0–1,0 |
| Total | 10,0 | |
Dica: se precisar de inspiração para diagramar, use draw.io, Figma, PowerPoint, ou papel + foto com boa iluminação.
Formato do envio:
Desktop_Semana01_NomeSobrenome.pdfReflexão final (5–8 linhas):
| Critério | Descrição | Pontuação |
|---|---|---|
| Compreensão das plataformas | Clareza ao diferenciar Desktop, Web e Mobile, com justificativas conectadas a requisitos (offline, periféricos, desempenho). | 0–2,0 |
| Argumentação aplicada | Comparativo da tarefa escolhido: análise realista, indicação da plataforma mais adequada e justificativa consistente. | 0–2,0 |
| Diagrama de arquitetura | Diagrama legível, com separação clara de UI/Lógica/Dados e exemplos de elementos em cada camada. | 0–2,5 |
| Ciclo de vida | Checklist coerente (instalação, preferências, encerramento seguro) e observações pertinentes. | 0–1,5 |
| Clareza e organização | Padronização visual, ortografia, títulos/âncoras, entrega em PDF no padrão solicitado. | 0–1,0 |
| Reflexão final | Capacidade crítica e síntese do aprendido (5–8 linhas, objetivas). | 0–1,0 |
| Total | 10,0 | |
Dica: se precisar de inspiração para diagramar, use draw.io, Figma, PowerPoint, ou papel + foto com boa iluminação.