=============================================================== UIPainter
=============================================================== Level: advanced Possible mentor: Stéphane Ducasse Possible second mentor: Esteban Lorenzano Description: The purpose is to offer a way to easily describe and create UI using a point and click interface. This interface should be extendable, as well as the widget proposed. The Painter should also propose a simple way to link widgets together, and to locally redefine behaviours. Technical Details: using Spec, the UIPainter should be able to generate the needed methods (and Layouts). The UI corresponding class could also be generated. Benefits to the Student: A deep understanding of UI creation. A good set of knowledges about widgets interactions. The students will also benefits of an understanding of Spec at all the levels. Benefits to the Community: The community will benefit of a new tool for generating UIs easily using the new platform independent UI framework. A UIPainter will help developers by improving the widgets reuse and simply the process of UI creation. =============================================================== Spec platform/framework Independence =============================================================== Level: intermediate Possible mentor: Stéphane Ducasse Possible second mentor: Nicolas Petton Description: The goal is to improve and ensure the platform independence of Spec. Indeed, one of Spec goals is to generate widgets on multiple UI rendering framework (Morphic, Seaside, etc). The student could improve Spec by providing a set of widgets for multiple framework, and ensure the usability of Spec in different Smalltalk dialect. Technical Details: Currently running only in Pharo, Spec should be able to be used easily on Squeak. One interesting target is to be able to use it in Amber by example. Benefits to the Student: the student will acquire knowledge and experience about different Smalltalk implementation. He will also experience different UI framework, and trough Spec how widgets interact with each others. Benefits to the Community: The community will benefit of the coolness of Spec, and will also have a single way to define UIs regardless of the framework used to render them. =============================================================== Nautilus In Spec =============================================================== Level: intermediate Possible mentor: Stéphane Ducasse Possible second mentor: Benjamin Van Ryseghem Description: Nautilus is the new default browser for Pharo3.0. But because the UI is fully platform dependent, it can not be used in other dialects (contrary to OB by example). The goal is to migrate the entire Nautilus UI to a Spec based version, ti be able to export Nautilus. Technical Details: Currently Nautilus is fully written using Morphic (and even have its own morphic widgets). The idea is to redefine the existing UI using Spec, rethink the way interaction between sub widget is done, and provide a way to statically describe Nautilus UI. Benefits to the Student: the student will acquire knowledge about Morphic. He will also learn how Spec is working and its mechanisms for event propagation as well as widget static description. He will also learn how to define new Spec widgets and how to link them to already existing Morphic widgets. Benefits to the Community: The community will benefit of a more modular UI for Nautilus (since every one can then specify its one Nautilus UI), as well as a browser which may be used in different dialects. ===============================================================
