Archive for the ‘Symbian’ Category

Mobile applications, RIP

Monday, February 25th, 2008

Summary: The business of making native apps for mobile devices is dying, crushed by a fragmented market and restrictive business practices. The problems are so bad that the mobile web, despite its many technical drawbacks, is now a better way to deliver new functionality to mobiles. I think this will drive a rapid rise in mobile web development, largely replacing the mobile app business. This has huge implications for mobile operators, handset companies, developers, and users.

The decline of the mobile software industry

Mobile computing is different from PC computing.

For the last decade, that has been the fundamental rule of the mobile data industry. It was the central insight of Palm Computing’s “Zen of Palm” philosophy. Psion came up with similar ideas, and you can hear echoes of them from every other successful mobile computing firm: Mobile computers are used differently from PCs, and therefore must be designed differently.

We all assumed this also meant mobile devices needed a whole mobile-specific software stack, including an operating system and APIs designed specifically for mobility, and native third-party applications created from the ground up for mobile usage.

That’s what we all believe, but I’m starting to think we got it wrong.

Back in 1999 when I joined Palm, it seemed we had the whole mobile ecosystem nailed. The market was literally exploding, with the installed base of devices doubling every year, and an incredible range of creative and useful software popping up all over. In a 22-month period, the number of registered Palm developers increased from 3,000 to over 130,000. The PalmSource conference was swamped, with people spilling out into the halls, and David Pogue took center stage at the close of the conference to tell us how brilliant we all were.

It felt like we were at the leading edge of a revolution, but in hindsight it was more like the high water mark of a flash flood. In the years that followed, the energy and momentum gradually drained out of the mobile applications market.

The problem wasn’t just limited to Palm; the level of developer activity and creativity that we saw in the glory days of Palm OS hasn’t reappeared on any mobile platform since. In fact, as the market shifted from handhelds to smartphones, the situation for mobile app developers has become substantially worse.

That came home to me very forcefully a few days ago, when I got a call from Elia Freedman. Elia is CEO of Infinity Softworks, which makes vertical market software for mobile devices (tasks like real estate valuation and financial services). He was one of the leaders of the Palm software market, with a ten year history in mobile applications.

I eventually moved on from Palm, and Elia branched out into other platforms such as Blackberry. But we’ve kept in touch, and so he called recently to tell me that he had given up on his mobile applications business.

Elia gave me a long explanation of why. I can’t reproduce it word for word (I couldn’t write that fast), but I’ve summarized it with his permission here:

Two problems have caused a decline the mobile apps business over the last few years. First, the business has become tougher technologically. Second, marketing and sales have also become harder.

From the technical perspective, there are a couple of big issues. One is the proliferation of operating systems. Back in the late 1990s there were two platforms we had to worry about, Pocket PC and Palm OS. Symbian was there too, but it was in Europe and few people here were paying attention. Now there are at least ten platforms. Microsoft alone has several — two versions of Windows Mobile, Tablet PC, and so on. [Elia didn’t mention it, but the fragmentation of Java makes this situation even worse.]

I call it three million platforms with a hundred users each (link).

The second technical issue is certification. The walls are being formed around devices in ways they never were before. Now I have to certify with both the OS and with each carrier, and it costs me thousands of dollars. So my costs are through the roof. On top of that, the adoption rate of mobile applications has gone down. So I have to pay more to sell less.

Then there’s marketing. Here too there are two issues. The first is vertical marketing. Few mobile devices align with verticals, which makes it hard for a vertical application developer like us to partner with any particular device. For example, Palm even at its height had no more than 20% of real estate agents. To cover our development costs on 20% of target customer base, I had to charge more than the customers could pay. So I was forced to make my application work on more platforms, which pushed me back into the million platforms problem.

The other marketing problem is the disappearance of horizontal distribution. You used to have some resellers and free software sites on the web that promoted mobile shareware and commercial products at low or no charge. You could also work through the hardware vendors to get to customers. We were masters of this; at one point we were bundled on 85% of mobile computing devices. We had retail distribution too.

