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."


Reply via email to