Context-aware applications
Posted by Mark Doherty in Flash Player, iphone on March 3, 2010
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.
FindMe
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!
Helisso – A Packager for Symbian devices
Posted by Mark Doherty in Android, Devices, Distributable Player Solution, Flash Lite, Industry News on March 3, 2010

As some of you know, learning about AIR, AS3, Flex, Flash Catalyst, Flash Builder has been my side-project for a few months now. As I mentioned in a previous post, it is essential to prepare for the future and invest now in learning new skills.
For me, the best way to learn new things is to create a project that’s difficult, yet cool enough to keep you interested. So my first few steps revolved around learning how to use Fireworks, then Flash Catalyst, Flash Builder and ultimately distribute an application using Adobe AIR.
AIR 2.0
One of the amazing new features of AIR 2.0 is the ability to embed and execute native code from right inside Actionscript, an API called NativeProcess. This means that you can safely run existing services over the command line, as well as install your own native service components. AIR 2.0 is in beta right now on Adobe Labs, and is mobile ready as designed so it’s a great time to get started.
So what would a Platform Evangelist for mobile and devices create?
Introducing Helisso
What is it?
- A packaging utility that can produce SIS packages for Symbian devices
- It targets the Flash Lite 3.x runtime for Nokia’s S60 devices
- It runs on PC and Mac OS, all versions
Details
- The tool has embedded Python binaries inside, compiled versions of “Ensymble“
- For signing purposes the tool also includes OpenSSL for certificate signing
- It is unsupported and without warranty
How do I use it?
How do I install it?
I have been hugely impressed with the capabilities provided by AIR, in this only my first AS3 project. Looking back on all of the technologies that I have used has really got me excited about AIR applications on Android, and even sprouted a few iPhone applications in advance of that. Seriously, imagine having all of the power of AIR and this toolchain on mobile phones?
Lastly, a big shout out to Steve Hartley of Oppian, Jussi Ylänen creator of Ensymble, without whom this wouldn’t have been possible.
Flash Player 10.1 – Installations and updates
Posted by Mark Doherty in Android, Flash Player, Industry News, Mobile World Congress, Palm on March 2, 2010
Flash Player 10.1 will become available in the first half of 2010 for all supported platforms. In fact, the desktop beta 3 is already looking incredible and proving to be a huge hit with developers testing their content.
One of the most important parts of our work with our Open Screen Project OEM partners is to enable the seamless discovery, installation and update of Flash Player 10.1 on device platforms. I know that some have asked questions on this, and so I’m glad to bring you some responses, if a little late.
Extending the reach
In the “marketecture” diagram below you can see that Flash Player 10.1 is extending it’s platform reach, doubling it in fact. It’s worth noting that recent reports around minimum spec’s for Flash Player 10.1 are alluded to here also, because working with our partners, we are targeting the latest chipsets available.
To explain, smartphones have a typical lifespan that is less than half that of a desktop computer, and so hardware choices are made by planning for the future. Over the past few years we have shipped over 1.5Billion devices with Flash Lite using this simple rule.
Therefore the choice to target the ARM Cortex-A8 chipsets will result in greater efficiency, and most importantly a wider range of consistent experiences as uptake grows. To be clear, that uptake is already happening, and it will expand rapidly just like it does every other year.
It’s like a Moore’s Law of mobile phones
Yet some devices will not be able to support the full Flash Player 10.1 due to low hardware capabilities, and for many of those devices we have a new version of our optimized runtime, Flash Lite, to fill the gap. In fact the alpha version has already been spotted running Farmville on Android Eclair here.
Driving the Distribution
![]()
Working with our OEM partners we have enabled the Flash Player to be installed in a manner consistent with the desktop experience. When visiting websites that have Flash content, users can click on the “Flash Player required” images/links provided by content developers to begin the installation process.
As with the desktop, the browser then redirects to the Flash Player Download Center, and in the case of mobile phones we pass these requests to the requisite device application stores such as the Android Market. Today’s application stores have extended abilities to correctly identify devices, and to manage the update of applications and plugins like Flash Player. Users can of course visit their application store directly if they wish.
In addition, those users purchasing new devices from a retailer may already have Flash Player pre-installed, made available in over-the-air software updates or through the browser directly.
Delivering Enhancements
As with the desktop install process, with each version of the Flash Player various updates are applied throughout it’s lifetime to ensure a high level of quality. Users can expect these updates to be provided automatically on some platforms via their application store update process, as well as through over-the-air software updates.
In the example above you can see the update notifications that users are familiar with on Android devices, and it is expected that this will be used for Flash Player 10.1 during it’s lifetime. Though I should point out that Nokia have been providing their own update mechanism, directly in the browser for some time now with a huge user uptake.
During the past few days Palm have also begun to lay the ground for Flash Player 10.1 support by delivering their software update.
Player Detection
On the desktop today developers use a combination of methods to detect the Flash Player and version. Recognizing the need for a consistent approach, these same methods can be used on mobile phones in the future. Adobe recommends SWFObject2, an open source project that provides cross-browser support. It is also supported fully within our Creative Suite tools. SWFObject works across browsers and device platforms to detect the Flash Player and it’s version. Should an update been required, the tool can enable the ExpressInstall experience or provide fallbacks as required.
Historically I know some have invested considerable time and energy in device databases such as WURFL, which helped us to accurately distribute application installers to devices. With Flash Player 10.1 we need only be concerned about the browser use case, and so I would argue that we do not need to continue this effort long term.
I hope this information will help you build a picture of the huge efforts that our engineering and product teams have made. The mechanisms for discovery, install and update of the Flash Player 10.1 are a fantastic achievement, even though for some of you these may seem rather obvious.
With the Open Screen Project partners we are literally changing the ecosystem, enabling a more complete and consistent web experience on devices, and driving the industry forward with the Flash Platform in 2010.
Acrobat Connect Pro is now on the AppStore
Posted by Mark Doherty in Flash Player, Industry News, iphone on February 25, 2010
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.
Features:
- 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
Posted by Mark Doherty in Android, Flash Player, Palm, iphone on February 24, 2010
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, blip.tv 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 tv.adobe.com achieves better performance in the real world.
The resulting battery usage is a mere 6% for the Browser which totalled 199Mb of data received:
Update:
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.















Recent Comments