None of those avenues are available any more. Retail has gone away. The online resellers have gone from taking 20% of our revenue to taking 50-70%. The other day I went looking for the freeware sites where we used to promote, and they have disappeared. Hardware bundling has ended because carriers took that over and made it impossible for us to get on the device. Palm used to have a bonus CD and a flyer that they put in the box, where we could get promoted. The carriers shut down both of those. They do not care about vertical apps. It feels like they don’t want any apps at all.

You can read more of Elia’s commentary on his weblog (link).

Add it all up, and Elia can’t make money in mobile applications any more. As he told me, “Mike, it’s time for you to write the obituary for mobile apps.” More on that later.

Although it’s a very sad situation, if Elia’s experience were an isolated story I’d probably just chalk it up to bad luck on the part of a single developer. But it mirrors what I’ve been hearing from a lot of mobile app developers on a lot of different operating systems for some time now. The combination of splintering platforms, shrinking distribution channels, and rising costs is making it harder and harder for a mobile application developer to succeed. Rather than getting better, the situation is getting worse.

I’ve always had faith that eventually we would solve these problems. We’d get the right OS vendor paired with a handset maker who understood the situation and an operator who was willing to give up some control, and a mobile platform would take off again. Maybe not Palm OS, but on somebody’s platform we’d get it all right.

I don’t believe that any more. I think it’s too late.

The mistake we made

We told ourselves that the fundamental rule of our business was: Mobile is different. But we lost sight of an even more fundamental law that applies to any computing platform:

A platform that is technically flawed but has a good business model will always beat a platform that is elegant but has a poor business model.

Windows is the best example of inelegant tech paired with the right business model, but it has happened over and over again in the history of the tech world.

In the mobile world, what have we done? We created a series of elegant technology platforms optimized just for mobile computing. We figured out how to extend battery life, start up the system instantly, conserve precious wireless bandwidth, synchronize to computers all over the planet, and optimize the display of data on a tiny screen.

But we never figured out how to help developers make money. In fact, we paired our elegant platforms with a developer business model so deeply broken that it would take many years, and enormous political battles throughout the industry, to fix it — if it can ever be fixed at all.

Meanwhile, there is now an alternative platform for mobile developers. It’s horribly flawed technically, not at all optimized for mobile usage, and in fact was designed for a completely different form of computing. It would be hard to create a computing architecture more inappropriate for use over a cellular data network. But it has a business model that sweeps away all of the barriers in the mobile market. Mobile developers are starting to switch to it, a trickle that is soon going to grow. And this time I think the flash flood will last.

If you haven’t figured it out yet, I’m talking about the Web. I think Web applications are going to destroy most native app development for mobiles. Not because the Web is a better technology for mobile, but because it has a better business model.

Think about it: If you’re creating a website, you don’t have to get permission from a carrier. You don’t have to get anything certified by anyone. You don’t have to beg for placement on the deck, and you don’t have to pay half your revenue to a reseller. In fact, the operator, handset vendor, and OS vendor probably won’t even be aware that you exist. It’ll just be you and the user, communicating directly.

Until recently, a couple of barriers prevented this from working. The first was the absence of flat-rate data plans. They have been around for a while in the US, but in Europe they are only now appearing. Before flat-rate, users were very fearful of exploring the mobile web because they risked ending up with a thousand-Euro mobile bill. That fear is now receding. The second barrier was the extremely bad quality of mobile browsers. Many of them still stink, but the high quality of Apple’s iPhone browser, coupled with Nokia’s licensing of WebKit, points to a future in which most mobile browsers will be reasonably feature-complete. The market will force this — mobile companies how have to ship a full browser in order to keep up with Apple, and operators have to give full access to it.

There are still huge problems with web apps on mobile, of course. Mobile web apps don’t work when you’re out of coverage, they’re slow due to network latency, and they do not make efficient use of the wireless network. But I believe it will be easier to resolve or live with these technical drawbacks in the next few years than it will be to fix the fundamental structural and business problems in the native mobile app market.

