PhysicalFoursquare – A Flash Player 10.1 Demo App Using the Foursquare API

As you’ve seen, we’re getting close to having a version of Flash Player 10.1 that will be available to the broader public. And a lot of the evangelists have been creating some cool demos of how Flash Player 10.1 behaves on the Nexus One.

I wanted to do something slightly different and build more of a functional application.

I come from a Flex background and so I haven’t spent a lot of time creating ActionScript only projects. And while Flex performs pretty well on Flash Player 10.1, doing an AS3 only project gives it a better shot at running, especially as the application gets more complex. So I went with ActionScript only and created an application that uses the foursquare API as well as the Geonames database to find and let me check into physical features like mountains, streams, and lakes when I’m out hiking and want to still be able to check into foursquare.

Thoughts on Building for Mobile Flash

As you’ve seen, a lot of Flash content will just work. And because of the AIR for Android packager, a lot of people will just end up building applications and not worry about creating in-browser Flash apps for mobile devices. But I wanted to try it. A few thoughts:

One, the Flex mobile framework can’t come soon enough. I have so much more respect for the old-school Flashers because rolling everything by hand is a pain. And I had it easy because I was dealing with a fixed resolution since I was specifically targeting the Nexus One.

Two, while I didn’t do much in the way of performance tuning, that’s going to be important. These are pretty beefy devices and we’ve done some great optimizations, but for complex Flash content, tuning your code will be central to a good experience.

Three, as Mike Chambers showed, hover content works, but I found it kind of annoying. The way it’s currently set up, the hover event fires after the down event fires. So using SimpleButton the way I normally use it didn’t quite work because the effect was off. I ended up just making the hover state the same as the down state.

Lastly, I was surprised how much just worked. I pulled a LOT of third party content into this application. Keith Peter’s Minimalcomps, the foursquare AS3 API by Tim Walling, my own AS3 library for Geonames, the Google Maps API, TweenLite, Shannon Hicks’ OAuthAS3 library – and it all worked just fine. Part of what I wanted to test was how much I could throw at the device and I was pleasantly surprised by how well it all worked even on the beta bits of Flash Player 10.1. So when you target these devices, you’ll be able to use a very similar workflow, which I think is important.

To see the application in action, you can check out the video above or test the application in your browser here. You’ll need to have a browser like Firefox 3.6 that supports geolocation and if you check in you’ll be checking in this poor guy. All of the code is available on GitHub and you’re free to do with it what you will. Unfortunately my OAuth implementation was half-assed, so the foursquare checkin didn’t work, but it works in the browser.

Flash Player and Chrome Sitting in a Tree

TechCruch just posted about the news that Adobe and Google are going to be collaborating a bit around Chrome and Flash Player. The basic gist is that Chrome will start integrating Flash Player directly into the browser so that users will always have the most up to date versions and anyone who downloads Chrome won’t need to also install Flash Player. I think that’s good, but the much bigger news in my opinion, is that we’re working with Chrome and Mozilla to revamp the plugin architecture. This has huge implications.

We’ve been using an old-school plugin model for a long time. In fact NPAPI, the plugin interface, stands for Netscape Plugin Application Programming Interface. And as the Wikipedia entry states, it’s so sucessful because it’s so simple. The API basically lets plugins associate themselves with a content type (like a SWF file) and then puts that plugin in charge of all the rendering. There’s not a lot of integration between the plugin and the content in the browser, which means the plugin lives in its own little world and it’s tough to break out. You can do things like ExternalInterface but it’s still pretty hacky.

But under this new plugin model, we’ll have much closer integration at the browser level. There’s a great summary of what this means at the Chromium blog:

Improving the traditional browser plug-in model will make it possible for plug-ins to be just as fast, stable, and secure as the browser’s HTML and JavaScript engines. Over time this will enable HTML, Flash, and other plug-ins to be used together more seamlessly in rendering and scripting.

