Hero is available
The next version of the Flex SDK, codename Hero, is available to you for download now. If you want to check this special builds just go here and download.
What is so special about Hero? Well, the most important thing is the added support for mobile development. So far you’ll find in this builds: Spark DataGrid, Spark Image, Spark Form, OSMF 1.0 integration, Mobile Application, View & View Navigator, and ActionBar. You can read more here.
No go and start play with it already :D!
Flash for mobile contests
This summer you have many contests to pick from if you want to create Flash content for mobile (Android 2.2) and win something while doing it. You can win fame/money/software/mobile devices — not neccesary in that order and not all at once– but you get the point :D.

For more details, check out these contests:
- Kongregate Mobile Flash Game Contest (almost $30,000 in prizes)
- Mochimedia Made for Mobile Contest ($20,000 in cash plus CS5 Master Suite licenses)
- Cell Your Flash Game ($30,000 in prizes)
- Adobe Czech Republic AIR Mobile Contest 2010 (Nexus One phones and software)
Good luck!
AIR apps for viewing Android pictures on desktops
This week I had time to play with another idea for Android/Desktop applications: a picture viewer. My friend Alex Chiculita from the AIR team gave me this idea. A couple of weeks ago he played with a multi-screen application that let you load a picture from a device and send the picture to all the other devices connected to the same Wi-Fi network (the app runs on Android, Windows, MacOS, and Linux).
While playing with his application I realized that I could transform it into something more helpful (at least for me). Here is the challenge: we all use our smartphones for a lot of things, including taking pictures. Having a decent digital camera (this is what a smartphone became lately on top of a mobile phone) with you all the time means you can take interesting pictures. And usually you want to show these pictures to your friends or family. However, here is the problem: while taking pictures is extremely easy, sharing them involves cables, Bluetooth, or seeing the picture on the phone’s screen.
My solution to this problem is AndroidPictures (the above pictures show AndroidPictures in action on my mobile). This Android application lets you browse through the pictures taken with the phone and scale/rotate/pan them. On the desktop, you use the companion AIR application for AndroidPictures, which displays the pictures sent by the Android application. All you have to do to see the pictures with your family is:
- connect your Android phone to the WI-FI network;
- start the AndroidPictures app on your Android phone, and start the PicturesViewer app on one of/all your computers;
- what you see on your mobile phone will be replicated on all connected computers.
Watch the video below to see how it works.
The making of
I used Adobe AIR and Flex 4.1 for creating the Android and desktop applications. In order to connect the Android application to the desktop apps I used Peer-to-Peer direct routing (the same approach used in my previous app). As I already explained, if your local subnet (for example your home Wi-Fi) supports broadcasting then you can create a NetConnection without using Stratus or a Flash Media Server (you connect the NetConnection to “rtmfp:”). This is one of the new features available in Flash Player 10.1 and Adobe AIR 2.
Once you have the clients connected, you can send messages from any one to all of them. And the cool thing about using this approach as opposed to Socket servers is that you don’t have to manually manage all the clients. Your program sends a message and the clients decide how to handle the message. You simply don’t care how many clients are connected. You can read more on my fellow evangelist Tom’s blog.
Because I wanted to use this approach for other apps, I created a simple library (you can get the library’s source code from here; unzip the archive and import the PeerToPeer.fxpl project in Flash Builder). You’ll find three ActionScript classes, and the magic happens inside of MultiCastingService class. The public interface of this service is:
- isReady
- neighborCount
- userName
- connect()
- disconnect()
- post()
The service throws these events:
- ServiceEvent.CONNECTED
- ServiceEvent.DISCONNECTED
- ServiceEvent.PEER_CONNECT
- ServiceEvent.PEER_DISCONNECT
- ServiceEvent.RESULT
The simplest way to use this service would be:
var service:MultiCastingService = new MultiCastingService();
service.addEventListener(ServiceEvent.RESULT, onResult);
service.addEventListener(ServiceEvent.CONNECTED, onStatusChange);
service.addEventListener(ServiceEvent.PEER_CONNECT, onStatusChange);
service.connect();
private function onResult(e:ServiceEvent):void {
if (e.what == "picture") {
//do something with the bytes: e.body
}
}
private function onStatusChange(e:ServiceEvent):void {
if (e.type == ServiceEvent.PEER_CONNECT) {
if (service.neighborCount > 0) {
//others are connected; send a String message
service.post("this is my message");
}
}
}
For the Android app I had to tweak the Spark List in order to make it works with both touch and click events. For the picture interaction I used a library created by Tim Kukulski, a member of the Adobe XD team. This library makes it easy to interact with pictures by letting you use gestures like zoom, pan, or rotate.
The desktop application waits and responds to two kinds of messages: picture bytes and pictures transformations (rotation, zooming, or panning). Every time a picture is selected in the Android app, I grab its bytes and send them through the “wire”. When I transform a picture in the Android app, I grab the Matrix and send it to all the connected clients. The client applies the Matrix on the picture. And the rest is history :)
All in all it was pretty easy to put together these apps and I had a lot of fun while doing this. If I have the time, I will try to see if I can play the movies recorded with my Android by extending the current code.
Getting the apps and source-code
You can download the source code from here, install the desktop application from here, and the Android application from here. If you want to run the Android application, you need to install Adobe AIR on your Android (more info here).
If you have ideas for more applications that take advantage of having AIR running on Android phones and desktops please let me know. If you create something interesting, I’d love to hear about. I already have another cool idea, this time more complex and even more fun!
Have fun with the Flash Platform on multiple screens!
Get AIR for Android and play with it
Today, at Google I/O 2010 we have announced a public beta of the Adobe AIR for Android. This means you can sign in for getting the bits and if you have a Google Nexus One phone you can install the runtime and then test the existent AIR apps for Android or create new ones.

