Well whats not too like about being able to rapidly create a mobile application with some of the libraires you know and love? Do you like being able to rapidly create mobile content? I do and I love what Adobe has been doing with AIR 3.3. It is easy to build a mobile application and I plan on taking full advantage of it. So recently I have been working on several other projects that have taken over the majority of my time. I have been experimenting with a variety of technologies. I have spent several months developing a mobile video game I fully plan on bringing to market within the next six months that is built with Unity3D. This blog post is focused not on what I have spent months on right now but what I have developed rapidly in a few hours. I Built it with a technology that I know like the back of my hand. That technology is flash (AS3). Action Script is fun, fast, and it has numerous libraries to offer the interactive developer. These libraries are just now being ported over to HTML5 and they owe there homage to technologies like Flash. I have been a macromedia user since they were macromind. I grew up with technologies like hypercard (apple), director, and flash. So I like where things are going for developers HTML5 and other technologies are really forcing a highly competitive field. This is benefiting developers. I really like the creative cloud Adobe really made a smart move in regards to a subscription based service. They have also been donating more to the open source community. I really like what they have done by supporting Away3D especially! Away3D is a great library and from my experiments lately I am seeing really fast frame rates and performance even with mobile.

Download the Application
tweetank app for android
Download the Source

So in short I am really looking forward to making numerous applications with AIR because I can build out rapidly for multiple platforms. Away3D for AIR has outstanding performance. Adobe has also done a wonderful job with AIR combine that with libraries like Away3d, Hype framework, Bullet, various tweening engines can you really ask for more? Adobe is also pushing the envelope when it comes too ANE (Air Native Extensions) their are a variety available and anyone is free to write them so the platform is easily extendable.

If you are an Away 3D user you have probably used their Prefab3D tool. If you haven’t checked out the Prefab3D advancements I suggest you do it. It now supports a great deal more in 2.0 one of the features I was pleased to see is an export to threeJS. On a side note I began to create a parser awhile ago for threeJS within Away3D now that it is Gold. I will probably pick that project back up. I think it would be nice to have all models in threeJS this way we can develop for multiple platforms, mobile, desktop, and webGL. I believe a threeJS parser would be a good thing for Away3D to have.

Download the Application
tweetank app for android
Download the Source

Kudos to Adobe on Air 3.3! My initial assessments of adobe Air 3.3 are really positive. I especially like the price point of the Creative Cloud. I know there is not another offer that is even in the ball park. If you are like me and you have been using adobe products for years and you upgrade them frequently. They treated their loyal users to a $30 a month fee for creative cloud and that is a bargain! Lately I have been evaluating numerous mobile runtimes and I have come to the conclusion that the creative cloud along with Air 3.3 deal cannot be beat. I have invested in other platforms like Unity3D and it is a wonderful platform that I plan on continuing to use but I also enjoy the ability to rapidly creating with Flash Builder with some of my favorite code libraries like Hype, Away3D, not to mention numerous tweening engines. The latest version of Air has a great deal to offer like the captive runtime and stage3d! I also find myself looking at PhoneGap and Appcelerator they are also wonderful platforms but for speed of use I really like what adobe has done with the latest version of flash builder.

Lots of people I feel lately have been touting html5 and kind of bashing on Flash. Let me just point out they are completely different technologies both have advantages depending on your perspective. It really depends on what you want to use the technology for. Lets talk about video games for a moment. I believe for a video game to have fluid movement and a great user experience it has to have a frame rate between 20 – 50 frames per second. This feat is currently not possible on a mobile device with html5 canvas for all clients. It is for the desktop but not for mobile. So what do you mean all clients? Well when you publish a mobile application you publish for a specific operating system target. It can be tricky to make your requirements really specific so you can ensure a speedy user interface and user experience. In short you should make it your habit to develop for the lowest common denominator first. If it runs well on the device that is mediocre than it will run really smoothly on higher end devices. To ensure a great user experience you need to specify render mode, screen size, and os version, etc. It would be nice to specify end user device. When it comes to webGL it will be the future but it is just not there yet. It won’t be until every device supports a dual core and up and a GPU not to mention openGL ES 2 or higher. Right now if you want to create an extremely fluid environment for a game you should use a runtime like Corona SDK, Unity3D, Appcelerator, or AIR. These tools compile code down to native for speed and allow for code to be ported to other operating systems a little more quickly. These tools will also ensure a more responsive experience for the end user. Why a runtime? It is important for me that my code be relatively easily ported to multiple platforms. It is easy for people to say well you should develop natively on all platforms. You will get the quickest access to new features built into that platform. This is true but I don’t have deep pockets for my freelance experiments and development. If money was not an issue or I simply didn’t care that a platform was not able to have my game or application than that is exactly the approach I would choose.

I have been using HTML5 / CSS3 / webGL for several years now. I have made several mobile websites app, etc all built on HTML5. It is capable of wonderful things on the desktop although it is kind of hobbled right now on mobile for highly interactive applications like games, anything that uses a canvas etc.. This really isn’t unexpected though. Innovation has really sped up so it’s easy as a developer to say its hobbled etc when it just takes time to adopt. Specifically what I am saying is for it to be a truly viable option for mobile javascript has to have near desktop performance. This is obviously asking a great deal. For your average social website, retail website, or even media driven website this is not really a problem. It is a problem if you want to deliver a fluid video game or immersive experience.

I haven’t been blogging too much not because I can’t because I have been too busy. I have spent a copious amount of time studying new technologies and working on a mobile game. I have been building my mobile game in Unity3D and I will discuss that later with some demos. So my approach for developing cross platform mobile applications is to use AIR or Unity3D as my fist choice option for anything highly interactive requiring a high frame rate. If that is not the purpose of the project than I would look at other technologies like Appcelerator, PhoneGap, or HTML5. #nottomentionimovedtosanfrancisco 🙂

Download the Source

Useful Links
http://www.adobe.com/devnet/flashplayer/articles/introducing_Starling.html
http://www.in2ar.com/sdk.asp
http://away3d.com/
http://www.theawayfoundation.org/
http://gamua.com/starling/
free starling e-book