Think better access to the hardware APIs via this new plug-in model, better access to the DOM, and a generally much better, more stable experience. Flash Player in the browser has always felt a little like a black box largely because of the constraints in the plugin model. Certain things didn’t work quite as you’d expect in a regular HTML site. Hopefully this changes that. In theory this could make it possible to use the save-password feature with your Flex/Flash apps, or make Flash SEO a lot easier, and it allows us to innovate around HTML-Flash integration. If you’ve used AIR, you’ve seen what’s possible when you have complete control over both technologies. This new plugin work makes that easier to do across all browsers that support it. I don’t know when/if we’ll see it, but it’s easier now.

Another benefit is that the API is going to be OS and browser neutral so you won’t see such wildly different performance on different platforms. The hooks that we can use to make the browsing experience better will work across all of the browsers that support the new plugin across all of the operating systems.

On Google, YouTube, HTML5, Adobe, and Flash

Last night Google blogged about how they were experimenting with offering some videos on YouTube that support the HTML5 video tag and the H.264 codec, and that work in Chrome and Safari. This is part of TestTube, where YouTube’s engineers test out different products without rolling them into the main YouTube experience. YouTube and Flash obviously have a deep relationship. It was Flash that helped YouTube become one of the most visited sites on the Internet, and YouTube has helped increase penetration of newer versions of Flash Player by rolling out features, like H.264 support, that required the newer Flash Player versions.

There is always an undercurrent questioning if Flash is “going away” when it comes to HTML5. But I think YouTube is actually the perfect example of Flash and HTML working together. The same day Google blogged about the TestTube project, YouTube also rolled out a new rental service for some of the Sundance Film Festival videos, which is powered by Flash. And I think that shows the relationship that Flash and services like YouTube have in helping drive the web forward.

Video on the web isn’t just about watching a clip any more. There are ways to monetize it, either with advertising or by adding ways to protect content that lets people watch something after they pay. There are accessibility issues that need to be addressed like closed-captioning support. What about being able to consume video on mobile devices that don’t support the HTML5 video tag? These are all areas that Flash has found solutions to, which has helped the growth of video on the web and provided a reference for the HTML5 groups to see what works. And while there may be some arguments over the use of the H.264 codec, having Flash add support for that codec meant that companies like Google could roll out a Flash version and an HTML5 version without having to re-encode video. Flash has made possible many of the features in HTML5 by showing how good the experience can be. And Flash will continue to innovate and provide solutions to challenges on the web before those solutions can be standardized. It will remain the best way to provide cutting-edge technology to 98% of people online.

Open standards are incredibly important to the future of the web. Adobe continues to work hard to contribute to that movement and balance that with the need for our customers and developers to be able to create next-generation content that runs the same way on every operating system and device. If Flash wasn’t providing value to people, it wouldn’t be on 98% of the world’s computers and we wouldn’t see penetration for new versions reach 80% within 6 months of release.

So congrats to YouTube on the HTML5 video work. This is good for HTML and I think there will be a lot of Adobe, Flash, and HTML5 collaboration moving forward. Flash has an important role to play by providing innovative ideas and solutions for an increasingly multi-screen and multi-platform world.

Google’s FLASH10.1y New Phone: Nexus

Well the details are out on Google’s phone, the Nexus, and it sounds impressive:

The phone is 11.5 mm deep, slightly thinner than the iPhone 3GS at 12.3 mm. It is also slightly lighter than the iPhone 130 grams v. 135 grams)……..But most of your interaction with the phone will be through the gorgeous 3.7 inch 480 x 800 OLED capacitive touchscreen. This is the best mobile phone display on the market today, blowing away the iPhone’s 480 x 320 display………This phone is also powered by the Snapdragon 1 GHz core processor, which is more than able to handle the Nexus One’s 3D graphics, multiple applications running in the background and heavy browser use simultaneously.

From the software to the hardware to the UI it sounds like this is going to be a very good phone. But it gets better. Back at MAX we announced that Google was joining the Open Screen Project. And we’ve been working closely with Google since that time to make sure that Flash Player 10.1 works well with Android devices. And we’re also working with content creators on optimizing their Flash content for the smaller screens.

So as part of the Nexus announcement Adobe got our hands on one of the phones and we’ve been testing Flash Player 10.1 on it. You can see Adrian Ludwig demo an early version of it on the Nexus. We’ve also got a video of Adrian demoing Flash Player 10.1 on the Motorola Droid.

