Archive for category iphone

Context-aware applications

As part of a recent video recording session I created a Geolocation API example, this was to demonstrate just how simple it is to add Context-awareness to your applications.  Now context-awareness is something that I know quite a bit about, it was actually the subject of my dissertation.  Back then I created something called “BlueSpot”, which was a language and Server->Mobile Client system that would provide contextual information and learn about you over time.

In practice the idea was quite simple, shops, Bus Stops and even your own home could begin to channel information about you and act accordingly ok ok, it was about mobile advertising.

The idea came from a paper called Context-aware computing applications (Schilt 94), and after reading that I decided to build a context-aware application for mobile phones.

The example that I created was centred on a record store that could send messages to you about your favourite artist, and yet generic enough that a bus stop could learn your route and ensure that you get to work on time. Context-awareness, I wrote: “is the sum of inferences derived from physical, temporal, emotional needs mixed with intention”.  Admittedly I didn’t really know what I meant at the time, there were simply no real-world examples around.

Though let’s break it down..

Example: Matt’s heavy night out

  • Matt arrives home at 3am having had too much to drink on a Thursday night
  • Like most people in the UK, Matt is in the office normally by 9am
  • On Friday he doesn’t have that much to do in the morning

So how would a context-aware application help out?  Well given a bit of fine tuning over time, you can imagine that a context-aware application might be able to wake Matt up a little later on Friday.  It may even have ordered a cab, or sent a lovely excuse email to the boss while Matt slept in.

“Hi, I’m stuck at the dentist for an hour this morning.  Matt” – Obviously the app would change “dentist” for a suitable, fresh, excuse each time 😉

Context can be fun and engaging, and it can also be extremely useful.  Contexutal awareness (location specifically) has been used in numerous court cases here in the UK, namely the Omagh bombings and in solving the murder of Damilola Taylor.

New devices, new Contexts

With our continued drive to bring the full Flash Player 10.1 and AIR to devices, including desktops, netbooks, tablets and mobile phones you can imagine new sets of contexts appearing.  Arguably this could just mean that we’re moving away from consolidated devices with all features, yet consolidation is still happening.  In real terms therefore, your mobile phone will have a camera, but it’s unlikely to be your camera of choice for certain contexts.

Applications are moving in much the same way, we’ve seen a trend towards the availability of information across screens and on different devices.  That said, these applications are going to be created with their context in mind.  So we do need to extend the vision for context-aware applications to include the device, it’s characteristics, and the human interface guidelines set out for the experience.

Google’s Eric Schmidt unveiled the new Google mantra at the Mobile World Congress of “Mobile First”, clearly a sign that creating applications for use in the mobile context will ultimately create better applications that scale across connected devices.  It is in fact the same goal as the Open Screen Project!

Ultimately, context-awareness is not about moving a few buttons around, cutting down on a few components and resizing videos.  It’s about understanding your users, addressing their needs in the context of the moment and enabling them to gain access to your content from any (relevant) screen.

This is the reason that we added Geolocation APIs to AIR, iPhone and FL4, because location is a key part of adapting to the users context.


So hopefully that little introduction has sparked some imaginative ideas around Context-aware applications.  To that end I have provided below a little example application called FindMe.  It doesn’t do anything that special, but shows you a Google Map of your location and then allows you to search for places.  To use it you’ll need to get a Google API Key.

You could extend it to track your position over time, or maybe guess where you are based on your past history?

The idea is to get started and learn how to produce applications for users in different contexts, and it would be great to see your ideas and results!


More Info

Belorussian translation


Acrobat Connect Pro is now on the AppStore

One of the tools that I use almost every day at Adobe for screensharing, video conferencing and presentations is called Acrobat Connect Pro.  It has been around for quite some time and today it’s used globally by organizations to help reduce the travel burden, as well as enabling teams to work together.

Today it is available for the Mac and PC and is created using the Flash Platform, with the addition of some extra features for screen sharing built into the Connect Addin for the desktop.

