Frequently Asked Questions
When Will the Book Be Finished?
Soon™. Open source is a gift; so whenever I feel like it.
How Do I Scale a Large Application?
You split your application into multiple screens, and then use simple composition.
The Pocket Guide has a specific section that showcases this approach.
How Can My Application Receive Updates From a Channel?
You can use Task::run
to generate messages from an asynchronous Stream
.
Alternatively, if you control the creation of the channel; you can use Subscription::run
.
Does Iced Support Right-To-Left Text and/or CJK scripts?
Not very well yet!
You may be able to render some scripts using Text::shaping
with Shaping::Advanced
,
but text editing for these scripts is not yet supported; and neither are Input Method Editors.
These features are in the ROADMAP
, however!
When Are the view
and subscription
Functions Called?
After every batch of messages and update
calls. But this is an implementation detail;
and should never rely on this.
Try to treat these functions as declarative, stateless functions.
Does Iced Redraw All the Time?!
Yes! iced currently redraws after every runtime event; including tiny mouse movements.
There are plans to redraw less frequently by detecting widget state changes, but performance has not been a priority so far.
The renderers do perform quite a lot of caching; so redrawing is quite cheap. As a result, this is rarely an issue for most use cases!
I Am Getting A Panic Saying There Is No Reactor Running. What Is Going On?
You are probably using Task
to execute a Future
that needs the tokio
executor:
there is no reactor running, must be called from the context of a Tokio 1.x runtime
You should be able to fix this issue by enabling the tokio
feature flag in the iced
crate:
iced = { version = "0.13", features = ["tokio"] }