Archive for January, 2009

AIR Passes 100 Million Installs

Today at Adobe MAX in Japan, we shared some great news about the expanding reach of the Flash Platform. We announced that Adobe AIR has been installed over 100 million times. Also, as of December, Flash Player 10 was installed on 55% of computers worldwide. Flash Player 10 is breaking all previous records for rate of adoption for Flash Player, and we expect greater than 80% penetration by the second quarter of 2009. The Milward Brown survey has details on the methodology used to determine the Flash Player penetration.

Adobe AIR is not included in the Milward Brown data yet, so I thought it might be helpful to explain our methodology. The number we announced is the count of successful initial installations of Adobe AIR — this provides a minimum for the total install base of the AIR runtime.

Update:

Why does Adobe talk about installation numbers?

Our developers regularly ask about installation numbers because they are concerned about how quickly someone can install an application and begin using it. Having the runtime installed ahead of time makes that easier by making the download smaller and the download time faster. This the same reason that we focus on keeping the Flash Player very small, and why new versions are adopted so quickly.

What do we mean by "successful installation?"

Software installation can fail during download and also at installation time, so we only consider an installation to be successful when it can be confirmed by code running after the installation has been completed.

For example, the majority of AIR runtime installations occur at the time the first AIR application is installed by a user — usually through the use of an "install badge" using AIR’s seamless install feature. An install badge detects whether the runtime is installed on a user’s system before attempting to install the application. If the runtime is not installed, it will be downloaded and installed before the application is installed. In most cases, a user usually launches the app once the installation process has been completed. Once the application is launched, the AIR runtime checks on start-up to see whether a new version of the runtime is available. This request confirms that the runtime was installed correctly and that an application has been launched.

One thing the number of successful installs does not tell us is where are all the installs are coming from. Some are coming from people who come to Adobe.com to download the runtime, but the vast majority are being driven by great, popular applications. Some of the most popular include:

Are there others? We’d love to know about it. If you don’t mind sharing — put a link to your application below and let us know how many people have installed it…

Update:
We’ve gotten a few requests for more specifics around badge installations, so I did a little more digging into the data. Over 30 million installations have been of applications delivered via AIR badges. That means a lot of people are also downloading applications without using a badge. In some instances the runtime and application are offered separately — such as Pandora Desktop and finetune. In other cases, the application and runtime are bundled within another application, such as Creative Suite 4, Adobe Reader, or raptr.

Build real-time social apps using Adobe AIR, Flex and the Cocomo Beta

cocomo.png

Adobe made several announcements at MAX a few months back related to new projects that were in the works. One of the projects announced that I thought was particularly compelling for AIR developers is code-named "Cocomo." To help provide some additional insights into Cocomo, I sent Nigel Pegg, senior engineering manager on the project, a few questions over email.

Rob: Hi Nigel. First question — what is "Cocomo"?

Nigel: Cocomo is the codename for a new Platform as a Service that lets Flex developers easily add real-time social and collaboration features to their applications… OK, that was a pretty "markety" sentence. In real-life terms, Cocomo is:

  1. A framework of client-side components for Flex that make it easy to build real-time multi-user apps. This includes really high-level components like full-on multi-user whiteboards, chat, etc, as well as foundation classes for building your own features, like data messaging classes and webcam and VoIP pubsub components. We’ve baked a lot of solutions to common problems into the framework, like user roles and permissions, room management, reconnect/failover, persistence and more.
  2. A service, hosted by Adobe, which acts as “the pipe” that connects your users. The client framework and the service work seamlessly together and because Adobe is hosting it, it means that the operations problems like availability, capacity, deployment, and maintenance are taken care of by Adobe. Cocomo is currently in beta.

Rob: Why should AIR developers care about Cocomo?

Nigel: They should care because it provides a way for AIR developers to build new classes of applications. We believe that the general progression of the Internet is making real-time interaction commonplace. Social features are already becoming a staple of a lot of applications on and off the web, but these are still largely asynchronous. We think that bringing social immediacy to applications, via features like live voice and video streaming as well as real-time collaborative workflows, can make applications that much more effective and compelling.