The great news is that yesterday the team launched their first version of Connect on mobile devices, starting with the iPhone.  It is available for free now on the AppStore, although of course you will need an account and you can sign up for a 30 day trial for free over here.


  • Attend Connect Pro Meetings with integrated conference call or Voice over IP audio.
  • See who has joined the meeting, and their role (host, presenter, or attendee)
  • View presentations, PDF documents, videos, and screen sharing provided by the meeting organizer.
  • Rotate, pan, and zoom to choose your personal ‘best view’ of shared content
  • View webcamera broadcasts from unlimited live camera feeds provided in the meeting
  • Participate in Chat conversations throughout the meeting.
  • Join meetings attended by users on virtually any computer system: Mac, Windows, Linux, Solaris and now iPhone.

Built using Flash Professional CS5

Acrobat Connect for the iPhone was created using the Adobe Flash Platform, and specifically with AIR 2.0 APIs.  The team were able to create their contextual application using Flash Professional CS5 and simply package the application using the upcoming tool!

I know that many of you have wondered about building out complex applications such as this, and so I think this is a great demonstration of what you can achieve using both AIR and the new Flash Pro tool.

In addition, we have already shown Acrobat Connect running on Android devices and that was achieved by simply repackaging the code.  The team made some great choices with regards to their design that have made it possible for the UI to lay itself out dynamically for different screen sizes and orientations.  Some of the mobile developers among you will probably have played with these concepts before, and the rule has always been to ensure that you bake these into your design and development from the start.

As you can see the experience is really fluid and great for the end user.  I’ve been able to connect seamlessly to the Connect session and broadcast my iTunes library in coverflow view :-)


Battery Performance with Flash Player 10.1 on Nexus One

It appears that there has been some confusion from the community at large surrounding battery performance. This was caused by my colleague Michael Chaize publishing an amazing video of Flash Player 10.1 demos on Vimeo.

Bloggers from Daring Fireball and Macgasm have spent a little more time than expected studying the battery indicators, as opposed to the incredible advancements in web browsing for mobile phones, netbooks and tablets.  To be clear, the battery indicator changes being discussed are a function of video editing and Android design.

Typically these indicators are 4 step graphics, so the indicator will drop by one step for every 25% battery used. If Michael shows his phone with 50% full then this could be 51% in reality, using ~2% would then appear like a 25% loss. It’s just a graphic, and below Michael has provided more concrete results from the phone management UI.

That said, let’s look at some mobile facts for fun.

Mobile phones are complicated mini-computers with extremely complex chip designs all working to produce a rich experience with maximum efficiency.  It should be no surprise that using 3G, WIFI, Bluetooth, GPS or leaving a browser window open and showing even basic HTML can drain your battery.  Additionally, distance from a cell tower is also a potential pitfall and some the travellers among you will note differing battery life in various cities, countries and networks.

For many years we have been working within these constraints, probably without many of you realizing it.  Remember that our mobile optimized runtime Flash Lite (shipped on over a Billion phones) and has been used extensively for User Interfaces on mobile phones from Samsung, Sony Ericsson and LG, so this is something that we know quite a bit about.

During our testing of Flash Player 10.1 we have baseline tests against the following use cases (among others), and using a multi-meter to ensure that your content runs with acceptable battery consumption.  We’re also testing against the web on sites like youtube, and others with great performance reaching to hours of playback on the Nexus One.

Here are the actual combinations of test scenarios carried out at our offices, of course the real world result for you will be different:

  • Idle – No 3G, Wifi, Bluetooth, IR
  • Idle – No 3G, Wifi, Bluetooth, IR + backlight ON
  • 3G enabled – Wifi, Bluetooth, IR off
  • WIFI + vanilla HTML.   ‘simple.html’
  • 3G + vanilla HTML.   ‘simple.html’
  • 3G + vanilla HTML file + swf:  ‘simple-swf.html’