So this makes the perfect moment for sharing my AIR app for Android that will come handy every time you have a dinner with others and want to split the bill. So grab the APK file from here, make sure you have the Android SDK on your machine and the phone is connected to the computer through the USB cable, and then run this command in console :
adb install -r aTabSplitter.apk
If you don’t like command line, then you can use Serge Jespers AIR app for packaging AIR apps as native installers including APK files for Android. Check his blog post here.
You can get the AIR for Android bits from here (and find more about developing for Android with Adobe AIR).
If you play with my app and you have feedback, please drop a comment!
Building Android apps with Adobe AIR
Last week I created my first ever mobile application. It is an AIR app for Android. The app is called aTabSplitter because ahh, it just helps you to split a restaurant bill between many people. Here are some screenshots with the two screens of the app:

Developing this small application was quite entertaining. But it teach me a few lessons too:
- You know the old saying “premature optimization is the root of all evil”. This is true for mobile apps too. You never know if some framework or workflow will do the job until you actually try. In my case, the common sense was telling me that Flex 4 framework being a desktop framework is to heavy for the mobile world. After trying it, I think actually it works quite good for me. Your mileage can vary.
- Developing for mobile is not easy at all. I spent almost my entire professional life building web applications for desktops. Doing mobile apps after this is like trying to create jewels miniatures with the skills of a mine worker. You need a different mind set; you need to acquire new skills.
- It is highly educational watching people using your app. Because of the touch-input nature of the mobile apps and the personal experience each user carries forward from previous devices/apps, you will certainly notice some interesting behaviors. With my app, a friend tried to remove a person (on the first screen) by throwing him outside of the screen. Needless to say that I didn’t think of this workflow, but it gave me an idea on how to improve the app.
Finally, this week I had the time to clean up the UI and code a little bit, and put together a video (the making-of type of video). Here is the video (you can watch the video in higher resolution here):
If you want to have a look at the code (although I warn you it is not production ready) you can download this project file. If you want to run this on a computer without a touch screen you need to make couple of changes (work with MouseEvents instead of TouchEvents, change root node in main.mxml from Application to WindowedApplication).
I can’t wait to have AIR for Android out and see what people will build!
A magical device for me: HP’s slate
When I saw the videos with HP’s upcoming slate device, and I learned that it will support Flash Player and Adobe AIR I knew this is the magical device for me and my family. The only question I have is how much it will cost.
My wife is a heavy Internet user (movies, social networks, casual games). Since we became parents she is using all these social networks even more than before:
- “Look Mihai, our friends posted a new video with their baby! Look at this video with your son playing with a bear! Isn’t he amazing?”
Well you have the picture :D. Now, most of these sites rely heavily on Flash Player. At the same time it seems the table in front of my wife is becoming smaller and smaller due to all sort of UFOs (do not mistake with alien ships, to dads these are the Unknown Funky Objects used by moms). Thus the form factor and size of this device I think it will be just perfect. Probably I could use it on vacations to save photos and videos as well.
Now, I just have to wait until it gets launched! I wonder if it will be out in time for our anniversary :)
What do you think about this device?
Photoshop.com for Android and more
Photoshop.com Mobile 1.1 for Android is out! I just installed it on my Nexus One and it looks impressive. Some of the new features: contrast and brightness tools, effects (vibrant, pop, vignette blur, warm vintage, white glow, soft black & white).
This part will probably excite the developer in you (a little bit at least :D): Photoshop.com Mobile editor is made available to any developer who wants to embed it in its own application. Maybe you’ve create a new front-end for an online image service and the only thing missing was a way to edit the picture before uploading. Now, you have this missing link!
You can read more about using this editor in your apps here, and you can install the Photoshop.com Mobile app from Android Market (search for photoshop.com) or point your phone at this barcode.
Google keynote video at Mobile World Congress
And here is the video of the keynote. Enjoy!
Google, Flash, and devices
Yesterday, during the Mobile World Congress keynote, Eric Schmidt (Google’s CEO) announced Google’s support for the Flash Platform. They see this as a competitive advantage over certain smartphones on the market.