The other reason they should care is that it takes a lot to get this sort of thing right. The fundamental technology for building these kinds of features with Flash or AIR has existed for a while, and yet you don’t see as many applications as there could be out there. And we believe a big reason for that is that it’s hard to develop for, and even harder to deploy and maintain. The folks on the Cocomo team have decades of combined experience building apps like Adobe Acrobat Connect, as well as tons of experience building component frameworks. We spent a lot of time refining the framework, and so far the feedback has been really outstanding – people are building things in a weekend that would have taken weeks before. More importantly, developers are starting to try things they otherwise wouldn’t have bothered with, because the barrier to entry was just too high. The risk/reward is much more in developers’ favor now.

Rob: What are some examples of applications people are building on it?

Nigel:
We’ve been in public beta for around two months now, so we weren’t really expecting a huge amount of activity yet. But it’s been pretty surprising how much has been happening. For example, Acesis has taken its AIR application for medical peer reviews and added the ability for doctors across the country to perform these reviews together in real-time, without having to leave the application or travel to meet each other. We have a bunch of companies building some really exciting stuff, still early going. One company is building long distance learning where the teacher is able to interact with the students using peer-to-peer voice. Another is working on an online gaming site, where webcam streaming and voice are crucial to the gameplay.

 The developer community is really starting to pick up and run with it too. We’re working on an application “gallery” so all our links will be in one place, but check out multiplayer Sudoku: “Sudocomo”. Also, ShareFlickr is pretty cool; it lets you co-browse Flickr slideshows. And for the “what-the?” factor, you can’t beat the Cocomo-enabled Wiibot.

Rob: How to developers get started?

Nigel: It’s really easy. Literally minutes from getting an account, you’ll have your first app built and running. The Cocomo homepage has a bunch of resources to get started. Another way to get started might be to check out this blog post where you can find a link to an article from Ryan Stewart, the Cocomo Developer’s Guide, and links to several AdobeTV videos from my MAX sessions that have a lot of supporting information as well.

Rob: When will it be shipping?

Nigel: We’re currently in public beta, which started in November of 2008. We have a little ways to go yet. Rest assured that the Cocomo team is moving as fast as possible to get to a commercial launch. We are aware that depending upon the entity (e.g., enterprise, government, ISV, individual developers), service requirements such as support, compliance, and uptime may vary and we are discussing approaches to addressing these requirements. In addition, we recognize that developers expect flexible and predictable pricing and soon we’re going to start sharing our proposed pricing model with the community. If people want to stay up to date, follow the Cocomo team blog and my twitter stream includes Cocomo updates as well. Lastly, if anyone has questions, the Cocomo forums are the best place to reach the team.

Rob: Thank you, Nigel!

75 New Adobe AIR JavaScript Code Samples Available

Adobe platform evangelist Kevin Hoyt announced on his blog that he has made available the source code for 75 Adobe AIR code samples built using JavaScript. This is a fantastic way to get up to speed on AIR’s API’s. Real world examples include how to:

  • Access text files synchronously
  • Access binary files synchronously
  • Access the clipboard
  • Add drag and drop support to your application

To get started, download the sample files as a .zip or .air file from his project site hosted on Google Code.

ActiveRecord JavaScript Library Announced AIR Support

Ryan Johnson of Aptana announced the beta version of ActiveRecord.js, an open source JavaScript library that implements the ActiveRecord pattern popularized by the Ruby on Rails community. In addition to supporting Adobe AIR, it provides support for other JavaScript application runtimes including web browsers. On the server-side, ActiveRecord.js also works with MySQL and SQLite via Aptana Jaxer, the Ajax server based on the Mozilla browser engine. Work is underway as well to support HTML 5’s SQL APIs, now available in some versions of WebKit, once that specification is finalized. 

For developers creating Ajax applications using Adobe AIR, this means they can persist JavaScript objects and data using pure JavaScript syntax. All the underlying SQL commands are simplified into higher level APIs that are more natural feeling for JavaScript developers. In many cases, the syntax results in far fewer lines of code to implement as well. 

There is an Adobe AIR sample application provided with the project that demonstrates a basic example of the ease of use. 

active-record.png

As shown below, it takes one line to connect ActiveRecord.js and a few lines more to define a record object, in this case Note.

      ActiveRecord.connect(ActiveRecord.Adapters.AIR);
      
      Note = ActiveRecord.define(‘notes’,{
        body: ”,
        created: {
          type: ‘DATETIME’
        }
      });
            
