Published 2015-03-17 00:00:00

As we are not so crazy busy this month, I finally get time to write about one the  key tools that we developed to enhance our development process.

Back in 2010, We built a desktop application called app.Builder.js, written in seed (webkit+gnome). It's main purpose was to enable the rapid development of RooJS applications (a fork of ExtJS). It worked wonders over the years, enabling us to build and prototype applications quickly, and continually improve on them.

While it worked well, due to the nature of Javascript bindings into C, the occasional code problem would cause a complete crash. As most of the code is dependant on the javascript bindings, and gir files that define them. It also became a little troublesome to maintain, extend as it was dependent on the availability of gir bindings for new widgets.

Around mid 2014, It was decided to port the code from Javascript to Vala. Being a relative new-commer to Vala, we first tried porting our Gitlive application, which monitors the filesystem for changes and instantly commit's and pushes all changes. This relatively small project gave us the skills set ready to rebuild application builder in vala.

The first steps on this process was to port the non-User interface components. As Vala is both a compiled and strict type language, we had to be a bit more carefull about the coding, in our original code, there where a number of situation where we took advantage of the 'extendability' of javascript objects. However in Vala we had to be considerably more explicit about what was stored (and why). 

However even given these language constraints, the porting to Vala proved to be very simple. While object structures had to be more formally typed, Local variables in Vala, can normally be auto inferred. Frequently code that worked in Javascript, just ported straight to Vala without changes.

var some_instance = new SomeClass(); 

This was especially true as the javascript API for Gtk and other GObject based libraries is very similar to their Vala equivalent.

After defining our core libraries, to read/write the bjs files, look up the properties of objects etc. we then started to address the User interface. This is where we started taking advantage of the better language bindings to libraries like clutter.

One of the original visions I had for the builder, which allows you to mix code with UI design, was that flipping between coding, and building the UI should be seamless, one minute you are laying out the interface, then you go onto working out what should be occurring when buttons are pressed, menus are selected, grid lines are deleted. In the original builder, our code entry was a dialog that popped up (frequently at some random place on the screen). Using the clutter library, my vision of the WYSIWYG view of the rendered web page in webkit would shrink to one corner while the code was edited, once done, the code editor would hide, and you could test the results of the change.

Again with the original application, the 'new' property or 'add' object list was constantly visible on the screen, even when it was not really being used, in the new User interface, this would expand while being used, and then collapse away when other tasks where being completed.

Selecting files to edit would also be a more seamless interaction, in our old design the file / project chooser took up valuable screen real-estate while not actually being needed. in our new design we can animate (just like good ole SGI) so that the list of files appears on the back side of the webkit preview  - one button flips you from edit mode to 'file selection mode'. and we can use  a clutter grid to show thumbnails of the actual layouts.

The current code - in it's rough state is currently at 

http://git.roojs.org/?p=app.Builder.js;a=summary

Check out and see if you can build it..

git clone http://git.roojs.org/app.Builder.js

have a look at INSTALL.txt - for a rough idea of the packages needed, then just run 

./autogen.sh; make install

Watch a short video of the builder in action.

Comments

