Hi,
Happy New Year!
We were asked about the roadmap of Bloc several times. It is a perfectly reasonable
request given that Bloc is supposed to offer the UI infrastructure for the future of
Pharo.
However, I was reluctant to provide one because we do not really have a classic roadmap.
When we develop Bloc and GT we think in terms of experiments and examples that we want to
play with to get us to our goal. Features are a consequence of that. This approach allowed
us on multiple occasions to stumble across functional possibilities that we would have not
been able to think about before seeing the experiments. It also works the other way
around: as we move ahead, we sometime discover modeling problems and we sometimes chase
them all the way down.
Having said that, we can specify the next examples and experiments that we consider for
the next months. Here they are:
• Drag and drop that can be customized on an instance basis. In the process, revisit event
management and explore making it use Announcements. Use this for the diagramming engine.
• Scrollbar for infinite list and the scalable element.
• Apply layout once. For example, this would allow us to apply a layout but still be able
to drag elements in custom positions without disturbing the others. The first application
is in the context of creating diagrams and visualizations.
• Apply layout with animation. For example, in Connector, a new example should be spawned
and moved to its position through a smooth animation. This will also allow us to play with
the concept of animation and MVVM.
• Introduce the concept of elevation. This is important for scenes in which we have
overlapping elements that are not part of the composition tree. For example, in Connector,
the lines connect inner elements inside the text, but they belong to the root. such as a
visualization (but not only). For this to work, we need a better element traversing
structure.
• Experiment with theming. The theming mechanism should be instance specific with
per-widget defaults, and the theme values should ideally be injected in the widgets. The
CSS implementation from Glenn is one direction. As developing and maintaining themes can
be a nightmare in the long run, the theming mechanism to provide debugging tools.
• Experiment with delegating animations through the model. Typical MVVM or MVC focus on
the behavior of an interaction. We want to get smooth live interfaces and the animation
logic should be influence-able by the model. For example, hovering over a button,
enlarges the button with extra details about the action.
• Basic widgets: list, input box, button, radio button, checkbox, menu, dropdown menu,
toggling button, tabs, toolbar.
• Table and tree widgets.
• Pager interface (similar to the one in the current inspector) with resizable panes.
Have fun,
The feenk team
--
www.tudorgirba.com
www.feenk.com
"Presenting is storytelling."