Mars release 1.0

Mentor: Esteban Lorenzano
Second mentor: Guillermo Polito
Level: Intermediate
Submitted proposal to Melange: Carla Griggio, Ivan Hugo Guevara
Invited students: Carla Griggio, Ivan Hugo Guevara
Students interested: Carla Griggio(very), Ivan Hugo Guevara(very)


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

Technical Details

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


Updated: 30.4.2013