In other words, app development on the mobile web sucks less than the alternative.

Here’s a chart to help explain the situation. Imagine that we’re giving a numerical score to a platform, rating its attractiveness to developers. Attractiveness is defined as the technical elegance of the platform multiplied by how easy it is for developers to make money from it. The attractiveness score for native mobile app development looks like this over time:

This is why mobile app developers are in trouble. Even though the base of smartphones has been growing, and the platforms themselves have become more powerful, the market barriers have been growing even faster. So attractiveness has been dropping.

Now add in mobile web development:

Based on what I’m hearing from mobile developers, the lines just crossed. The business advantages of mobile web development outweigh its technical limitations. More importantly, if you look at where the lines are going, the advantage of mobile web is going to grow rapidly in the future.

I’m not saying all native mobile development is dead. In fact, we’re about to see the release of Apple’s native development tools for the iPhone, and as Chris Dunphy just pointed out to me, they are sure to result in a surge of native development for that platform. But I think even a rapidly-growing base of iPhones can’t compare to the weight of the whole mobile phone market getting onto a consistent base of browsers.

What it all means

If you’re a mobile developer, you should consider stopping native app development and shifting to a mobile-optimized website. That’s what Elia did, and he said it’s amazing how much easier it is to get things done. Even mobile game developers, who you’d think would be the last to abandon native development, are looking at web distribution (link; thanks to Mike Rowehl for pointing it out).

See if you can create a dumbed-down version of your application that will run over the mobile web. If the answer is yes, do it. If the answer is no, try to figure out what technology changes would let you move to the web, and watch for those changes to happen.

There are exceptions to any rule, and I think it makes sense to keep doing native development if your app can’t work effectively over the web, and it’s a vertical application so popular that you can get about $50 or more in revenue per copy. In that situation, you probably have enough resources to stay native for the time being. But even you should be monitoring the situation to see when you can switch to the web, because it will cut your expenses.

If you’re a mobile customer, make sure your next smartphone has a fully functional browser that can display standard web pages. And get the best deal you can on a flat-rate data plan; you’ll need it.

If you’re an operator or a handset vendor, get used to life as a dumb pipe. By trying to control your customers and make sure you extract most of the revenue from mobile data, all you’ve done is drive developers to the Web, which is even harder to control. You could have had a middle ground in which you and mobile developers worked together to share the profits, but instead you’ve handed the game to the Google crowd.

Congratulations.

Oh, about that obituary…

In loving memory of the mobile applications business. Adoring child of Java, Psion, Palm OS and Windows Mobile; doting parent of Symbian, Access Linux Platform, and S60; constant companion of Handango and Motricity. Scared the crap out of Microsoft in 2000. Passed away from strangulation at the hands of the mobile industry in 2008. Awaiting resurrection as a web service in 2009. In lieu of flowers, the family asks that you make a donation to the Yahoo takeover defense fund.

Copyright 2008 Michael Mace.

Palm OS on Nokia: Strategy or tactic?

Wednesday, November 14th, 2007

I was stunned today when I saw the press release from Access Company saying that they’re giving away a beta version of the Garnet emulator for Nokia’s N-series Linux tablets (link).

The Garnet emulator lets you to run most Palm OS applications. So in layman’s terms, Access is giving away Palm OS for use on any N-series tablet.

I hadn’t previously heard any hints from Access about offering Garnet for other platforms. I thought it was only supposed to be available with Access Linux.

I got excited by the announcement, figuring maybe Access had realized that the real innovation is going to come in the applications layer, not the core OS plumbing. I imagined all sorts of scenarios for what they might be planning:

–How about porting Garnet to some other Linux implementations. Hmm, what comes to mind? Maybe Google’s Android? Access would need cooperation from Google in order for the emulator to talk directly to Linux. Would Google help with that?

–There is a need in the market for a mobile application environment that’s truly “write once, run anywhere.” Might Access intend to use Garnet to compete with Java? That would involve porting Garnet to operating systems other than Linux. How about Windows Mobile and Symbian? How about the iPhone?