To demonstrate battery performance on the Nexus One here is a recording of a large movie playing on Youtube.  It lasts for some 17 minutes with little effect on the battery indicator, and just to ensure fairness I have included the battery usage chart data from the Android OS.  Our own tests show that video can be played for well over 3Hours over WIFI from youtube in H.264 (Baseline 1.2).

Note – This data is for a single website, below you can see that achieves better performance in the real world.

The resulting battery usage is a mere 6% for the Browser which totalled 199Mb of data received:

My colleague Michael Chaize has also completed his own tests shown below. In addition to my own basic test he demonstrates the ability to play videos and gaming for over 4 hours and five hours respectively.

Content Optimization

Without optimizing your applications, Flash or otherwise, they can perform badly on any platform this is 101 for any software developer.  Our investments with Flash Player 10.1 and AIR are designed to provide the best possible results for the majority of existing content for web enablement on devices.

However, all of us will have to consider the user experience for our new mobile users and test effectively.  Those of you that have created native or Flash Lite applications will know some of the tricks of the trade already, but nothing beats practice and real-world testing.

Thibaut (from the video above) has in fact written a fantastic document to lead you through the first steps in optimizing your content.  Most of this is applicable to any of the Flash Platform runtimes, and certainly the desktop/AIR/netbooks/tablets etc.

Mike Chambers has also completed a great study on the Touch and Mouse events, and in particular how you can begin to optimize your content for this huge array of new platforms; and ultimately customers.


Mobile World Congress 2010: Roundup

I arrived back from this years Mobile World Congress far more exhausting than normal, hence the complete lack of blogging during the event; apologies for that.  So here I will aim to roundup the various announcements and hopefully add to the huge amount of blogging and articles written during the event.

In general this years event had a more positive mood with attendees and exhibitors all looking to the future of mobile and devices.  New this year was the inclusion of Tablet and Netbook devices in the show many of which use the same hardware as high end smartphones.  Our goal is to enable the Flash Platform to extend to these devices too, and so it should be no surprise that we had many partners previewing Flash experiences on their hardware, more on that later.

Open Screen Project Update – “Connecting Developers with Consumers”

At the conference we announced that we now have some 70 partners, with new additions like Burda Group, RTL, Stern, Addicting Games and EPIX on the content partner side.  New technology partners include Freescale, MIPS, Vizio, Symbian, Imagination Technologies and Sonic.  In terms of scale we have created one of the largest initiatives in the mobile ecosystem to build a foundation for the distribution of the Flash Platform across devices.  Of course for the community much of this will appear like marketing, but rest assured that there are many hundreds of engineers working globally to bring Flash to a huge array of platforms.

As we begin to wrap up the Flash Player integration efforts our focus has widened to include enablement for web content.  In total we’re working with over 140 content provider partners, owners of the largest and most popular sites that use Flash today.  At MWC 2010 we showed applications and websites optimized for mobile viewing from the following:

Animation – Angry Alien Productions

Branded – AOL Mobile, BBC iPlayer, ESPN, Sony Pictures, TBS, TNT, Warner Brothers

Gaming – Addicting Games, Armor Games, Kongregate,,, South Park Studios

News – BBC News, The New York Times Reader App, The Wall Street Journal Online

Video – AlloCiné,, AOL Moviefone, Canoe, Dailymotion, Disney, Epix, GMX, IGN, Kid Rock (Atlantic Records), Lavanguardia, National Geographic, Mobile YouTube, Studio1290 Mobile, STV Player Mobile, Ustream, Vimeo, Yahoo! Movies

As you can see the list is HUGE and this represents a small part of the overall efforts to bring the full web to devices using Flash Player.  For the Open Screen Project to be truly successful we need our content providers and developers to play their part, as you can see, this effort is very much underway.

Of particular note we also joined the LiMo Foundation to deliver the Flash Platform on their Linux based devices.  It’s an exciting announcement because it demonstrates that the Open Screen Project and other industry initiatives are aligned with a goal to the delivery of consistent and open platforms for developers and consumers.

