# O panorama do CrossFly

> O modelo mental antes do código — Java+OpenGL, paint thread, tudo é Component, sem arquitetura imposta.

Source: https://crossfly.dev/pt/docs/learn/big-picture — CrossFly documentation. Full docs as one file: https://crossfly.dev/llms-full.txt

# 1. O panorama do CrossFly

> **O que você vai aprender:** o modelo mental que faz todas as próximas escolhas do curso fazerem
> sentido. **Pré-requisitos:** ter rodado o [Hello World](/docs/get-started/quickstart).

Ao longo deste curso construímos **um único app** — uma lista de tarefas com persistência — que cresce
a cada página, de uma tela estática a um app testado, responsivo e pronto para empacotar.

## As ideias que sustentam tudo
- **Java + OpenGL.** O CrossFly é um app Java que desenha via GPU (OpenGL/WebGL). A aparência é
  **idêntica** em todas as plataformas — não há widgets nativos.
- **Paint thread única.** Toda a UI e o render acontecem numa thread só. Trabalho pesado vai para uma
  thread de fundo e volta com `Component.onUI(...)`.
- **Render sob demanda.** A tela só redesenha quando você chama `repaint()` — economiza bateria.
- **Tudo é `Component`.** Não há hierarquia "widget vs container": qualquer `Component` vira container
  ao receber um `Layout`.
- **Sem arquitetura imposta.** Não há binding reativo nem injeção de dependência — você **muta** objetos
  e atualiza a UI na mão.

## O mapa das peças
| Peça | Papel |
|---|---|
| `Main` | o bootstrap (o `ApplicationListener` da libGDX) |
| `Window` | uma tela (um `Component` de tela cheia na pilha de navegação) |
| `Component` | a unidade de UI — tudo deriva dela |
| `Layout` | mede e posiciona os filhos de um container |
| `Styles`/`Skin`/`ColorScheme` | a aparência (forma + cores por tema) |

## Recapitulando
O CrossFly é **imperativo e orientado a objetos**: crie objetos uma vez, guarde referências, mute,
`repaint()`. Threading é explícito; a aparência é sua GPU desenhando, igual em todo lugar.

## Próximos passos
→ [Janelas e navegação](/docs/learn/windows-and-navigation)

## Veja também
- Conceitos: [A arquitetura em camadas](/docs/concepts/architecture) · [Tudo é um Component](/docs/concepts/everything-is-a-component)