At about 60,000 Android handsets sold each day, you can see how this newcomer is starting to become a force in the mobile ecosystem. And having support for the Flash Platform means business opportunities for many web developers out there.

Mobiles definitely are hot these days. I think the new kid on the block would be the new generation of tablet PCs. And as usual, the coolness is not in the piece of silicon and iron itself, it’s all about how the whole will work: software and hardware together providing immersive experiences. Take for example what the Adobe XD department together with WIRED magazine created using Adobe AIR. This is a glimpse into how future print media could look and be consumed on connected devices. You can watch the video here.
Adobe AIR for desktop and mobile applications
We just announced at MWC (Mobile World Congress) that the first mobile OS that will run AIR is Android (others will come). In fact, if you are in Barcelona the next few days, drop by the Adobe booth to see demos of AIR applications working on Motorola Droid. If you can’t drop by in person, you can watch videos with Kevin Hoyt demoing AIR on Droid.
What does it mean? Let’s put it this way: if you are a Flash developer, then pretty soon you’ll be able to develop applications (web or standalone) targeting Flash Player 10.1 and AIR 2 on a huge number of devices (laptops, net books, desktops, mobile phones) and across different OSs (Win, OS X, Linux, Android, Symbian, and Palm OS).
Of course the number and diversity of the targets are impressive, but what I think is even more important for any developer/business than this, is that you can use the same workflows/tools and produce a consistent result.
I’m lucky enough to have a Nexus One for about a week by now. Testing different sites that use Flash Player, it feels kind of magic :D (as a Platform evangelist I have an early version of Flash Player 10.1 installed on the phone). Can’t wait to have the time to write some apps for Android, I have a couple of ideas. This means I will have firsthand experience in using our tools to produce apps for the mobile world.
What about you? Anyone feels like it is time to step up into a new market/world (from web/desktop apps to mobile)?










Android & AIR
PHP & Flex