Home Tutorials Forums Articles Blogs Movies Library Employment Press
By Alex Nino
|
Published

Misunderstanding Adobe Air for mobile platforms

This is a funny thing, nowadays, even in this first quarter of 2012 when I speak with developers sometimes they get surprised when I say that I am working in an iOS project using Adobe Flash, people say, ehh? Hmmm? How come? Adobe Flash is not supported on iPad, nor on iPhone… To be honest I can't understand how Adobe has not made this very clear, people still think Flash is banned from iOS and only few of us know that this is a complete misunderstanding (this is wrong). Flash is not supported on safari browsers (in Apple mobile devices), so are not other plug-ins such as; java applets, unity3d, etc… but people don't see this; the only thing they see is Flash can't run on iOS.

I have spent countless hours testing adobe flash on iOS (yes using adobe air), my final conclusion is that it will never be (in terms of performance) as good as an app natively made in Objective C, but hey, this is not new for us, it was always like that, same on PC, same on MAC, we can't compare Flash with programs made natively in C++ and other languages that work closer to hardware. So we are in a very similar position to where we were before; depending on what we would like to achieve Flash will perfectly satisfy all our needs, as usual.

I am following what Adobe is doing from earlier stages with the flash platform. I am quite happy with all the progress they've got so far; they have made some serious improvements in the flash platform running on iOS and other mobile platforms. I know earlier versions of Adobe Air on iOS were not even a possible solution, they run badly comparing with other apps made in Objective C natively. Nowadays I have to confess, the current version of Adobe Air 3.1 is something you can seriously consider for building your apps, what you get in terms of performance is more than acceptable, sometimes equally good comparing to apps natively coded, and you know what's the best part of it? that you can transparently port everything you have done to other platforms. Maintaining different source code depending on its platform is really a pain.

Almost limitless

Did you know you can code part of your Flash App natively using Objective C? Yes you can, this is called Native Extensions, which allows you to communicate your flash app with pure Objective C code on the fly. This is really useful, before you didn't have any way of using some resources from the operating system like, accessing internal API, system notifications, app-in purchases, game center, checking battery status, etc… I highly recommend having a go with Adobe Air for mobile, it has changed a lot during the last year, I can't wait for the version 3.2, Adobe is promising fully control of the GPU (Stage3D for mobile), woohoooo!

So far the majority of the flash apps we can find in Apple, Android and Blackberry markets (made purely using actionscript) are very simple apps in terms of complexity, and games that normally demands extra work, are quite rich in visuals and sounds but very simple in terms of algorithms and processing. And I was wondering why? Is it all about performance?

Traffic Wonder was made purely using actionscript

I've been totally focused working fulltime on this project since october last year, for those who haven't heard about it from my previous posts, it is a crazy puzzle game aimed to be distributed on all existing mobile platforms (including desktops computers PC/MAC/Linux), the game is currently in QA at the very last stage, its release date is on March 15th for all platforms, you can find out more about it at http://www.trafficwonderapp.com

Traffic Wonder screenshots

I have tried making different prototypes of the game using C++ combined with Objective C but at the end of the day, I end up building it all using purely actionscript for many reasons, the most important one "portability". It was a big challenge make it work in all existing platforms, since there are big differences in hardware architectures from device to device, for example; flash could run on iPad1 about 5 times slower than iPad2 if you don't make some proper tweaks and optimisations, taking advantage of the device itself and relying less on its GPU. I have faced the same problems everybody did, my app sometimes suddenly crashes without giving me any particular error, and the reason was the same all the times "abuse of memory usage". Think about making a SWF file that will start running once forever, you cannot control when the user or the operating system will terminate it but yes you need to be worried about keeping it in memory running stable all the time, you have to manage very well resources which is a bit tricky when coding complicated algorithms manipulating lots of assets. I am recently, strategically using more often in parts of my code System.gc();

Here is a video I have filmed today with some interesting notes about its development, explaining the most important feature of the game "the drawing experience", at the end, the user experience dealing with the game mechanics is what really counts, I hope you enjoy it.



I can't wait for Adobe Air 3.2

