Why I keep using Adobe Flash

In November 2012 I released my first mobile application: Mi Recetario, for Nestlé México. It was made in 2 weeks with Adobe Air 3.4 and this is how it looked:

I started to develop Flash in 1997 when doing SWF projects wasn’t called exactly “developing”. Since then until 2004 I became a Flash evangelist, won a couple of awards here and there, did lectures in universities, conferences inside and outside of my country, wrote in books and magazines or got mentioned in them.

Life was good. Then one day in 2004 I dropped Flash and switched to PHP/DHTML. That decision was made within the creation of my first company: Kol Interactive (it still exists as Kol.mx), one of my partners made me see how tendencies favored development in HTML instead of Flash.

But then one day we had to make an application with Video Conference capabilities for Pfizer. So I had to go back to Flash, and learned to program the Macromedia Flash Communication Server (which used AS1, a.k.a Javascript, yeah! just like NodeJS but 10 years ago). Also we built a tool for evaluation that is still used in Indautor (a Department of the Mexican Government for Copyright and stuff like that). I know they still use it because just last week I got a request for a couple of new features.

Around 2007 I dropped Flash again. This time I was working in an agency and doing Flash sites didn’t make sense to me. But around 2009 we got a request for a Game, and again… had to come back to Flash.

I’ve dropped Flash in favor of HTML many times, but I kept coming back everytime.

So, it was 2012 and we had a meeting with a client. In this agency I was organizing their new interactive department, and we were looking for a project so we proposed to this client to make an application for iOS and Android with seasonal recipes. We brought a Flash demo, the client loved it, but then she said “can we have it in 2 weeks?”, after a quick pause I said “Yes” and I knew I was getting myself into troubles.

Originally I planned to outsource this development, but nobody would take the project. Native devs quickly refused to take it, I did not know anybody doing Adobe Air but knew a couple of Corona devs, but even they turned us off.

I didn’t wrote a single line of code in a year, but I knew it could be done in Air. So the first 2 days I documented myself about what I needed to use. I learned Starling and Feathers on the flight. The first build of the app exploded when I tested it on an iPhone 3G. I panicked, but discovered that just a few days ago Adobe released their ATF tools, that made the app work.

The app was finished on time, the client was happy and I took a good sleep.

The previous 2 years I was in management duties, but after building that app I wanted to develop again. So, I quit my job and in 2013 took a plane to Texas where I founded a company named Crazy Cricket and within 2 months we did this:

We even made it into the TV.

But life is hard and the studio collapsed, the guy that was injecting the money had a hard year and we had to shut down the studio in December of 2013.

Since the studio closed it’s doors I’ve been doing Air and HTML5 games for different clients. Fun fact: even for the HTML5 games, I use Flash IDE. In-frame coding is an advantage that only Flash CC provides, but I will talk about that in other post.

I wrote this mini resume of my professional life because I wanted to make clear that I’m not against the idea of dropping a technology. I’ve already done it more than once, even when that technology was at it’s golden era. Why I’ve come back is totally circumstantial, but I have some good reasons to stick with it.

It is free.

Yes, it is Free. You can download the SDK for Free and use the IDE of your preference. If you are hardcore enough you can even use VIM but since I’m not that hardcore anymore I use IntelliJ IDEA which is awesome. But there are some other options like FDT or Flash Develop.

I can’t stress enough how important is for me to do not be married with an IDE.

You don’t need to have a Mac

Some frameworks just export an XCode project that you have to compile in a Mac, so testing and debugging becomes a nightmare. Other frameworks like Corona, make server side compilation, but you have to keep your subscription or you won’t be able to update your app.

Compiling and testing directly in your device is invaluable. The latest versions of Adobe Air got improvements in the packing for iOS reducing times from 5-10 minutes of packing to only a few seconds, The Tapping Dead compiles into an IPA in 15 seconds.

Adobe Scout

Profiling with Adobe Scout and see exactly what is happening inside of an app in-device makes the difference between having 60fps or struggling to maintain 20fps. Yes, you can profile from your device.

One of the builds of The Tapping Dead was having a memory leak that it wasn’t noticed while testing in desktop, but in the Device after a few levels it became unplayable. Running Scout in the device allowed me to discover and fix the issue.

Adobe Native Extension

When Air can’t do something, you can use an ANE. Distriqt and Milkman Games have plenty of them. Github also has a good amount of free ANEs.

But if there is something specific, you can easily build one. We got a request from Blue Goji to integrate their Bluetooth Controllers into our game. A friend quickly built an ANE for iOS and Android for me.

If you have a question, it has already been solved

And that’s true. Every single question you may have about the language, it has already been solved. This is a mature and stable platform, it is not something that could change a critical API from one version to another.

Updates

In the last 2 years there has been more significant updates to Adobe Air than to Adobe Photoshop and Adobe Illustrator all together.

Some people that keep quoting Jobs don’t realize how different is Flash 2010 from Flash 2014. We are having 4 to 5 new versions of Adobe Air each year. Recently we got support for Android devices with x86 processors, AGAL2 and Anisotropic Filtering among other stuff.

Performance

This one has been controversial.

Peter Stefcek is one of those persons that I take what he says. Adobe Air with Stage3D optimized, is faster than Unity2D. But if you need to see something to get convinced, look what these guys in Argentina are doing with Air:

And that’s December of 2013, there has been 5 new versions of Air since then, including AGAL2 (which is the v2 of Adobe Shaders Language). So, performance is not a valid excuse to attack the platform.

Tested and Proven

Do you know this game?

Well, that game was published with Scaleform instead of Air but technically it is Flash.

UBISoft just released CSI: Hidden Crimes in Air. Zynga also has released games with Air. There has been more than 1.8 billion of applications made in Air installed in the last year. And not just games.

Virtually every social game and Casino game has been done in Flash and basically every single AAA studio have used Flash with Scaleform (mostly for UI).

Resources

AS3 is 8 years old. The principal frameworks for other platforms (like HTML5) have been made by former flash developers. So, not only the amount of resources is huge, you may be amazed of how similar they look like. Even other languages are very similar to AS3 like Haxe, Typescript or Swift.

But what about 3D?

Well, the guys behind Flare3D are showing that Air can compete there too. But personally, I might use Unity3D in that regard (unless I get some experience that makes me change my mind).

So should I leave my platform and switch to Air?

Adobe Air is just an option, you should use the tool that best fits your needs. If one day a client requests a project for Windows Phone or anything that is beyond the reach of Air, and I accept that project for sure I will switch as I have done in the past.

I believe that having options is good, not everybody is going to like or use what you use, but everybody has the right to choose whatever they want. For the time being Air is just fine for me, it may or not fit your needs but until you try it you will know. The Air community is very active and helpful, despite these hard years we do believe that the platform still is a solid and strong option for cross platform development.

Thank you for reading!

Update: Today was announced that since Adobe Air 3.8 there has been 1.8 billion apps (up from 1 billion a few months ago).