tiles-session is a simple graphical session with basic window management functionality.
//src/session/examples/tiles-session:packages to your gn build args, e.g:
fx set <product>.<board> --with //src/session/examples/tiles-session:packages
ffx session launch fuchsia-pkg://fuchsia.com/tiles-session-routing#meta/tiles-session-routing.cm
ffx session add fuchsia-pkg://fuchsia.com/flatland-examples#meta/flatland-view-provider-example.cmx
TODO(fxbug.dev/88656): update the following as features are added, and delete when fully-featured. Only one view is supported. Adding an additional view replaces the existing one.
tile-session fills a few roles in the Fuchsia ecosystem:
There is a design tension between simplicity and featurefulness. Making this an accessible example requires simplicity. On the other hand, supporting test/dev use cases requires extra features and hence extra complexity. We aim for a balance.
As much as possible, the code for test/dev features should be encapsulated such that they don't confuse the reader who is just trying to gains an understanding of how a session works. The place(s) where this code is plugged in to the basic session should be clearly marked as rabbit holes that the reader may wish to avoid falling into.
The tiles session consists of two components, one of which contains a Rust binary which implements the behavior of the session, and another which integrates a number of non-example components (e.g.
scene_manager) and establishes capability routing between the session component and these others.