Something very interesting that really worth to mention is that, we have spent a lot of time on making the levels good looking, make then look as nicer as possible, each level has 3 different representations; on spring (green), desert (dry summer) and winter (snow). Have a look at this level for example:

Traffic Wonder spring

Traffic Wonder desert

Traffic Wonder snow

At the moment each level has in average 20 millions vertices, I've made some tests with Flash Player 11, and apparently "there is a light at the end of the tunnel" a possibility in an early future to render all the levels on the fly and then cache them as bitmaps in (Adobe Air 3.2). That will be definitely a huge help for making the game far much smaller in terms of file size, maybe to 20% of its original size, at the moment all the levels are pre-rendered bitmaps, that's why the game is 150MB, which is still aceptable for a tablet game.

traffic Wonder wire frame



Some advices and tips (regardless what language you use) which apply only for paid apps

I have made a massive research during the last years on different mobile platforms and markets, there are some things that really surprised me a lot and I would like to share some of them with you:

Be careful using the accelerometer sensor, your app controls cannot rely totally on it; some users feel ridiculous when using it in public.

People will remember your app not only because its graphics and UI but also sounds, sound is part of your app identity, it needs to be unique, keep in mind it is extremely important and can destroy completely the user experience, be aware some devices won't play sounds as good as others do, and what I mean with this is, it could be really annoying (same sound) depending on which device it's being played, it might play louder or quieter, sometimes it doesn't even sound. Why!? Frequencies, some devices like iPads have really, really, really bad speakers, iPads are not even stereo, and if they are, it is completely pointless, they have only one speaker hole on the side; they are monophonic unless you use them with headphones. Some devices are not able to play low frequencies so you can't hear any bass at all but yes really loud high frequencies (treble) and that's the only thing users can hear, annoying treble noises. Have you ever wondered why Michael Jackson sounds the same everywhere, all speakers? Masterization, you might have to master sounds you use in your app in order to guarantee a good user experience (Best device speakers from my point of view – Playbook, it is stereo, better frequencies range, etc…)

Did you know that 1 in 20 persons in the world have some index of colour-blindness? That means that if your app rely on colours (like Traffic Wonder does) about 5% of users won't be able to look at your app exactly in the same way you do, be careful with the colour balancing.

You have only one chance with new users (listen very well, one chance only!), be careful with your app instructions, do not rely on text descriptions much, around 65% of the users don't read anything, be creative, make your app as intuitive as possible, otherwise they will give up and will never try it again. I am constantly struggling with this.

QA (quality analysis) is extremely important, spend more time than usual testing your app, do not make final users test it for you otherwise you have a massive big chance of burning your app forever, to the point of, if you want to improve/enhance it, you might have to change its name and its art for republishing it as a completely new app (this is a crazy strategy of many developers, especially on Android platform).

The main platform you have to be focused on is currently Apple. Why!? There around 200 million users in iTunes, 44% (88 millions) of these users are considered as active users which (unlike Android users) they like buying things, at least one app monthly in average. So whatever you do, do it, aiming to at least 1% of this audience :)

Guess how many apps are being published per day in the Apple Store? Between 150 and 200 (this is mad) that means that we have around 1200 per week, (52/12) x 1200 = 5200 per month. So indeed you app icon is super important, when you publish your app, you have only few minutes on the shared NEW tab at the store. Make your app icon attractive or at least not crabbed :)

Developing for Android is easy but it could be a pain in the ^&%$... When you think about Android, you think about it as an operating system itself, not as a specific device. So whatever you do (I am afraid) you can't guarantee it will work and run the same on every device, Google is facing same problem Microsoft did on 1994, there are people making Android devices in any garage in china where android crashes all the time and at end sadly what people see is Android is bad! I can see Android as one of the best mobile OS but not now, in 5 years time maybe.

For god sake, some users wants everything for free, so you better think in a proper strategy for selling your app, having "freemium" versions is not always the right way to go, be careful with lite versions, although it sounds odd, lite versions can affect negatively your sales "drastically".