Flash Player 10.1

On our stand at the Mobile World Congress we showed a beta version of Flash Player running on the Motorola Droid, Palm Pre and the Google Nexus One.  The applications above were running incredibly well and attendees were very impressed with the performance and fluidity of the experience, Flash was built for the web and on devices it just makes sense.  The most important addition to the mobile experience was the ability to playback Flash content in full screen mode, enabled by these powerful webkit browsers.

Of course the fun part for attendees was in visiting their own sites to understand the sheer power of the new player.  In all, the thousands of attendees that visited our stand were extremely excited about being able to browse more of the web on their devices.  For many the call to action was “How can I get started?”, well Thibaut has been crafting a great set of resources with our engineering teams here.  The first step however is to create a plan of action, begin to plan a suitable user experience for mobile devices; and in particular those based on touch.

With Flash Player 10.1 we have worked to enable the same web content to run using less memory, yet with higher performance.  The results are really incredible and should see a significant improvement, not only for the mobile devices but also for desktop computers and application running on Adobe AIR 2.0.  Remember, we can only do so much and as a Flash Developer you have a role to play in ensuring that your content works well on these new devices.

For fun, my colleague Michael Chaize has created his own tour of the web on the Nexus One, he even pushes out all the stops by visiting a site based on Papervision!

In terms of availability we have required some significant patches to Android and to the Web OS to support the installation of the Flash Player over-the-air.  We expect these new updates to become available soon to end users, at which time the Flash Player will become available either via their respective Application Stores, within the software updates or both.  In either case the installation of the Flash Player will be seamless and ongoing we expect to see significant traction as we move forward.

Adobe AIR on devices

One of the big pieces of news at Mobile World Congress was the announcement of Adobe AIR on Android, and the tie-in with our Adobe Packager for the iPhone.  At MAX 2009 we demonstrated the creation of iPhone applications using the upcoming Flash Professional CS5, and the twist is that these applications are based on AIR 2.0.  To demonstrate the possibilities we showed some of the same applications created in Flash Professional CS5 that are available on the AppStore today, running on Android devices using Adobe AIR.  The workflow couldn’t be simpler, it’s simply a repackaging effort with a little UX tweaking for basic layout and hardware capabilities.

Here is a nice video from Kevin Hoyt showing off Adobe AIR for Android:

Write One Run Everywhere? – In many ways the answer is yes, given a few measured choices.  We have made it fantastically simple to reach across devices and platforms with Flash and AIR, and so the same code can now run on a huge array of phones, desktop computers and consumer electronics.  Using the same assets and principle it will be extremely simple to tweak applications for varying screen sizes, input methods and user experiences.

So now our “marketecture” diagram for Applications looks like this (2010 is on the right):

Note that I’ve called out iPhone OS separately, this is because you will be required to use Actionscript 3 to target the iPhone. Once you package an application it will not be possible to process additional SWF files containing actionscript, such as those stored on the web, due to Apple’s restrictions around interpreted code.

Android, by comparison, is totally open and AIR runs beautifully on the platform; and dare I say a little faster on the Moto Droid, a device with iPhone 3Gs hardware. We plan to bring AIR to Android devices later in the year, and in the meantime you can get started by creating you content for Flash Player 10.1 for the desktop.

When Flash Professional CS5 comes to market you will be able to create iPhone applications that can easily be packaged for Android!


Flash Applications running on the iPhone

Screen shot 2009-12-01 at 12.52.55 PM

Lee Brimelow has posted a great video tutorial on iPhone development using the upcoming Flash Professional CS5 over at  In the video you can see just how easy it is to produce an application that uses the accelerometer.  On top of that he shows some incredible demos of GPU surface caching at the end after the compilation step.

If you’re in the midst of learning AS3 for the future then I suggest going through his video series.  Lee is a great presenter and you can get some inspiration for your first AS3 project to boot.

, ,