Published 2010-07-05 00:00:00

A Release!!! - Well Idle hands make cool stuff...


What is It?

Basically Glade on steriods. (and it needs a good name!!)

What?

Well Glade the UI builder is great for what it does, however app.Builder.js attempts to solve a few roadblocks in Glade

  • Moving stuff around is klumsy - no drag drop - It's not very good for prototyping layouts...
  • It's limited in what widgets can be added
  • Coding (when used as an Ajunta addon) is just downright messy.
  • It's difficult to extend/modify (and in some cases next to impossible)
  • Adding additional properties to widgets is difficult
  • Information is often hidden from display (how many clicks to find out what signals are connected)
  • There is no 'run it and see' option.

So what makes this different..?

  • It's all done in Javascript - using a tree like structure (and it's fully self hosting) - the application is used to modify it'self.
  • It uses GObject Introspection. which solves a number of issues
    • All available properties can be set (and quickly listed, with documentation)
    • how widget's can be packed, can be determined from introspection of the methods.
    • all signals are available, and stubs are created for you to start implementing.
  • Making extra widgets to the application is just a matter of editing files (eventually a UI will enable you to pick from a list of available Introspection elements... )
  • You can build web Applications (using toolkits like RooJS) - ExtJS, Moo etc. could be easily added..
  • It should be quite easy to build Clutter applications...

Do I need to know anything to use it.

Yes, one of the core concepts behind the builder is understanding XObject, a simple Javascript wrapper around GObjects
that enables you to create a JSON like tree, and XObject will turn your tree into an application.

Key features of the XObject are
  • xtype - the name of the GObject (eg. Gtk.Window)
  • packing - the pack property, can be a string (comma seperated indicating how an element is packed to it's parent)
  • id - all objects can have ID's you can fetch any object using this.get('the_id') as long as it's a child of the current element. To look up the tree, use a '.' at the start, or to start at the top of the tree use '/', eg. this.get('/Window') get's you the window. this.get('/Window.toolbar') get's you the first toolbar in the window.
  • el - when an element is created, the GObject is always stored in this.el
  • |pipe - properties - currently the editor uses '|' as a prefix to indicate the value is raw Javascript (eg. a function or Value, that when used should not be quoted as if it was a string.

What state is it in?

Well, It's self editing.. - The application is used to create it's self, just create a new Gtk Project, and point it at the Sample directory, and you can edit the current codebase. (copying it to the Builder directory when you have a stable build)

What's to do...

Quite a few tweaks.. It works, but could do with more time in polishing the interface. My personal goal is to save time using it as a productivity tool, for development. Which is basically where it's at..

Where do I get it?

Download a tarball app.Builder.js.2010-05-25.tgz
or
git clone http://git.akbkhome.com/app.Builder.js

once unpacked/cloned.
run install_gir.sh - to update your gir files.
If you want to try RooJS editor - you need git then
run update.sh

What do I need to get it to work?

basically a working gobject instrospection installation (.gir files and .typelib files) and the latest version of the Gnome seed interpreter
- I know it works on Linux. I would be interested to hear if it works on other platforms.
Note: there is a update script in the distribution which fixes the currently available Gtk gir's (please read the readme.txt for more info)


Mentioned By:
google.com : builder.js (34 referals)
roojs.com : RooJSolutions - When unstable is just not unstable enough (21 referals)
www.planet-php.net : Planet PHP (15 referals)
google.com : App.Builder.js (13 referals)
mail.gnome.org : Re: libseed-list seed && GtkTreeSelection (10 referals)
regator.com : app.Builder.js - First release - Alan Knowles | Regator (7 referals)
google.com : "builder.js" (7 referals)
www.qaiku.com : Qaiku | #midgard | using app.Builder.js together with Midgard's GIR bindings might be very interesting. "Glade on steroids" (3 referals)
google.com : appbuilder.js (2 referals)
planet-php.org : Planet PHP (1 referals)
m.qaiku.com : Qaiku | #midgard (1 referals)
google.com : "app.Builder" php (1 referals)
google.com : Alan Knowles gobject (1 referals)
google.com : extjs api (1 referals)
google.com : information about bulder.js (1 referals)
google.com : need a app builder (1 referals)
blog.astrumfutura.com : Example Zend Framework Blog Application Tutorial - Part 6: Introduction to Zend_Form and Authentication with Zend_Auth - Maugri (1 referals)
blog.astrumfutura.com : Maugrim The Reaper's Blog (1 referals)

Comments

Interesting for Midgard
Since Midgard2 now has GIR available this might be very interesting - you could quickly build applications combining GUI and storage.

http://bergie.iki.fi/blog/ratatoskr_is_out-midgard2_content_repository_goes_lts/
#0 - Henri Bergius ( Link) on 2010-05-26 18:31:52 Delete Comment
test
test
#1 - Alan ( Link) on 2010-08-22 21:35:44 Delete Comment

Add Your Comment