–There are several ways Access could make money from this:

  • Give away the emulator in beta but charge for the final version.
  • Give away the emulator on N-series but charge for it on other platforms.
  • Give away the emulator everywhere and make money by selling support software and bundling a software store and taking a cut of the purchase fees for apps (a derivative of the iMode and Acrobat models).

Intrigued by the possibilities, I talked to folks at Access. They shot down most of my speculation. As it was explained to me, this is a tactical move. By porting Garnet to the Nokia tablets they can get some testing for the emulator, and also give a “more interesting ongoing proposition for current developers.” (It says something about the momentum for your OS when you feel the installed base of Nokia Linux tablets is an attractive developer target, but I guess you take what you can get.)

Access might try to put the emulator on other standard Linux implementations, but they’re very busy working on software for licensees they can’t talk about yet, and don’t have time to port to anything else, including Android.

That’s a shame. In my opinion, there’s more of a market for Garnet on other platforms than there is for a Linux phone OS now that Google is giving one away.

But Access believes Google’s nonstandard approach to Java and Linux is not going to go down well with the mobile development community. They said Android faces big challenges and a likely backlash.

Okay. I guess only time will tell whether that’s justified self-confidence or denial of reality.

Meanwhile, I’ll go play with Garnet on my Nokia tablet and wonder about what might have been.

Copyright 2008 Michael Mace.

Google’s Android revealed: Component software for the mobile world

Tuesday, November 13th, 2007

Google today released a lot more details on its Android mobile operating system, including the software development kit. It looks like it would be fun to write apps for Android. The most interesting news is that Android puts a heavy emphasis on component software, encouraging developers to create software modules that can be shared with other developers and reused across applications. It’s similar in spirit to what happened with mashups in the web apps world, although the technology involved is quite different.

If the developers follow through, this could make Android a very attractive and flexible development environment.

Google is offering $10 million in prizes to the best Android applications. That’s an astonishing amount of money for the mobile apps space, where developers are used to living on stale bread with an occasional beef jerky chaser. For comparison, $10 million is probably more than the total marketing program budget in my last year at PalmSource.

It must be nice to work at a company that has limitless financial resources.

The price also says something about Google’s business strategy for Android: Collect a lot of compelling applications that will generate user demand for Android phones. I think they can get the apps, but whether those will generate user demand remains to be seen. Having a big apps base didn’t help us as much as you’d expect at PalmSource.

The other interesting news is that this is an entirely Java-based development environment, with a lot of extensions provided by Google for things like multimedia and font management. Although Android is based on Linux, as far as I can tell it’s being used strictly as plumbing; the applications can’t access it directly (at least not in this version). Data exchange between apps, and application access to phone features, can be locked out by the operator or handset manufacturer.

This should make Android a pretty secure operating system, although it won’t be much fun for developers who like to mess around with the low levels of an OS.

Can Android become a standalone runtime? The reliance on Java raises the possibility that the Android applications layer could be ported to other operating systems. I think this would be a pretty cool strategy for Google, as it would enable it to drive the applications experience on a lot of different phones. But it wouldn’t be a lightweight layer — Google has built a huge amount of middleware on top of Linux that would probably have to be ported as well. Unless Google designed the Android apps layer to be portable, something they haven’t mentioned, I think the port would be pretty difficult.

Some other tidbits about the OS:

–Features supported in the OS include a built-in browser, 2D and 3D graphics, SQLite database, video and audio playback, GSM, Bluetooth, WiFi, 3G wireless, camera, compass, GPS, and accelerometer (if the appropriate hardware is included in the phone). That’s a pretty standard feature list.

–There’s also a set of optional APIs that can be excluded by an operator or handset manufacturer. They include mapping APIs and peer to peer messaging between phones. Google positioned the peer messaging as a way to let two users play checkers, but you could also use it to create an instant messaging application that bypasses SMS. I’ll be interested to see if any operators allow it on their networks.

–The development environment is a plug-in to Eclipse, another standard approach. The SDK includes an emulator so you can test your apps before the hardware ships. That’s essential, since Android phones are about a year away.

