This page was machine-translated from Portuguese and may contain errors. The Portuguese version is canonical.
1. The CrossFly big picture
What you’ll learn: the mental model that makes every upcoming choice in the course make sense. Prerequisites: having run the Hello World.
Throughout this course we build a single app — a to-do list with persistence — that grows with each page, from a static screen to a tested, responsive app ready to package.
The ideas that hold everything together
- Java + OpenGL. CrossFly is a Java app that draws via the GPU (OpenGL/WebGL). The look is identical across every platform — there are no native widgets.
- Single paint thread. All the UI and rendering happen on a single thread. Heavy work goes to a
background thread and comes back with
Component.onUI(...). - Render on demand. The screen only redraws when you call
repaint()— it saves battery. - Everything is a
Component. There’s no “widget vs container” hierarchy: anyComponentbecomes a container when it receives aLayout. - No imposed architecture. There’s no reactive binding and no dependency injection — you mutate objects and update the UI by hand.
The map of the pieces
| Piece | Role |
|---|---|
Main |
the bootstrap (libGDX’s ApplicationListener) |
Window |
a screen (a full-screen Component on the navigation stack) |
Component |
the unit of UI — everything derives from it |
Layout |
measures and positions a container’s children |
Styles/Skin/ColorScheme |
the look (shape + colors per theme) |
Recap
CrossFly is imperative and object-oriented: create objects once, keep references, mutate,
repaint(). Threading is explicit; the look is your GPU drawing, the same everywhere.
Next steps
See also
- Concepts: The layered architecture · Everything is a Component
Was this page helpful?Thanks for the feedback!