If you did not know already, Apache Flex is a technology (a software development kit or SDK) used to build, and deploy cross-platform mobile applications or rich Internet applications (RIA). The technology has been donated to Apache in 2011, but still uses Adobe AIR or Flash Player as runtime. For many years, Adobe has been doing a great job of keeping its runtimes compatible with Apple’s guidelines and requirements.
A recent problem
In the past weeks, Apple announced that “Starting February 1, new apps and app updates submitted to the App Store must be built with Xcode 5 and iOS 7 SDK.” Could this really mean the death of Flex applications for iOS?
Fortunately, Adobe released a fix that is currently available through the latest beta release of Adobe AIR. So if you plan to publish on the App Store soon, you should re-run the Apache Flex SDK Installer, and where the installer asks you to select an AIR version, just select AIR 4.0beta. Proceed with the installation, and that’s it! Now build your app as you have always done, and enjoy the power cross-platform development!
Source: Building Apache Flex apps for iOS7
Update (March 2nd, 2014)
Please note that Adobe just changed the AIR versioning from 4.0 to 13.0 to synchronize it with Flash Player. When running the Apache Flex SDK installer, select the latest AIR version: AIR 13.0beta.
Last year I talked a bit about some of my augmented reality projects. Many of you have sent questions and posted comments so I suppose there is a certain level of interest in that field. One of the conclusions I had back then was that to achieve a certain level of quality (great lighting effects, surface reflection, etc.) when rendering a 3D model in an augmented reality project, you better use a good 3D engine (such as Unity). I still think this is true.
Yesterday I “discovered” that Unity is offering its iOS and Android “basic” license for free until April 8th. Normally, you’d have to pay $400 for each of them. So if you were unsure Unity was a good choice for your project of not, go ahead and buy it for free. 😉 What a great way to finally test it out.
- Go to https://store.unity3d.com/index.html
- Select Unity FREE
- Add features: iOS and Android (both free until April 8th)
- Proceed to checkout
- Open email upon reception, and follow the instructions
Now enjoy your brand new installed Unity development tools!
First thing I have to say is that this tutorial is for Windows only. I’m sorry, but at this point, developing Flex applications under Ubuntu is a bit too complicated. I am not a Mac user, so I have to use Windows for Flex development. My computer has an i7 CPU and 8GB of RAM, so I prefer to use a Windows 7 virtual machine instead of dual boot, but feel free to go with your own preference here.
Adobe Flash Builder 4.5.1
On June 20th, an update of Flash Builder 4.5 (4.5.1 in fact) was released. It includes more support for iOS and Blackberry tablet. It is now very easy to deploy on iOS devices, as long as you have the correct certificate files (next section).
Before you continue, make sure your Flash Builder is up-to-date:
- Start it as administrator (right click on the program icon and click “Run as administrator”)
- Go in Flash Builder’s Help menu -> Search for Flash Builder Updates…
- Accept and install all updates
- Go back to Help menu -> Software Updates…
- Accept and install all updates
- Restart Flash Builder
Generate required certificates
To be deployed in “development mode” on your iOS device(s), your application needs to be digitally signed. Here’s the documentation on how to achieve all the different steps. Remember to follow instructions for Windows!
Three very important things you need to know:
- Open a DOS shell “as Administrator” to avoid some OpenSSL errors and warning.
- Before generating your key (as you will read in the documentation), execute the following command in your DOS shell: set RNDFILE=.rnd or you will get the following error: unable to write ‘random state’ e is 65537 (0x10001).
- When using OpenSSL, do not ignore error messages. If OpenSSL generates an error message, it may still output files. However, those files may not be usable. If you see errors, check your syntax and run the command again.
Create a Hello World application
Now, let’s create a very simple Hello World application using Flash Builder.
- In Flash Builder’s menu,go to: New / Flex Mobile Project
- Give it a name and click Next
- Select Apple iOS as your only target platform
- Select the View-Based Application template and click Finish
- Add a simple Label object saying “Hello World” or whatever you like in the View that is automatically created
- Let Flash Builder know about your certificates:
- Open the Project Properties window
- In the left menu, go to Flex Build Packaging / Apple iOS
- Browse and select your certificate file (.p12 file created earlier)
- Browse and select your provisioning file (downloaded from your Apple account)
- Build your project (or make a release build for better performance and lighter footprint).
For a video tutorial that might help you even more, please visit this page.
Add your device to your developer account
Just like it is required during standard native application development, your device needs to be “ready” for development. Here’s Apple documentation on how to do that: Provisioning a Device for Development (you’ll have to scroll down a little). I’m sorry for not giving any more help on this point. I don’t know a lot about Apple’s development processes. That part was actually done by another member of my team. But I’m sure Google will give you all the help you need. 😉
Deploying using iTunes
You’re almost there! Here are the final steps, all done using iTunes:
- Import your provisioning profile into iTunes
- Import the ipa file built by Flash Builder (found in the “bin-debug” folder of your project’s workspace) into iTunes
- Sync your iOS device so your application gets installed
That’s it! I’m aware there might be some missing details in this tutorial, but feel free to post any question you might have. I’ll be very happy to help.