Flash Player 10.1 is still expected to be available in the first half of 2010 so it won’t be too long before you’ll be able to get your hands on the best RIA mobile experience out there.

Are you Bored With Adobe AIR?

Sarah Perez over at ReadWriteWeb has a post up titled Are you Over AIR Applications in which she talks about her change in perspective on the value of AIR and how much benefit desktop applications provide over browser applications. It’s a pretty good post, and one that I hope drives some traffic and conversation, especially as we’re hearing more about things like Chrome, Firefox 3.5, and the Chrome OS.

For much of the past couple of years web applications were trying to mimic basic aspects like functionality and look and feel of desktop applications. That drove the movement towards RIAs and the shift made it painfully obvious that the browser in its current form wasn’t up to snuff. So more and more energy went into improving the browser so that web applications could compete against their entrenched desktop counterparts. We’re finally seeing releases from all that work. Firefox 3.5 looks to incorporate HTML5′s support for offline mode. Chrome was written from scratch because Google felt, basically, that the current browsers weren’t powerful enough to run complex HTML/Javascript based web applications. So what benefits does AIR have in this world? I agree that desktop applications as we know them are falling by the wayside, but AIR still has a few areas I think make it shine.

Web Technologies
One of the best parts of AIR is that it uses web technologies like HTML/Javascript and Flash. Web developers are a creative and innovative bunch. I’d argue that one of the main reasons Web 2.0 exploded the way it did was because web developers took to their destiny as the drivers of technology. Web development is relatively easy to learn but complex enough to keep the challenges coming. It’s also more productive than traditional languages because it’s both faster and it’s cross-platform. The strength of web development is a strength of AIR. Look at the first wave of a game-changing technology like Twitter. Almost all AIR applications. That’s because web technologies are easy and AIR made it very simple to quickly create a new kind of experience for a new kind of service. Tweetdeck and Twhirl got a first mover advantage and reaped the rewards. The development speed that the web allows for shouldn’t be discounted.

Notifications and Files
I think notifications, or the “toast” windows that you can pop up in AIR are more and more important as the web gets more real time. People want the firehose and they want it as soon as they can get it. Another area that I think AIR hasn’t been used enough for are filetypes. It’s incredibly powerful to be able to not only create items on the file system but to associate those with your applications. So far there hasn’t been need to create things like a .twitter file extension, but the next generation of web services may see big benefits from users being able to create those extensions. And of course with the file system you get some inherent benefits like the ability to tie into Spotlight or other desktop searches.

Ultimately I think both the browser and a more web-centric approach to desktop applications will succeed. The cross platform benefits, the improved developer productivity, and the close integration with web services are going to be instrumental in driving adoption for web applications both inside and outside of the browser. I hope AIR continues to do well and help drive innovation for web applications on the desktop. Seeing technologies like Google Gears and Titanium’s Appcelerator prove to me that the space is still growing and that we’ve got a lot of demand for a blend of web and desktop. And we’ve got a lot of enhancements coming up in the next version of AIR, so we’re not standing still. Stay tuned.

Google’s Chrome OS, Netbooks, and Rich Internet Applications

The big news of the night is that Google is building an operating system (no, not Android) that’s based on Chrome. I’m not entirely sure of all of the details but I think it’s cool at first glance. It sounds like it’s going to be designed initially for netbooks and I like how they describe the OS:

Speed, simplicity and security are the key aspects of Google Chrome OS. We’re designing the OS to be fast and lightweight, to start up and get you onto the web in a few seconds. The user interface is minimal to stay out of your way, and most of the user experience takes place on the web. And as we did for the Google Chrome browser, we are going back to the basics and completely redesigning the underlying security architecture of the OS so that users don’t have to deal with viruses, malware and security updates. It should just work.

I think Google gets it: Netbooks are going to be huge and they’re going to be a place where the web can “beat” the desktop. In a lot of ways they’re the perfect combination for the next generation of the web. The devices are small, portable, probably going to be connected most of the time, and have memory and resource requirements that require an optimized experience. I love Windows 7 and think it’s beautiful, but I do wonder how well it will run on netbooks. Microsoft seems tepid in how much it’s going to support or encourage netbook use.

