Category Archives: iOS

A Single Code Base, Lots of Devices

Here’s a quick teaser for a multi-part series I’m working on: 1 code base, 1 application framework, 4 platforms, 7 devices, 5 ecosystems…

Single Code Base, Lots of Devices

Yes, that is correct…

1 codebase, Adobe Flex

1 framework, Adobe AIR

4 platforms

7 devices (these are just devices I have):

5 ecosystems

This is just a teaser, but I’ll soon be releasing details how to take an application idea and deliver it to multiple ecosystems, all with a single toolset. Stay tuned…

Flex on Mobile Live Q&A with the Evangelism Team

Mark your calendars! Next Thursday, August 18th at 9:00AM to 10:30 AM (PDT GMT-7), the evangelism team will be hosting a live Q&A chat. Come join us to learn more about Flex and AIR for mobile, and bring your questions with you!

This session will be Q&A only. There will be no demos, no slides, no speaking – just pure Q&A through Adobe Connect (all you need is a web browser or the mobile app). Whether you are actively involved in mobile development, or about to start, join us and bring your questions!

On Thursday morning, just go to and join us in the chat. I hope to see you there!

We will have at least five evangelists in the Connect session to answer questions. This is a bit of a science experiment so we’ll see how it goes! We will allow as many people in as we can handle, then we’ll start blocking entry and creating a queue. The event will run for 90 minutes so you can come and go as you want. There are no presentations and no demos. It’s purely a Q&A session.

For many of us, building apps for mobile devices is a very dramatic shift. We’ve never before had to deal with touch interfaces, varying screen densities, and input from the GPS and accelerometer. At the same time, we have to be much more conscience than ever before about resources, because our apps run on much slower CPUs with far less memory than we are used to and on OSes that will shut down your app if it crosses the line! It’s not a trivial transition!

Our team has been building real apps with Flex for several months and we have learned a lot. This is an opportunity for us to share that knowledge in an informal setting. We’ve never attempted this before, but if it works well, we’ll do it often. If it’s a bust, we’ll figure out a better way.

A few things to keep in mind for the chat:

  • Questions should be as specific as possible and limited to Flex on Mobile.
  • We can’t promise that every question will be answered, but we’ll do our best.
  • We can’t debug your code, that’s your job! However, we can direct you to good online resources.
  • Keep it friendly and G-rated. We don’t want to see you on webcam!
  • No flaming! We’re here to answer specific questions, not to debate you about technology.

Check in at for more detail!

(iPhone icon used from

Why Can’t I Run My App in the iOS Simulator?

One very common and valid question when developing AIR mobile applications is “Why can’t I run my app in the iOS simulator?”

This is especially the case once you realize that you can compile and target the Android emulator; The ADT packager supports exporting to the Android emulator, but you can also install any APK (Android Package) binary file into the emulator using the normal tools contained within the Android SDK.

The reason that you can run a Flex Mobile app in the Android emulator, but not in the iOS Simulator comes down to the fundamental difference between an emulator and a simulator. An emulator emulates a physical device; The emulator program mimics the hardware, and the device-specific code that will run on the actual device runs within the mimicked environment. A simulator simulates an environment – it has a likeness or model of an environment, however it is not identical to the target environment.

In this case, the Android emulator mimics the hardware environment and is capable of running a compiled APK for a Flex/AIR mobile application. However, the iOS simulator is not capable of executing the contents of an IPA file. This isn’t specific to an IPA file for an AIR mobile app, but any IPA file – even those downloaded from Apple’s own app store.

The executable content within an IPA file is compiled targeting the device’s A4-ARM processor. Your desktop computer uses an intel-based processor architecture, which isn’t compatible and will not work. Even if you rename an IPA file to a ZIP file and extract the contents, it will not work within the iOS Simulator because of the CPU architecture differences.

Best Practice:

The first, and most important point that I emphasize regarding mobile application development is that nothing is more important than testing your mobile applications on a physical device. Emulators and simulators can help you see how an application may operate within a given environment, but they do not provide you with the actual environment. Physical devices may have memory, CPU, or other physical limitations that an emulator or simulator may not be able to reveal.

Secondly, keep in mind that emulators and simulators are created to make your development process easier and faster (especially if hardware is not readily available for the entire dev team). The debugging environment within Flash Builder is designed exactly for that purpose. You can quickly and easily test your application’s interface and functionality with a single button click. You can even setup debugging profiles for multiple devices, or use one of the predefined device configurations:

While these capabilities make developing for multiple form factors and multiple device types significantly easier and faster, this does not trump my first point. If you are targeting specific hardware, then it is imperative that you test thoroughly on your target platform(s).