Well, it’s been a fun few days in the aftermath of the iPad announcement, and many fruitful and interesting discussions on the web and with friends and colleagues. And of course many pointless and idiotic discussions as well.
But out of these two main points jump out of the fray at every turn: multitasking and Flash support.
On the Flash side of the house I can only say that the situation is complicated when I look at Apple’s target market of the non-technical user. I know several people that have asked me why there are these blue boxes when they’re surfing with Safari on the iPhone. On their PC or Mac is pretty much just works since it was either included by default or the installation which happened once is now happily buried in their memory as one of those goofy computer things that they had to do way back when. For them, it’s just part of how the web works, despite the fact that it’s an not any kind of standard.
Personally, I use ClickToFlash because Adobe’s implementation on OS X is absolutely horrible, CPU hungry and unstable. Just like any marketplace, I vote with my wallet or my feet. If I run across a Flash dependent site, I have a tendency to avoid it in the future whenever possible. But I recognize that that’s me, and that watching my FaceBook feed I see an unending stream of updates concerning a panoply of Flash based applications like Farmville, Mafia Wars et al. so I’m obviously not representative of the population in general.
Noting of course, that as an OS X user, I do not have the same Flash experience as Windows users where the implementation is considerably more stable and efficient.
Watching some friends’ kids play on the internet I see that for many of them these types of games are a key part of their internet experience that they take for granted. They key part is that they take it for granted that they’ll be able to play these games and the iPhone OS doesn’t let them.
Now many of these users will find other ways to amuse themselves if they have access to an iPad, whether it be downloaded iTunes store applications, or javascript based web applications, but many of them will balk if they can’t interact with their friends the way that they’re used to. I wonder if there isn’t some market opportunity for a product that moves the Flash processing to a server-side process for the rendering and pushes down the interface to some kind of javascript front-end.
Is this a deal-killer for purchasing an iPhone OS based device? Given the current success of the iPhone, I’d have to say no. But the iPad is venturing into the fuzzy range between the iPhone and the notebook computer where people’s expectations may be different. This is one we’ll have to wait and see how the market responds.
The other much discussed “missing piece” is multitasking support. Now that can mean a whole lot of things from inter-application communication to applications that continue running in the background. For the moment, I’m going to stick to the running applications in the background issue. For the original iPhone, running background applications is a major problem since there is very little live memory available - 128Mb for the 3G and 256 for the 3GS. For modern applications and operating systems that’s pretty damn small and having multiple applications running will inevitably mean that the OS is forced to resort to swapping out to main storage which, while better than a hard disk, is still significantly slower than live memory, especially for write operations.
For me the big question is what are the use cases that absolutely require an application to run in the background. As far as I can tell, the only ones that can truly justify this requirement (outside of the built-in Mail app, Phone services and push services) are chat and VOIP clients. Now for the chat clients, we’ve been able to get around that limitation with the push services which seems to work reasonably well for me. (I use Beejive)
Then there is the question of VOIP clients. Now that the floodgates have opened and VOIP over 3G is a permitted option, I can really see a need for this and I don’t know if push services are up to the task of reacting in real-time.
I suspect that this may be an option in future revisions of the iPhone OS, whereupon launching an application, it will ask if it has permission to keep running in the background, similar to the way that applications ask for permission to access location services. Perhaps backgrounding will be accorded to applications that live in the dock row.
Now remains the question of how to manage and communicate this new functionality to make the user aware that an application can and is running in the background and a means of quitting it definitively. There must be a UI hint that makes this ability immediately obvious to the novice user. Perhaps Apple could bring over the little glowing dot from the OS X dock to signal an application that is running in the background or a diffuse glow behind the icon.
Then we have the issue of how to kill an application? Most of the useful UI actions on the Springboard main screen are taken. Tapping an application opens it, double tapping seems an odd way to kill an app, and completely counter-intuitive to the desktop computer user that double clicks to open. Tap and hold results in the jiggling icons for arranging them so that’s out too. I can see on the iPad that there’s room below the application icons to put a glowing dot and tapping it will quit the application, but that’s not really viable on the iPhone where screen real-estate is at such a premium.
So perhaps this type of multi-tasking will remain an iPad only feature available in iPhone OS 4 (or 3.3). This would also make sense in the context of the amount of available memory. I think that it’s reasonable to estimate that the iPad probably has 512Mb or maybe even a Gb of memory which would make it a viable proposition. The iPhone’s physical dimensions limit its options pretty severely at the moment, but maybe that will be a matching upgrade for the next generation of iPhone.
The upshot of this rambling is that I suspect that Apple is working hard on how to bring some kind of multitasking to a modal UI in such a way that it’s elegantly integrated and not some kind of ugly hack that pushes the responsibility onto the user.
I suspect that one reason for the massive outcry regarding multitasking in the gadget technocracy is that on today’s desktop operating systems we switch between applications - visually by Command/Shift tab, an activity which has a certain feel to it. When you switch applications in the iPhone OS, you push the home button which visually quits the application and then you open the other application. Most iPhone applications save a minimum of state information on receiving the close request so the result is not so much quitting, but more of a “go to sleep” action and it picks up where you left off when you reopen it. On the iPhone, this does take a certain amount of time so it really feels like a Quit/Open cycle. This is reinforced visually by the accompanying animation which is the reverse of the application opening action. So I wonder if the iPad being that much faster will change the feel of this action, or perhaps changing the close animation slightly to give a slightly different impression of the action.
Related posts:
iPad round 2 - AT&T vs Verizon
iPad round 3 - Thoughts and reflections