Netbooks: A Boon for Rich Internet Applications
But people moving to the web-centric netbook experience are going to want a close approximation to the desktop environment. User experience is still going to be important on these small devices. We’ve seen how important a great user experience is (and how much of a selling point it is) with the iPhone. Google is a lot of good things but they aren’t user experience gurus and they don’t get design.

So what fills the gap? If only we had a good, lightweight layer for this new operating system that could play video, support games, enable real time communication, and let developers create beautiful user interfaces that felt like desktop applications with a much smaller footprint. Oh wait, we do, it’s the next generation of rich Internet application technologies like Flash and Silverlight.

Isn’t the netbook: a hybrid mobile and PC device, the perfect fit for RIAs: hybrid web and desktop technologies? You get the audio/video aspect, a framework for building very rich user interfaces, real-time web connectivity, and an existing ecosystem of developers and designers. All in a small package that’s meant to run with less resources than a full operating system requires.

I think netbooks are going to be a big deal for RIA developers. I think it’s a large addressable market and things like Adobe’s work with ARM to optimize Flash for their chipset are going to pay performance dividends in a big way. Throw in the cross-platform aspect and you’ve got the perfect way to build applications for a hybrid web-desktop-mobile device like the netbook.

Pooneekay Vatsoom Ahdtuih

Making Some Progress in Flash Search Indexing?

There have been a couple of posts recently about Google’s ability to search Flash files. And it looks like we’re getting some good news. The latest is over on InsideRIA. Dominic Gelineau has been doing some experiments and noticed as recently as October 14th that things have started to change for the better. The other post was by Brian Ussery. He’s been also running a long series of experiments and while the results aren’t quite what I was hoping, things may have changed recently. Possibly most interesting from Brian’s research is that Flash files can now have their own page rank independent of the root URL (see case study #2).

So it doesn’t seem like we’re perfect yet, but we’re making progress after the announcement earlier this year. It seems like Google is starting tweak the algorithm and figure out how to get it working as people expect. That’s good news.

Finally, Flash Becomes Truly Searchable

Update 2: Google posts about the new stuff and sheds some light on what will and won’t be indexed. (Props to Brian for the link)

Update: I did a Seesmic post below. It’s lame but I figured it was worth a shot.

It’s easy to get caught up in every new announcement when you’re an evangelist and I’ve definitely been overly excited a few times when I probably shouldn’t have but tonight is a really, really important milestone for anyone who is building Flash/Flex applications. One of the biggest pains/pressure points/disadvantages to using Flash is going to be minimized. We’re announcing today that we are working with Yahoo and Google to more accurately index SWF content.

So what does that mean? We are giving a special, search-engine optimized Flash Player to Yahoo and Google which is going to help them crawl through every bit of your SWF file. This Flash Player will act just like a person would in some cases. It will click on your buttons, it will move through the states of your application, get data from the server when your application normally would, and it will capture all of the text and data that you’ve got inside of your Flash-based application. We’ve basically provided a very powerful looking glass into SWF files so Google and Yahoo can pull out meaningful information.

The best part? You don’t have to do anything. Any SWF you already have out there will be indexed by this new player. Of course it won’t automatically be as good as HTML. Google won’t automatically deep-link your content or pull out unique URLs. So overnight I’m not sure a lot will change. But the most important part of this announcement to me is the fact that HTML and Flash can be on the same general footing when it comes to search engine optimization.

Google is going to have their own rules for how this new Flash Player indexes and uses the content. So will Yahoo. But we’ve given the search engines the technology to see SWF files in the same way they see HTML files. So now the art (or black voodoo magic) of SEO optimization can come to SWF files as well. That means it’s a big new world for Flash developers. You can poke the system, see what works and what doesn’t work. See how Google will handle deep linking and URL changes in Flash. It’s all up for grabs and it’s really exciting to think about what the Flash community can discover about SEOing SWF files.

SEO is big, big business. There are entire firms dedicated to it and a TON of money changes hands. Now Flash developers can get in on it and start figuring out how to optimize their SWFs to meet Google’s requirements. That’s pretty damn cool and it could result in a lot of money for the folks that figure it out first.

More links