The Locked iPuzzle

So the iPad came and as expected, everyone can’t stop talking about it. I was cautiously optimistic about Apple’s tablet. I’m a sci-fi fan with a gadget fetish and I was loving the idea of carrying around a computer tablet just like they do in all of the latest science fiction movies. And Apple has a way of completely turning the computing world upside down. They have an elegance and polish that makes the intersection of software and hardware a nirvana.

Part of that is because they rule their platforms with an iron fist. The iPhone is obvious. It’s arguably the most closed platform in recent memory. Every application has to go through Apple’s approval process, can only be listed on Apple’s store, and Apple takes a cut. It’s a fantastic device, it provides developers a way to make money, but it is incredibly closed and arguably bordering on big brother. But OS X isn’t perfect either. While I can install my own applications and control my own settings, things like getting the right APIs for the Flash Player to handle video or multi-touch aren’t possible.

The iPad Cometh

So when the iPad was released and it was just a bigger iPod Touch, I was incredibly disappointed. If this is the future of computing then we’ve already lost. Apple is taking total control to a new and unfortunate level. It’s the same pay-to-play model as the iPod Touch so that you’ll be buying your applications from Apple (so they can take their cut), buying your videos and music from Apple, buying your books from Apple, and dealing with their DRM for all three. The ultimate lock-in.

The Honey Trap

This is what bugs me. As an evangelist I’m annoyed Flash isn’t on the iPhone. But as a user, I’m terrified that Apple has put a vice grip on getting content on my devices. It used to be that when you bought a device, you owned it and could basically do whatever you want with it. The model of the iPad and the iPhone is the opposite of that. You’re essentially paying for a device that then gives you the privilege to buy content from Apple. The honey pot of a seamless software-hardware experience has become a nightmarish trap that keeps you stuck and struggling.

As Mike Chambers said better than I can, having some support for HTML5 in Safari doesn’t make an open platform. One of the great parts of the “open web” is exactly how open it is. Anyone can put up any piece of content, at any time, without asking for permission. The web is accepting of Flash content, HTML content, Silverlight content, numerous video and audio codecs, and other plug-ins. Users have the ultimate choice about what they want to see and how they want to see it. That ecosystem has led to a lot of great, free content like games, video, and applications.

Which is why Apple has locked down the device. They can’t make money off of free. And instead of giving users choice and opening up their devices, they’ve decided to lock it down. The iPhone and iPad are each great pieces of technology and Apple deserves to make money off of them. But they could be so much better if they were open. The number of innovative things that an open ecosystem could do with this technology is mind-boggling. But that won’t happen because the only ideas that will see the light of day are ideas Apple lets through.

We’ve come a long way from 1984, but obviously not long enough.

Mini-Microsoft Interested in Adobe AIR

Kevin Goldsmith pointed this out and I thought it was awesome. For those not familiar with Mini-Microsoft, he’s (she?) is a highish level Microsoft employee who blogs anonymously about what’s happening at the company. He has a ton of insight about what’s going on over in Redmond and quite a bit of opinion about how things should be. My Microsoft employee friends love him. On Tuesday he did a breakdown of Microsoft’s quarterly numbers and what the status of various parts of the company are. The gem came when he talked about Dev Div (which I think stands for Developer Division), the part of the company with the developer tools and technology. Here’s the quote:

Dev Div: If I had to sit down tomorrow and write a casual application for the PC, my mind would fork itself in about five different directions. Native with ATL? WPF? Silverlight? An HTA? And what’s up with XNA? If I want to write an app for the Zune (which Zune?) what do I do? And can it run on some future mobile device? And the PC? And Xbox?

And how do I share it? How do I sell it? And, ah, crap, you mean you just released a whole new version of C# / Silverlight / XNA that I have to go and relearn? Maybe those free Starbucks coffee dispensers wasn’t a good idea…

If anything, I’d probably be pretty damn tempted to invest time learning Adobe AIR. And I’m thinking that while smack dab in the middle of the Microsoft bubble. There are a lot of Partners in Dev Div, and I’m not seeing any benefit from their concentration. The Windows client should be the premiere development platform. It’s not. What am I missing?

Mini, if you want to learn AIR, you can drop me an email. I’ll drive over to Redmond or even meet you secretly at the Adobe offices here in Fremont and show you the ropes. Anytime :)

Introducing “Contextual Applications”

