iced/examples/README.md
Héctor Ramón Jiménez 05889ecea8 Add wasm-pack link
2019-09-21 13:42:58 +02:00

3.2 KiB

Examples

Iced moves fast and the master branch can contain breaking changes! If you want to learn about a specific release, check out the release list.

Tour

A simple UI tour showcasing different widgets that can be built using Iced. It also shows how the library can be integrated into an existing system.

The example can run both on native and web platforms, using the same GUI code!

The native renderer of the example is built on top of ggez, a game library for Rust. Currently, it is using a personal fork to add a FontCache type and fix some issues with HiDPI.

The web version uses iced_web directly. This crate is still a work in progress. In particular, the styling of elements is not finished yet (text color, alignment, sizing, etc).

The implementation consists of different modules:

  • tour contains the actual cross-platform GUI code: state, messages, update logic and view logic.
  • iced_ggez implements a simple renderer for each of the used widgets on top of the graphics module of ggez.
  • widget conditionally re-exposes the correct platform widgets based on the target architecture.
  • main integrates Iced with ggez and connects the tour with the native renderer.
  • lib exposes the tour types and conditionally implements the WebAssembly entrypoint in the web module.

The conditional compilation awkwardness from targetting both native and web platforms should be handled seamlessly by the iced crate in the near future!

If you want to run it as a native app:

cd examples/tour
cargo run

If you want to run it on web, you will need wasm-pack:

cd examples/tour
wasm-pack build --target web

Then, simply serve the directory with any HTTP server. For instance:

python3 -m http.server

Tour - Iced

Coffee

Since Iced was born in May, it has been powering the user interfaces in Coffee, an experimental 2D game engine.

If you want to give Iced a try without having to write your own renderer, the ui module in Coffee is probably your best choice as of now.

Tour - Coffee