# CrossFly 全景

> 先建立心智模型再写代码 —— Java+OpenGL、绘制线程、一切皆 Component、不强加架构。

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

# 1. CrossFly 全景

> **你将学到:** 让本课程后续所有选择都变得合理的心智模型。**前置条件:** 已运行过 [Hello World](/docs/get-started/quickstart)。

在整个课程中我们构建**同一个应用** —— 一个带持久化的待办列表 —— 它随着每一页而成长,从一个静态界面演变为经过测试、响应式、可打包发布的应用。

## 支撑一切的理念
- **Java + OpenGL。** CrossFly 是一个通过 GPU(OpenGL/WebGL)绘制的 Java 应用。外观在所有平台上**完全一致** —— 没有原生控件。
- **单一绘制线程。** 所有 UI 和渲染都在同一个线程里进行。繁重工作交给后台线程,再通过 `Component.onUI(...)` 返回。
- **按需渲染。** 只有当你调用 `repaint()` 时界面才重绘 —— 节省电量。
- **一切皆 `Component`。** 不存在"控件 vs 容器"的层级:任何 `Component` 在接收一个 `Layout` 后都会成为容器。
- **不强加架构。** 没有响应式绑定,也没有依赖注入 —— 你**直接修改**对象,并手动更新 UI。

## 各部件地图
| 部件 | 角色 |
|---|---|
| `Main` | 引导入口(libGDX 的 `ApplicationListener`) |
| `Window` | 一个界面(导航栈中一个全屏的 `Component`) |
| `Component` | UI 的基本单元 —— 一切都由它派生 |
| `Layout` | 测量并定位容器的子元素 |
| `Styles`/`Skin`/`ColorScheme` | 外观(形状 + 按主题的颜色) |

## 回顾
CrossFly 是**命令式且面向对象**的:创建对象一次,保存引用,修改它,`repaint()`。线程处理是显式的;外观就是你的 GPU 在绘制,处处相同。

## 下一步
→ [窗口与导航](/docs/learn/windows-and-navigation)

## 另见
- 概念:[分层架构](/docs/concepts/architecture) · [一切皆 Component](/docs/concepts/everything-is-a-component)