With the Note type record defined, getting a collection of records is a easy as Note.find() as shown below.

      window.onload = function(){
        //display all existing persisted notes
        var notes = Note.find({
            all: true
        });
        for(var i = 0; i < notes.length; ++i){
            display_note(notes[i]);
        }

Note.create() not surprisingly adds a new Note record.

        //form logic to create new notes
        document.getElementById(‘add_note_button’).onclick = function(){
          var note = Note.create({
            body: document.getElementById(‘add_note_text’).value
          });
          display_note(note);
        };
      };

Perhaps the most verbose part of the sample is where it directly updates the user interface using native HTML DOM APIs. Of course, this could be further simplified by using jQuery, Dojo Toolkit, Ext JS and other popular Ajax libraries. ActiveRecord.js is intended to complement, not replace, the use of other Ajax libraries. 

Aptana has also put a .project file into the source repository for this example to make it easy to import into Aptana Studio and run this with the Adobe AIR Development Plugin. Since the project contains JavaScript files, you can also use Dreamweaver or any other text editor to view it as well.

Related Links:

Popular Science visits Adobe AIR team

In the December issue of Popular Science AIR was awarded a “best of what’s new 2008”, and yesterday they came by to actually give the team the award. We’ve got a lot of Popular Science readers on the team, so it was a lot of fun to meet some folks from the magazine — and see Adobe AIR in print. Here’s Ed Rowe receiving the award from Wendi Berger, Associate Publisher:

PopularScienceVisitsAdobeAIR.jpg

Like many of you, we work on a distributed team — along with Ed are a bunch of members of the AIR team in San Francisco and the screen in the background includes has some folks in San Jose. Folks in Romania and India weren’t able to make it to the event, but have also been key to AIR’s success this year.

On screen (l. to r., t. to b.):
Mas Kagita, Juan Gutierrez, Jose Wong, Hitomi Kudo, Ted Zeng, Vincent Lee, Kevin Chow, Eric Simenel Sharon Chau, Ann Garrido-Nakagawa, Lawrence Lai, Frank Stokes-Guinan

In front:
Ethan Malasky, John Graziano, Chris Thilgen, Kiran Maiya, Steve Minns, Michael Pruett, Alex Mohr, Jason Williams, Jeff Swartz, Rob Christensen, Alex Alvarez, Jason Graham, Erica Norton, David Knight, Arno Gourdol, Paul Robertson, Wendi Berger, Alex MacDonald, Doug Rapp, Aaron Filner, Ed
Rowe, Chris Brichford, Adrian Ludwig

Not pictured:

California Team: Oliver Goldman, Arjun Urs, Brent Rosenquist, Christian Cantrell, Daniel Valencia, Stan Switzer, Shad Ahmad, Lisa Chao, Subha Subramanian, Steve Horvath, Joe Ward,

Romania Team: Alexandru Costin, Dragos Georgita, Raul-Nicolae Hudea, Alexandru Chiculita, Marius-Andrei Loana, Mirela Budaes, Horia-losif Olaru, Mihnea-Vlad Ovidenie, Tudor Muscalu

India Team: Aniket Ray, Ashutosh J Sharma, Gaurav Khurana, Romil Mittal, Priyank Choudhury, Damanjit Singh, Rahul Rohilla, Rohit Kewlani, Srijesh Kumar, Syed Mohd Mehadi, Sundeep Maithani

Sam’s Interactive Reader for children powered by Adobe AIR

The team at Storybook Anytime has recently released several major updates to their popular Sam’s Interactive Reader, a child-safe, downloadable application that allows children to discover the fun of reading and learning through interactive media. The application includes a growing catalogue of interactive content for children ranging from three to nine years old. Content is priced anywhere from free to $2.99 and can be purchased through the embedded shopping cart. It’s possible to purchase gift cards through the website. Recently, the team localized its interactive content to Spanish as well.

From a development standpoint, there are many ways the team behind this application interacts with their user community. In addition to having a Facebook application called Sam’s Fish Bowl that synchronizes data with their AIR application, the development team also maintains a blog and a Twitter account. Also, the team provides its library free of charge to pre-schools, libraries and elementary schools. Congratulations to the Storybook Anytime team for their recent releases! The application, powered by Adobe AIR, can be downloaded from the Sam’s Interactive Reader website.

sam1.jpg

Sam’s room is the launching point to other parts of the application such as activities, interactive stories and the catalogue.

sam2.jpg

The catalogue is where users find new content to purchase and download.

sam3.jpg

"There’s a Fish in My Bathtub!" features colorful images and audio.

sam4.jpg

The application supports for gift cards that can be purchased through the website.