# Instalação e requisitos

> Prepare JDK e Gradle e adicione o CrossFly ao projeto — comece pelo desktop.

Source: https://crossfly.dev/pt/docs/get-started/installation — CrossFly documentation. Full docs as one file: https://crossfly.dev/llms-full.txt

# Instalação e requisitos

Em poucos minutos você terá o ambiente pronto para rodar no **desktop** — o caminho mais rápido para
começar (iteração rápida, sem emulador).

## Pré-requisitos
- **JDK 17** (LTS). Verifique:
  ```bash
  java -version
  ```
- **Gradle** — ou apenas use o *wrapper* incluído no projeto (`gradlew`):
  ```bash
  ./gradlew --version
  ```

## Estrutura do projeto
Um app CrossFly é um projeto **multi-módulo Gradle**: um módulo **`core`** (sua UI e lógica) + um
**launcher por plataforma**. Adicione a dependência do CrossFly ao `core` e inclua o launcher do alvo
que vai rodar:
```
:core     → seu código (Windows, componentes) + dependência do CrossFly
:lwjgl3   → launcher desktop (comece por aqui)
:android  :ios  :web   → demais alvos
```
As coordenadas exatas da dependência (`dev.crossfly:crossfly-core` + versão) e dos launchers vêm do
`build.gradle` do projeto-modelo — mantenha-as conforme o template do repositório.

## Requisitos por plataforma
| Alvo | Precisa de |
|---|---|
| 🖥️ Desktop (LWJGL3) | só o JDK — **comece aqui** |
| 🤖 Android | Android SDK/NDK |
| 🍎 iOS | **macOS + Xcode** |
| 🌐 Web (TeaVM) | um navegador (WebGL2) |

> **Biblioteca nativa:** cada plataforma empacota a `crossfly-lib` (JNI), carregada no arranque (exceto
> no WebGL). No desktop, ela precisa estar no `java.library.path` (ver [Desktop](/docs/platforms/desktop-lwjgl3)).

## Por que começar pelo desktop
O desktop dá o **ciclo compilar→rodar mais curto** (segundos, sem emulador). Você valida a UI ali e só
vai ao mobile quando a tela estiver pronta.

## Próximos passos
→ [Quickstart: Hello World em ~10 min](/docs/get-started/quickstart)

## Veja também
- Fonte canônica: Capítulo 4 — Bootstrap e Ciclo de Vida · [Plataformas](/docs/platforms)
