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.

AIR 2 Multitouch Gestures and the 3D Google Maps Flash API

I took some time over the weekend to dive into the multitouch APIs on AIR 2 and built a basic example with the Google Maps 3D API. I wired up the out of the box gestures in AIR 2 to some specific manipulations so that it goes beyond the typical move and pinch gestures that most of the multitouch mapping apps use. You can see the YouTube clip below and grab the source over on GitHub to see how easy it is to use the gesture events in AIR 2.

A couple of great places to look for more multitouch info is Christian Cantrell’s blog and Matt Legrand’s Multitouchup.com. I’m also working on an Android version of the app but there are a couple of kinks to work out.

Flash and Windows Phone 7

From Mike Chambers:

There has been a lot of buzz in the mobile space lately, and I suspect there will be even more around Windows Phone 7 at next week’s Microsoft Mix conference. One thing I wanted to clarify as it may have been lost in some of the other news is that Adobe and Microsoft are working together to bring Flash Player 10.1 to Internet Explorer Mobile on Windows Phone 7 Series.

So if you’re on Windows mobile, you’re not forgotten and you’ll be getting a Flash Player 10.1 on your sweet new phone.

Flash and Standards Cold War

Very good perspective on Flash and standards.

Both the standards community and the Flash community are extremely good at sharing knowledge and supporting the people within their respective groups. The relationship across communities, however, isn’t nearly as cordial. Two things are happening: either the people within each camp stay to themselves, or one ignorantly hurls insults at the other.

I love that angle. Both camps have very passionate communities but the problem is that there’s not enough cross-pollination between groups. Part of that is that (I don’t think) Flash has done a good job of playing well with HTML. It has been and still is largely a black box. So at a technical level the two technologies don’t work as well as they should have. That carries over into the communities. As a company that makes tools for both HTML and Flash, it behooves us to be involved in both sides of the debate. My hope is that as Flash opens up more and hopefully works better with HTML, the people on both sides will start to work more closely as well.

The Flash Mobile Advantage

A post up about Jeff Smith from Smule and why he won’t ever target Android.

Smith is part of a small but vocal chorus of app developers who say they don’t want to move to Android, even though it is growing quickly. His complaints: He doesn’t like the way the store merchandises its wares, and he doesn’t want to have to create different apps for each handset Android supports.

To me, that helps show the value proposition of Flash on mobile devices. You’re going to have to create custom Flash mobile content for each device. It’s not going to be write once, run everywhere. But you’re not going to have to rewrite an app from scratch and you’ll be able to use the same technologies and tools across multiple platforms which means you can crank out applications faster and make sure they’re higher quality.

As developers get more sophisticated, just like agencies have their own frameworks to give them a head start on the apps they build, you’ll see frameworks that decrease the time to market of mobile applications for different sized screens and different functionality. But the key is being able to use the same tools, the same language, and the same platform so that you can easily tweak and write those applications for multiple platforms.

HP’s Flash-enabled Tablet

Some very cool video of Flash Player and AIR running on HP’s Slate tablet computer.

It’s great to see Flash Player running on a tablet. One of the nice things about the tablet versus the mobile device is that because of the larger screen size, more content will work out of the box. Flash on mobile devices performs really well but the screen size is going to require some UI changes for sites that will be visited heavily by mobile devices. Tablets provide a more big-screen experience.

An Ad-less Internet

A fascinating experiment and follow-up by Ars Techinca on ad blockers.

If you read a site and care about its well being, then you should not block ads (or you subscribe to sites like Ars that offer ads-free versions of the site). If a site has advertising you don’t agree with, don’t go there. I think it is far better to vote with page views than to show up and consume resources without giving anything in return. I think in some ways the Internet and its vast anonymity feeds into a culture where many people do not think about the people, the families, the careers that go into producing a website.

I was recently on a roadshow with some folks from EyeWonder, a company that provides a framework to build and place a lot of the ads on the Internet. Some are very clever, others would fall into the annoying category. During the trip I talked to a lot of the creatives at big agencies who are working with sites to place these ads for their brands and the adblocker concern was a big topic. If their brands aren’t getting the views on the ad, they’re not going to want to pony up, and sites lose money.

What’s worse, is that it becomes a downward spiral where the ads being served become more intrusive in order to get the attention of a fading audience. Ultimately, one of the best conversations I had was with someone who used to be the creative “gate” for agencies on a major network of sites. Agencies came to her with their ad ideas and she was the person who gave thumbs up or thumbs down on the ad depending on whether or not it was too obnoxious or wouldn’t jive with what the network’s users expect.

To me, that’s the key. Flash may be synonymous with advertising now, but the same obnoxious ads are going to be created with HTML5 when it becomes prevalent, so the people creating ads have to build them so that they’re targeted and interesting. I don’t think they have to be static, or can’t take up the whole page, but they should follow some basic guidelines (auto-playing sound being a terrible, terrible scourge) and leave the user in control. Close buttons should be obvious, mouse out events should minimize the ad, and it should be difficult to accidentally trigger it. And making sure ads are optimized so they aren’t causing Flash to spin up the CPUs is key to a good user experience.

The web is an interactive place and there is a lot of very interesting work going on in the interactive advertising space. That work directly funnels money back to your favorite sites and pays a lot of bills.

Flex Saving Flash

Interesting writeup over on PHPArchitect.

That is the most important thing that Flex brings to Flash: professional grade tooling. The Flex framework, which Adobe has open sourced, makes application development quick and painless for programmers familiar with event driven programming.

One of the things that fascinates me about the Flash Platform is the number of different types of web professionals it attracts. Those web professionals have very different goals so we largely try to stay out of the way and let them create what they want. But to make them productive we create tools and sell them. But trying to have one tool that does everything isn’t practical. Flex was always intended to be a developer-centric way to create Flash applications and I think Flash Builder 4 is going to show that off better than the previous versions.

HTML-Flash Geo

HTML and Flash working together to find each other.

Geolocation is a good example. HTML5 is going to get a geolocation API that works just beautifully even on devices with no GPS. Flash based applications will (currently) only get access to geolocation APIs when targeting the AIR runtime on mobile. Some browsers (I only know of Firefox 3.5 on Mac and the WebKit browser on the Nexus One) already support the HTML5 geolocation API… So why not use that to get geo information into your Flash based application?

There are few things I love more than geography and by extension, geolocation. It’s the digital overlay of the world. How can that not be cool? And this particular example is nice because it’s an area where HTML5 is ahead of Flash Player. Just like HTML can use Flash to implement ideas it hasn’t nailed down yet, Flash can use HTML to implement ideas that it hasn’t got yet. Bliss.

Non-Accessible HTML

YouTube opens up captioning for all videos….sort of.

I know I work for Adobe, but this is the kind of thing that pisses me off. Flash gets such a bad rap from the open standards crowd who hold accessibility so highly but as of right now there isn’t any way to do captioning in HTML5 videos. So when YouTube makes a big announcement about improving and enhancing accessibility by adding captions to all of their videos, no one mentions that it’s just the Flash videos.

I realize that the HTML5 feature on YouTube is in beta, but it isn’t like this is something that anyone has figured out yet for HTML5 video. It’s listed as “unwritten documentation” on the Chromium site, which basically means “we aren’t sure how this is going to work”. But no one does. The closest thing I’ve found is a jQuery plugin that’s in the early stages.

Not only is there no clear codec for HTML5 (something that in theory Google will remedy with the purchase of On2) but captioning support, something that Flash has made easy and ubiquitous, isn’t a feature that’s looking like it will be implemented soon.

But it’s going to kill Flash….riiiiiiiight….