Friday, October 26, 2018

Nalu - A New Framework

Mvp4g is awesome and with the new version ready for J2CL. No doubt, a great framework. But it takes some time to understand it and it behaves different than other GWT frameworks we know (f.e.: GWT Activities & Places),

Based on a discussion with Colin Alworth and Ignacio Baca Moreno-Torres, the framework developer team started to rethinking the approaches of MVP4G and defined a list of goals, that a new framework should provide:
  • Fully support of the browser's back- forward- and reload-button.
  • An optional loader that will be executed at application start to load data from the server.
  • A client side context, router and event bus which will be automatically injected in every controller. (Handler have only access to the context and the event bus)
  • Filters to intercept routing.
  • Full history support.
  • Separation of views into a controller and a component with framework sided instantiation.
  • A controller life-cycle using start-, mayStop- and stop- similar to GWT Activities.
  • Supports HTML links and programmatically routing thanks to a router.
  • Controller based handler manager, that will remove all handlers from the event bus in case the controller is stopped to prevent memory leaks (handler registrations must be added to the manager).
  • Support for UiBinder (nalu-plugin-gwt)
  • Nalu composites to support smaller classes
  • Controller & component caching
  • Component creation inside a controller to support GWT replacement rules and static factory methods
  • Ready to use with J2CL
Based on that list we started implementing a new framework. The main idea is to use hashes for routing, with less coding and no worry about history.

Today, we are very close to release version 1.0.0 of this new framework!

The new framework is called Nalu.

You will find more informations about Nalu here: https://github.com/NaluKit/nalu

There are a few examples that shows how to use Nalu: https://github.com/nalukit/nalu-examples

And to start creating you own experiences, there is a boot starter project, that generates a ready to import Nalu Maven project:

http://www.mvp4g.org/gwt-boot-starter-nalu/GwtBootStarterNalu.htmlhttp://www.mvp4g.org/gwt-boot-starter-nalu/GwtBootStarterNalu.html

The Project generator uses Domino-UI, a new awesome widget lib ready for J2CL!

If you have questions about Nalu, please use the Gitter Room.