Good information
Pleasant to visit your site page once more, it has been months for me. Well this article i have been sat tight for so long. I require this piece to finish my task in school, and it has same theme with your piece.
#0 - custom essay writing service ( Link) on 2017-12-02 18:46:14 Delete Comment
Good information
Pleasant to visit your site page once more, it has been months for me. Well this article i have been sat tight for so long. I require this piece to finish my task in school, and it has same theme with your piece.
#1 - custom essay writing service ( Link) on 2017-12-02 18:49:37 Delete Comment
Good information
Pleasant to visit your site page once more, it has been months for me. Well this article i have been sat tight for so long. I require this piece to finish my task in school, and it has same theme with your piece. https://rospher.com
#2 - nathandwyer ( Link) on 2017-12-02 18:53:11 Delete Comment
help
This can make you full expert in the where is my control panel windows 10 and where you can know all the basic tricks of the window 10 control panel.
take my online exam for me
I loved the way you discuss the topic great work thanks for the share.
#4 - take my online exam for me ( Link) on 2017-12-15 15:23:21 Delete Comment
Informative stuffs
The amusing issue approximately our extension: developing and designing the App is absolutely free from fee and without any duties. Handiest if making a decision to post your App into the App shops, you may pay an inexpensive month-to-month or yearly plan.
#5 - Baby Driver Buddy Jacket ( Link) on 2017-12-21 20:24:41 Delete Comment
essays
This is a to an astonishing degree illuminating article. I in like route agree with your present the name and you're to a significant testament charmingly light up your perspective. I am to a super degree fiery to peer this set up. A commitment of gratefulness is all together for rate with us. shield it up and degree the more conspicuous most extraordinary related post.
#6 - Essay Writing Service UK ( Link) on 2018-01-12 20:09:31 Delete Comment
Kingsman The Golden Circle jacket
App developers always direct their efforts where they get the. sell in such tiny numbers by comparison that the work of developing an app and then maintaining it as bugs are found and as the.
Nick Nojas Jumanji Welcome To The Jungle Jacket
Before you can even think of creating an app you need to build a database. I have spent my life working with.
Great App Builder
Great article. It is fully supportive for them i really like it!!
Informative
The system is dependent on the JavaScript binding, that describe them. It also become a little worrying to uphold, make bigger as it was needy on the accessibility.
#10 - IppoFashion ( Link) on 2018-04-19 17:45:06 Delete Comment
mhjongconnect online
Thank you so much for being a part of this post i know you all like it and share the information too,this one is huge fan following and trick taking card games.
#11 - Mahjongg connect free online ( Link) on 2018-05-16 17:33:57 Delete Comment
Spirulina
Easily, the article is actually the best topic on this registry related issue. I fit in with your conclusions and will eagerly look forward to your next updates. Just saying thanks will not just be sufficient, for the fantasti c lucidity in your writing. I will instantly grab your rss feed to stay informed of any updates.
#12 - Spirulina ( Link) on 2018-06-13 18:14:39 Delete Comment
Lean Belly Breakthrough
Regular visits listed here are the easiest method to appreciate your energy, which is why why I am going to the website everyday, searching for new, interesting info. Many, thank you!
#13 - Lean Belly Breakthrough ( Link) on 2018-06-13 23:23:34 Delete Comment
asda
Great write-up, I am a big believer in commenting on blogs to inform the blog writers know that they’ve added something worthwhile to the world wide web!..
#14 - iq option ( Link) on 2018-06-17 01:41:09 Delete Comment
Jackfruit
All the contents you mentioned in post is too good and can be very useful. I will keep it in mind, thanks for sharing the information keep updating, looking forward for more posts.Thanks
#15 - Jackfruit ( Link) on 2018-06-29 04:38:26 Delete Comment
Chicken
It proved to be Very helpful to me and I am sure to all the commentators here!
#16 - Chicken ( Link) on 2018-07-01 00:25:38 Delete Comment
Broccoli
I read a article under the same title some time ago, but this articles quality is much, much better. How you do this..
#17 - Broccoli ( Link) on 2018-07-01 16:35:07 Delete Comment
Kimchi
All the contents you mentioned in post is too good and can be very useful. I will keep it in mind, thanks for sharing the information keep updating, looking forward for more posts.Thanks
#18 - Kimchi ( Link) on 2018-07-06 23:45:11 Delete Comment
Anxiety
This is also a very good post which I really enjoyed reading. It is not every day that I have the possibility to see something like this..
#19 - Anxiety ( Link) on 2018-07-07 04:30:51 Delete Comment
Zucchini
I am hoping the same best effort from you in the future as well. In fact your creative writing skills has inspired me.
#20 - Zucchini ( Link) on 2018-07-07 19:25:06 Delete Comment

Add Your Comment

Follow us on