Keep an eye on the Blackberry Playbook platform, regardless they are not even 10% of the 45 millions iPads out there (15 millions first generation + 30 millions iPad2), Blackberry users have no problems paying high for what they consider a good app. Nowadays you can find big titles for the playbook platform and they (unlike other platforms) are highly expensive, apps such as; Monopoly (EA) USD$5.00, SimCity (EA) USD$4.00, Angry Birds (Rovio) USD$5.00, etc.

Nowadays you have to compete with very high quality standards, do not spend more than USD$80K making the game (including marketing and your own time), the more you spend the higher your risk if you don't have a very clear marketing campaign, so stop thinking in those hero-champion-apps that have been sold millions of times like Angry B… this happens really rare, I wouldn't say it is a bit of luck but it depends on many factors, most of them about when your app was launched in relation with tendencies, quality, cost/benefit, etc... The market doesn't promise anything else that worth increasing a higher budget of USD$80K to "guarantee" some profit.

It is really weird, the way how apps get featured in the Apple Store, it seems to be at random rather than highly reviewed, evaluated and chosen, at the same time it feels odd when an app gets featured same day its release date, that means one thing only; it doesn't depend on users and acceptation, I don't like to speak about this much… just don't rely on this, if your app gets featured or not, it is not in your hands, so you need other alternatives to propagate your app.

Careful with what you read, this crazy market changes so quickly, 6 months old readings might be obsolete, I am writing this article in the morning of February 19th 2012, I have no clue if all I said here will be valid by the end of the year.

There are evil people out there buying your app, some of them are very ignorant, some of them are just 100% your competitors (enemies), be prepare for bad reviews, those bad 1 star reviews will always come over at some point, try to interpret them in the best way possible, regardless how much effort you put in your app, regardless how good your app is, we need to understand bad reviews are part of it all.

This is really serious; when you own a product there are 3 key elements that worked combined to reach your hands; "Idea", "Development" and "Marketing", I have asked many people I highly recognize and appreciate about these, most of them experienced entrepreneurs, interesting thing, they don't know each other, they are from different nationalities... my question was very simple which demands a simple answer, If we have to give percentages to each of these elements (idea, development and marketing) what these figures are? I couldn't believe this but surprisingly the average answer was 1% idea, 54% development, and 45% marketing. So marketing is SUPER IMPORTANT! my conclusions are; the idea is only good once you have proved it is, so at the beginning the idea represents only one thing "risk", it values nothing commercially, however it is the spark (soul) of the whole product. Development is what you can control 100%, and then marketing (the art of predicting the future) is what you can incite to happen but is never guaranteed. You might end up extremely frustrated unless you have the whole time of the world, and you are up for waiting ages to see results. If you don't make any marketing the chances your app has of doing well in sales are almost none regardless your app is a super-hero-champion-app, we are in 2012! It is not like 3 or 4 years ago when users don't have much to choose. Important thing! It is completely a waste of money and time if you don't have a good budget for it (at least USD$25K). Do not waste your money on small marketing campaigns, the results are very similar to doing nothing (cost/benefit). Although you might not have the right channels to achieve this, focus more on approaching magazines, news papers, critics and journalists... contact a good PR agency. If you don't have any budget at all for this, try finding a partner. Don't release your app alone (without marketing) the results could be undesirable.

Guys, I will keep adding some more things later on, so keep in touch through the RSS feed,

Have a good day everyone!

Cheers!

Alex Nino (yoambulante.com)



Spread The Word


3 Responses to "Traffic Wonder was made purely using actionscript"

 
GamyGuru
said this on 19 Jul 2012 9:44:28 AM EST
Thanks Alex!!!
Great article and experience.... I really enjoyed it a lot as well as learned a lot..... By the way, liked your game very much, also I will download it today....

Regards,
GamyGuru
http://gamyguru.wordpress.com

 
seo
said this on 08 Sep 2012 10:08:34 PM EST
good game and nice content

 
kamera sistemi
said this on 30 Mar 2013 2:25:06 AM EST
Good platform and nice content.




Leave a reply:
Your Name *: Email (private) *: Website:
Please copy the characters from the image below into the text field below. Doing this helps us prevent automated submissions.
Security Code: img

Copyright 2000-2013 ActionScript.org. All Rights Reserved.
Your use of this site is subject to our Privacy Policy and Terms of Use.