Porting Flash Lite to the Iphone: b.Tween
This week we released our Rock Werchter Mobile Guide which offers a whole amount of information that could come in handy for every attendee. You can find more info about this application and how to download it at labs.boulevart.be or you can check my previous post.
We managed to create a flash lite application, providing cool graphics and animation ( that’s why we definately do NOT use JavaME ) and giving you all the information you need without any other crap! How great is that. No more silly ringtones or wallpapers to ”catch your attention”. This time you just get what you need: Rock Werchter Information in a rich visual environment. In aproximately 3 clicks you can get a lot of actionable information out of it, and that’s how it should be!
The cool part is that for the first time in the mobile history we ported our Flash Lite Project to the iphone/ipod touch, taking advantage of all the oppurtunities the iphone UI has to offer. Of course everybody is very very curious to know how exactly we have pulled this of.
eyeGT: ENHANCE YOUR EXPERIENCE GRAPHICAL TOOLKIT
A while ago Emanuele Cipolloni contacted me, telling me about a project he was working on called eyeGT.
What is eyeGT (standing for Enhance Your Experience Graphical Toolkit) is fully explained in this post, but for a short summary there you go: eyeGT is a highly efficient graphic renderer, capable of handling vector graphics and bitmaps. Beside the basic services of rendering, eyeGT provides a very extensive API that allow to define: buttons, animations, hierarchical containers, color and special effects, static text, editable fields and much more; think about it as a Windows GDI+ or Mac OSX Quartz2D on steroids, heavily optimized and designed from the ground up for mobile. You may have heard of a lot of other toolkits available, performing similar sorts of things on desktop PCs, such as AntiGrain, but eyeGT is quite different and not only in terms of speed.
eyeGT is completely self contained, does not use 3rd party code like FreeType for the fonts (like AntiGrain) and offers a “flat” interface to developers: it never returns pointer to objects, requires you to setup complex classes or intricate design scheme. It is impossible to create applications with eyeGT that have memory leaks or crashes. eyeGT comes in the form of a DLL , Shared Object or FrameWork depending on the platform; by the way it does support many platforms, not just iPhone/iPod Touch: Nokia 2nd Edition (6600, 6680, 6630 etc), Nokia 3rd Edition (whole range including Feature Pack 1 & 2 models), Sony Ericsson UIQ2.x e UIQ3.x (including P800, P900, P910i, P990, W850, W950, W960, P1 and others), Motorola Z8 e Z10, Microsoft Windows Mobile (every smartphone and PDA based on Windows Mobile 5, 6, 6.1 e 6.1 Pro), Apple iPhone e iPod Touch Nintendo DS (original and Lite), Sony PlayStation Portable, GamePark’s GP2X F100, many phone models based on MontaVista Linux and is available to be ported on other embedded platforms as the base requirements are very minimal.
b.Tween: AN eyeGT FRAMEWORK
b.Tween sits between eyeGT and the application’s business logic and allows converting very quickly actionscript based applications into native ones with minimal changes. Barefootsoft created this framework on top their eyeGT technology that could further enhance it. By the time Flash 9 was announced supporting ActionScript 3. The new version of AS was much closer to a full OO language. In the mean time, Flash developers habits were changing, they were less and less relying on the timeline to make animations and applications using that infamous quantity of GotoAndPlay() and Stop() statements plastered all over and uses more the scripting language to manipulate the appearance and GUI. So the idea was to recreate more or less the underling framework of AS3 in C++ and use eyeGT as the final renderer for the application. This has proved immediately with a few advantages:
- The code that uses the framework is compiled to machine code, that means several orders of magnitude faster than the ActionScript equivalent (AS3 in Flash 9 is JIT compiled but we are talking about mobile platforms here where there is no AS3 and no JIT compilation, for the moment at least)
- Parts of the code that are unused are left out the final compiled application, so size and time to transmit/load are reduced to the minimum
- Native code can access ANY feature of the hosting platform: wants Bluetooth? Wants to process received SMS? Wants to read the phone book? All possible from native applications not so from a player based one.
b.Tween: Porting Flash Lite to the Iphone
Emanuele had seen a few of my flash lite projects like FITC Toronto Mobile and he asked me if they could use my Flash Lite content to beta test b.Tween and port it to the iphone. It did not take that long to port some basic stuff to the iphone and even though it had to be more optimized, the result already looked cool.
When we created our Rock Werchter guide we thought it might be very awesome to port it to the iphone and release it in public, even though b.Tween is in beta, porting flash lite to the iphone was something i just HAD to shout out! I worked together with Emanuele for a couple of days creating this application, starting with a visual interface, iphone optimized. We discussed the flow of the application and how we could use the iphone UI advantages to make the application even cooler. In a few days Emanuele will make a blogpost showing you how exactly you can use the b.Tween framework.
But for now, just have a little patience and make sure to download and test our Rock Werchter Mobile Guide.