Current Pharo UI state of the art building is tightly coupled to the Morphic framework. Morphic, though flexible, has became aged and far from the experience a native interface can offer. Mars is cross-platform native user interface framework, which allows Pharo programmers to build modern user experiences. Mars currently is under heavy changes due to a big refactoring performed to allow multi-platform behavior, and most of its widgets need to be rebuilt, thought not from scratch, there is already ).
- Mars will work with Gtk, Cocoa and Windows forms in the in *nix, Mac and Windows platforms respectively
- it requires a design that allow switching platforms,
- It should provide a common interface, abstracted from the specifics of the platform.
- It should use NativeBoost to bind to the respective libraries.
- The correct manipulation of resources is mandatory: no memory leaks, discarding pointers to external resources when not used or when a new session in another platform is started.
The goal of the project is to provide first usable version that can runs both a browser and a workspace in Cocoa and Gtk platforms (we are letting WinForm for the future, because Gtk3 can be used in windows platforms too).
Benefits to the Student
- learn about different UI widget libraries and common UI patterns,
- learn basics of FFI and external resource handling,
- learn to design a framework with complex interactions.
Benefits to the Community
- a modern, platform native UI framework,
- better UIs for desktop applications.