–Core apps included with the OS include mail, SMS, calendar, browser, contacts, and maps. The mapping app is the only unusual one.

–There is support for multitasking threads, and an application can run in the background (this should enable things like MP3 playback while you’re browsing).

–Each application runs in a separate Linux process. This helps with security. Apps remain running until they’re no longer needed and the system decides that it wants their memory. This feature seemed slightly weird. Windows Mobile also tends to leave code running until the space is needed, and that has resulted in performance and stability problems. Presumably Android will handle things better.

The other thing Google warns you about is that if your application doesn’t use the proper calls to explain what it’s doing, the OS may assume it’s not important and shut it off arbitrarily. That can also happen to a properly-written application if the system runs low on memory. This is kind of spooky, and could result in lost user data, especially if the user loads up a lot of applications.

Call me old fashioned, but I prefer applications that quit only when I push the quit button.

–The security model is heavily sandboxed (meaning applications are isolated from each other). To reach outside the sandbox (to exchange data with another app, read the address book, or access the phone’s features), applications have to ask permission at the time they are installed. Permissions are based on “trusted authorities and interaction with the user.” In other words, an operator or handset vendor can lock them down, and if not then the user will be asked to grant permission. Users will not be asked again when the application is run; if permission was not granted at install, the app will just fail. I believe this is going to be a serious support problem — it means the same application may work on a phone when it’s on one network, but may not work on that same phone on another network. Good luck explaining that to the user.

Google may be counting on user complaints to force the operators to turn on permissions.

–The user interface needs work. Google says it’s still working on the final user interface for Android, and that’s a good thing. Engadget nicely posted a bunch of screen shots from the current interface today, and they have problems (link).

The first thing that bothers me is the icon carousel at the bottom of the screen.

I think it’s a great design, but it’s awfully reminiscent of the interface in Yahoo Go. Maybe that’s just a coincidence, but Google lately has shown a disturbingly Microsoftian tendency to borrow ideas from others.

The overall interface design is relatively clean, at least compared to the overdesigned clutter that you see on a lot of smartphones. But it’s optimized to look pretty on a computer screen rather than be usable on a real-world phone.

The giveaway is contrast. Most computers are used indoors, in a room with moderate lighting. By comparison, mobile phones are used in all sorts of settings, including outdoors in bright sunlight. In those conditions, subtle differences in contrast between text and background can easily be lost. For a good example, check out the screen shot below:

Looks nice on your computer, huh? But let’s reduce that screen image to about what it would be on a real phone:

Already the text gets hard to read. Now take your computer outside into the direct sunlight. Go ahead, I’ll wait for you to get back…

Done already? What you saw is that the words “Call Back,” “Done,” and so on pretty much disappeared because they’re written in dark gray on a black background. You can find a lot of other examples like this in the Google screen shots.

A recommendation to everyone who creates phone interfaces: White on black. Black on white. Large fonts. It may not be the most beautiful design, but at least people will be able to use it.

What it means to the industry. I continue to think that the ultimate success of Android will depend on the creativity of the devices built on it, and we can’t judge that until those devices ship. But in the meantime, I’ll be very interested to see what sort of applications appear. Google can definitely excite developers, especially when it shovels money at them. This is an immediate challenge to Microsoft and especially Symbian, which has struggled to get developers to work with its very complex native APIs. The more that Android sucks up developer activity, the harder it will be for other platforms to get developer support. Android is a much cleaner design than older platforms like Symbian, and the component development model might drive the rapid creation of a lot of interesting applications.

Will Android be limited to the mobile space? That’s the other key question. There’s nothing in the Android development model that limits it to mobile phones, and in fact Google says openly that it’s appropriate for use on all sorts of devices. Let’s wait a few years for the Android applications base to mature. If it does well, we might eventually see Android devices that seek to directly challenge PCs.

=====

PS: Thanks to Ubiquitous Thoughts for featuring last week’s post on the Android announcement in the latest Carnival of the Mobilists.

Copyright 2008 Michael Mace.