Haxe-watchify: automatic build tool for Haxe and OpenFL projects

I’ve started recently working in a new company very focused on cross platform projects with Haxe.
In my commuting time I worked on an automatic build tool for Haxe and OpenFL projects.
The tool is called haxe-watchify and with a sample JSON file or directly through the command line, you’ll be able to setup how to continuously build your project in background during your development flow.
Haxe-watchify has got interesting features in particular for the Haxe target like the possibility to setup the completion server instead the traditional compiler to speed up the building of your projects.
In fact the completion server implements a cache system to build faster your projects, in this case haxe-watchify takes care for you to start the server and communicate with it.

Currently I’ve published the tool on npm registry so in order to install it just type in your CLI:

npm install haxe-watchify -g

I wrote an extensive documentation on how to use the tool on the readme file on the project repository otherwise you can check the –help command directly on your terminal window.
I tried for now only on Mac OS X so if you find any bug in any other platforms please let me know

I’ve already thought few possible implementations to add in the next releases like a pre and post build in order to launch your tests or run static analysis tool or assets optimisation and then move to the build.
Anyway I’m very keen to learn more about your current projects workflow and how haxe-watchify could help you to improve your situation.

if you want to share any comment please do feel free to share adding a comment to this post or via email

Advertisement

Speaking at WHYMCA about Haxe for Flash Platform developers

Hi Guys!
I’ve a good announce to share with my followers, next 24-25 May in Bologna will take place WHYMCA a great mobile conference where I’ll be speaker with Piergiorgio Niero and we’ll talk about Haxe for Flash Platform developers.
We’ll discuss on why we choose Haxe instead JS or other languages, we evaluate differences between Haxe and AS3, we’ll show pros and cons to use Haxe, we’ll show you how create content with Haxe for JS, Flash, Android, iOS and so on.
Finally we give you some tips to getting started with Haxe 😀

So we are waiting for you at WHYMCA! see you there guys!

UPDATE:

This is our session about Haxe during Whymca in Bologna:

WWX 2012: Haxe conference in Paris

Today is finished Haxe conference in Paris, my first time at WWX and in Paris (very nice place).
In this post I’d like to answer some questions that many friends ask me on Twitter about why use Haxe and if there are good news from WWX 2012.
First of all I’ve to say that Haxe community is so strong, with great people so engaged to evolve the technology and for me they are going in the right direction.
There are few points that I have in mind now and I’d like to share with you here:

  • Why Haxe and not a JS framework
  • Haxe and is future
  • What is missing in Haxe now
  • Haxe projects in the real world

Why Haxe and not a JS framework

After Adobe MAX 2011 I spent a lot of time to study which could be the best alternative of Flash Platform to prepare myself and my company to find an alternative in the worst cases, I was looking for a cross-platform technology with a good workflow from design concept to the delivery that could help me to target content on desktop, mobile, web and embedded systems too.
We spent last 5 years on developing Flash Platform softwares in a lots of devices, if I’ve to start think to do the same thing only in JS I probably change my skills from client side and GUI creation, to anything else, maybe Python or maybe… but during my searches I found Haxe and I’m excited about this technology.
The first thing make me happy was that I can use design patterns, micro-architectures, OOP in general so all my experience gains in Flash projects could be useful also with Haxe.
An Haxe project is written with a language similar to Actionscript or Java (so easy for us to port our knowledge in that direction), after that when you compile you have the executable file for any OS like iOS, Android, Windows, Mac, Linux, QNX OS and so on.
It will produce also the “translation” of native files, for example I can write an Haxe application for Android and Haxe NME (a really good framework based on Haxe highly focused on mobile and desktop purpose) the compiler create the .apk file and the java translation from Haxe code, it make the same for Objective C, C# or Javascript and so on.
Another interesting thing is that is so fast to code with it, Haxe allows in few lines of code make cool things instead of native code and it’s so important for a company have fast delivery and targeting for more platform as possible, in this case Haxe is the right technology.
So the answer for the first question is that with Haxe you can easily use the same basecode and export your projects in different technologies targeting to different devices, re-use your knowledge and use real OOP language for client side purpose.

Haxe and is future

During WWX 2012 they show us the future of Haxe, during those days they release Haxe 2.09, by the end of this summer they are planning to release Haxe 3 and there are also some ideas for the 4th released.
The final idea behind Haxe is to create a unique language for all the targets and all the languages that you can work with Haxe.
They would like to work on tools and IDEs that are the most problem today with this great technology.
Main goal of Haxe 3 is optimization and evolution of code created for each targets, default imports that allow you to import all classes in a unique file for all the project, they has just created Haxe foundation and there are many things are boiling in pot.
The future of this platform seems so interesting first of all for the exciting community behind, after that because there haven’t any marketing goals that they have to achieve and this help the technology to grow in the right direction.

What is missing in Haxe now

