Blog Flash and Flex Mobile App Development

My First App had 524 downloads in 16 days

App ScreenshotI’m pretty happy, the first app I ever developed all by myself has over 500 downloads in just 16 days, with ZERO marketing. This app is the very reason I started this blog, I wanted to keep track of everything I have learnt. Although I have worked on numerous mobile app projects, never have I personally took it from idea all the way through production all by myself. It has been a long and sometimes frustrating journey, but at the end it was worth it. Below is a quick summery of what I have learnt from the launch so far.

The App

My first app is called Hand Massage Acupressure Health, currently only available on Google Play. It is essentially a reference guide to how to use traditional Chinese medical massage techniques called Acupressure to improve health and aid minor alignments such as headaches and sore throats. More information can be found at  I’m aiming to complete the iOS version within this month. Since I used Adobe Flex to develop the app, this in theory should be fairly straight forward.
Even though the app is out on the Android market, there are still so many things I would like to do to improve it, but reading the Lean Startup by Eric Ries I really wanted to test the idea of developing a Minimal Viable Product (mvp) and just push it out to the market to test customer responses.
If you are using an Android phone, please download it now and let me know what you think, I would love to have some more feedback.

Get it now at Google Play

Fun and interesting data

I’m strangely fascinated by the data from Google Developers Console. The graph below shows the general active install since it was published. The most surprising thing I’ve learnt from here was most of the downloads were from Android 4.0.x (Ice-Cream Sandwich) devices, I was convinced it would have been 2.3.x (Gingerbread) considering the market share of 57.2% vs 21.8% for 4.0 devices. My only possible answer is those with new devices (with Android 4.0 preinstalled) are more likely to browse Google play for new Apps.

Device DataConsidering the popularity of Android 4.0.x devices, I wasn’t exactly very surprised to the top 3 most popular devices were Samsung Galaxy S3, Samsung Galaxy S2 and Samsung Galaxy Note. What I was surprised about is the difference in download  from other systems. I was very surprised there were some interest from Asus Nexus 7 devices. When I designed the app, I was thinking solely for Smartphones and didn’t want to spend too long with adapting the app for tablets. Even after my update on 6th September, I know the app would not look 100% right on Tablets, but at least its more usable. One thing I was hoping the update would address is the high level of uninstall for HTC desire Z devices, I suspect this was due to the poor home screen arrangement for low res screens.

What I have learnt

I have learnt so much through out this app, but some of the most important lessons I have learnt are surprisingly not so much regarding the technical side of the project but more things to bear in mind for my next project

1. Do not trust the Flash builder emulator

Things will LOOK and PERFORM very differently. Most importantly in my case was the 3D view for the hand, even with a dual core HTC sensation there were obvious lag during rotation

2. Read the freaking documentation

when I started this app, I was very stupidly unaware that to use a flex app, the user would also need to have Adobe Air installed on their Android devices. I can’t help think maybe the app would do a tiny bit better if they didn’t have to do that much more work.

3. Test early with actual users

Find someone who is roughly your target audience, without explaining what the app does, ask them to have a play around and tell you what they think the app does and how they would the whole experience. This was very valuable!

Search Performance

I was also pretty pumped to realise if you type in “Hand Massage App” into Google Web Search you would get my app on third and if you type in “Hand Massage” into Google Play it would come second! I’m hoping this is Google’s way of saying I’m doing things write.

Next Step

Naturally with this level of interest, I am very excited to carry on developing this app, so my coming steps are as follows:

  1. Develop Chinese Version
  2. Resolve Tablet layout issue
  3. Publish to Amazon Market Place
  4. Publish to Apple App store for iOS devices
  5. Start learning Phone Gap, there will be a post of this very shortly

All and all this has been a fun experience, just a shame the app is free. Oh well, another lesson for the next project.

Blog Mobile App Development

Array and ArrayCollection

As I’m trying to get my first android app onto the market within 2011 (Leaving me 26 days). I had a problem where my lists were not showing the data. I simply had an array pushing the data to a list. But it will only show when I scroll! not very useful and user-friendly. and after a lot of frustrating attempt and reading up on the ubernet I found the following. I strongly feel I am wrong with this, but I can’t get it to work otherwise
array -> List -> doesn’t show on load because the view lot first
arrayCollection -> ItemRenderer List -> shows straight away because it self refreshes
I’ve also been having a fun old time with getting my model running properly. I want a hand to show and allow the user to drag their finger to spin the model. I imagined there would have been some code floating away but so far I haven’t found much. I ended up using some very simple code. it’s not very efficient, but I’m trying to get this project of the ground first then perfect it. I think they call it Agile programming…

Blog Mobile App Development

Flash and Flex talking

Considering Flash and Flex is closely knitted, why is it so hard for them to talk to one and another.
I’ve tried a bunch of different ways to make a flash file show. Settled for SWC and calling by class to begin with, then I realised I couldn’t get it to talk to flex (Problem could be between keyboard and chair!).  So i had to try A BUNCH of ways. I can now easily get it to show an swf file. but getting it to talk is SOOOO painful!
This post saved my mind from madness:
I found dispatch was suppose to be work only it didn’t because I embedded the swf. Now the trouble is how do the flex pushview thing?
Here’s the answer:

Blog Mobile App Development

Things I learn whilst building mobile app

Welcome, this blog will be for me to keep a record of what I’m currently learning. Recently it’s writing mobile apps. I know I’m late to the gold rush but this is more about teaching myself new skills and creating something for my own use then anything else.
Tools I’m using

  • Adobe Flash Builder 4.5
  • Adobe Flex SDK
  • Adobe Flash CS5
  • Away3D and Prefab
  • Maya and Blender 3D
  • Adobe Photoshop

I’m slowly getting through each of these tools, learning whatever is needed on the way. I know Maya, Photoshop and Flash reasonably well from previous projects, but the rest is very new to me.

Main Challenges so far

  • Structuring XML file – I used XML files before, but never wrote any myself.
  • Getting Flex to show the XML value I want them to show [FB]
  • Comparing value from one XML list with another [FB]
  • Styling buttons in [FB]
  • Importing Flash files into Flash Builder*
  • Importing 3d models**
  • Gesture controls with AS3
  • Controlling the 3d model (In progress)

*There turn out to be a number of ways, such as flash container or flash components, but i found these rather hard to control, the best way I found was by inserting a SWC file via flash build path and calling the movieclips inside the fx:script
** This took a very long time. Using a number of different methods, i tried importing DAE and OBJ but the textures didn’t show. I ended up using Maya to model and export to blender and again export to Prefab to add texture. Learn via