We did a soft launch with some information of a concept that Adrian Ludwig and some of the other brain-trust folks at Adobe came up with recently called Contextual Applications. I have absolutely fallen in love with this term (and I had nothing to do with thinking of it). In a lot of ways I think this is RIA 2.0. One of the problems with RIA was that it had a grossly vague definition. It was kind of a Frankenstein combination of a desktop-like user experience, better design, real-time communication, rich media, and Web 2.0 ideals. In the end, RIA encompassed almost everything; Ajax, Flash, Silverlight, Adobe AIR, WPF, etc. That’s not a bad thing but it became hard to distinguish the value of RIAs because everyone could claim they were doing “RIA stuff”. The important thing is that we made a lot of progress with RIA and changed how people thought about software development.

Defining Contextual Applications

Contextual applications are a lot more concrete and have a better value proposition for both end-user and developer. It isn’t defined by a particular technology but instead a particular type of experience. So what is it? The idea is fairly simple. You’ve got a core set of data and a core experience that you have to deliver. But in today’s web there are multiple “touch points” out there. What about mobile? The desktop? A browser experience? A widget? An experience specific for social networking? Maybe a television? Users expect to have their content everywhere, on demand, regardless of how they’re connecting to it. The user experience and design challenge is creating a unified brand and experience that leverages the same content and is tailored to the specific technology limitations of a particular “touch point”. Solving that challenge will give you a contextual application. An application that moves with the user across a number of screens/devices while maintaining content and a user experience that is consistent but unique to each device.

Finetune: The Ultimate Contextual Application

The Contextual applications site has a number of examples but my favorite is definitely Finetune. They are a great example of one of the earliest contextual applications. They started out with a web-based application. Then, with the benefits of the desktop they created an AIR application that had native windows and used the file-system capabilities of AIR to tie into the iTunes library and pull artists that were interesting to the user; using the technological features of the underlying touch point to customize the experience. Then they were interested in deploying a version of the Wii so they created a Wii-specific browser application that ran on the Flash Player in the Wii and maintained the Finetune branding. Then of course mobile was a big demand. So they built to mobile applications; a Flash Lite app that reused a lot of code and still maintained the Finetune experience but customized for the small screen. They also built an iPhone app with touch support that captured the experience of the iPhone while maintaining that core Finetune interface.

To me, the Flash Platform stands alone at being able to let developers and designers easily deploy contextual applications. With so many different operating systems and screens supported, it becomes easy to reuse the tools and workflows to create applications that are tailored for those screens while maintaing a sense of continuity. And think about the server infrastructure. Are you using FMS to stream Flash Video content? That content will be supported everywhere the Flash Player is so you can quickly jump between screens and be sure that your base content, the most important thing, is completely in tact. It lets you design around your content and maintain that emotional branded connection with your users.

Ultimately it is about productivity. The number of touch points is only increasing and to be able to deploy on as many of them as possible you need to be able to reuse code, design assets, and workflows as quickly as possible. The Flash Platform gives you the broadest reach with a large community of designers and developers who are skilled with the tools. Ultimately that means you’ll be able to create contextual applications quickly and reach your users wherever they are. That’s why I’m so excited about this concept: ultimately it gives the user more control.

Flash Catalyst best practices article published

An article I wrote on Flash Catalyst best practices for the Adobe Developer Connection site went live yesterday.

Flash Catalyst and Flash BuilderOne of the things I’ve found with Flash Catalyst is that the quality and usefulness of the assets and component skins that you’ll make available for the developers you are working with can vary depending upon how you’ve organized your project, as can the amount of rework and restructuring required on their part when they receive your FXP file. By thinking about naming, structure and being organized throughout the design phase of the project, you’ll help to ensure a smooth flow of assets from design into development.

If you’re considering using Flash Catalyst for creating the user interface for a rich Internet application then I hope the hints and tips shared in the article will help you to make the most from Flash Catalyst and ensure that you’re structuring your projects with the eventual output to the developer in mind.

The article is posted here.

If you have any feedback on the article or additional hints & tips then please do share them using the comments.

Multi-screen development session at Flash On The Beach

Although Flash On The Beach is only 4 years old this year, it has already become a highlight in the Flash community. There something about FOTB that makes this one of the “must-go” conferences of the year. And it seems to be growing year after year!
This is going to be the first year that I’m […]