The main problem today working with Haxe is that it’s not so “comfortable” environment like in Flash or Flex, there are many IDEs but they miss good tools for debugging (in particular in C++), for code coverage and so on.
Another big problem is that NME framework (the most interesting in my opinion) is not so well implemented in each IDEs so if you use FDT or Sublime Text with NME are more or less the same thing.
Finally the integration between design and code, it seems to come back of 5/6 years ago for me, it’s totally miss a good workflow to create stunning Graphic User Interfaces for Haxe, there is an interaction with Flash Libraries (take a look at SWFMill) but it’s not enough when you are in production mode, so for me the first investment on Haxe are on the environment.

Haxe projects in the real world

When I started to take a look at Haxe I tried to found some good case history but I found only games and not stunning applications, but during WWX I found that Prezi and other foreign companies are investing a lots on that technology and they delivered great stuff from web to mobile to tv applications… I’m pretty sure that in the future we will see other great projects made with Haxe because the power of this technology is really high and the future seems so interesting.
Finally I saw a couple of installation based on Haxe and OpenGL of interactive window that make me totally astonished, trust me that WWX was so inspiring for me, it seems to come back to my first conference around Europe like Flash on the Beach!

Conclusion

In my opinion I think that I found the right technology to focus myself in next few months hoping that could become the right solution also for my daily job and my company.
There are a lots of investment to do but we are only at the beginning, I’m sure that with the right boost Haxe could become an interesting client side technology for all the market fields.
For any further questions feel free to comment this post, it will be a pleasure for me exchange ideas or comments on Haxe!

HaXe, my new toy!

After Adobe MAX 2011 everything should not be the same for me and maybe for a lot of flash platform developers around the world, Adobe brings some “directions”  that didn’t find my consent mainly for the way that communicate these news and the impact that had in the market, but we know that Flash Platform is not dead and it will go ahead for many years.
Obviously nothing was the same after that, in fact many developers started to look around for new technologies and frameworks like Backbone.js, Sencha Touch, Ext JS and so on.
Personally I started to checked in last few months many Javascript frameworks because my aim was find something that could replace Flash Platform in the future and I have to spend time in next years to consolidate it and go ahead with Flash Platform too.
Last week a big friend of mine gave me this link: http://www.haxenme.org/ and when I started to read what you can do and how you can do it, I immediately started to go in deep with HaXe in my spare time and trust me that I had a lot of fun!

First of all what is HaXe?
HaXe is an open source multiplatform programming language, it allows to write once and deploy everywhere (in the right meaning of therm “everywhere”).
In fact with HaXe we can write in a programming language similar to Actionscript 3 (strictly typed, OOP, …) but more powerful (it has enum, generics, dynamic type, …), with HaXe we can target our projects for Flash, C++, Neko, HTML5, Node.JS, PHP, iOS, Android… if we work with multiplatform APIs we can write once and deploy our project for multiple targets.
So for many developers that come from Javascript, Actionscript, Java and so on, will be so easy to start deal with HaXe.
Another interesting thing of HaXe is that we can work with the library present in the SWF files and integrate movieclip in our project, we can create also SWF file without Flash Professional with SWFMill that is used for the generation of asset libraries containing images (PNG and JPEG), fonts (TTF) or other SWF movies.
That’s so interesting because it means that designers that usually prepare assets for developers don’t need to change own daily workflow!
If you need to extend your target platform we can add new features with external libraries, it’s so important because we can really cover everything with this feature; we can find a lot of ready to use libraries directly on the lib HaXe website.
With HaXe you can communicate between different languages like JS and Flash in both direction, you can easily find many frameworks and library porting in HaXe, for example javascript like JQuery, Sencha Touch, Node.JS and so on.

What about the IDE to work with HaXe (so important for a developer!)!?
On Mac you can use TextMate or FDT on Win FDT or FlashDevelop this one seems the best one but I didn’t try it. For more specs I suggest to take a look at HaXe site section, maybe you can find your favorite IDE in the list.

Finally I made an easy sample to understand better the powerful of HaXe NME, this sample loads an external XML file and an external SWF library with a movieclip inside exported for Actionscript, so I added a drag&drop feature to the list. Then I tried to compile it for iOS, Mac OS X Lion, C++ and SWF with the same basecode and everything work so well and smooth!


You can download source files here, to compile it take a look at HaXeNME section and you can find everything you need to try this sample and start to play with HaXeNME!

If you want to deal with HaXe, I suggest two books, the first one is really a good start to work with this fantastic language:
HaXe 2 beginner’s guide
Professional HaXe and Neko

Last but not least, next April in Paris there will be World Wide HaXe conference, I’ll be there to learn more about the future of this amazing platform if you are planning to be there it will be a pleasure for me catch up for a beer!

I hope soon to publish more experiments and informations about HaXe because it is a thrilling programming language!!!
So stay tuned!