Archive for the ‘Mobile’ Category

Android Solves Rubik in 24 Seconds

Sunday, May 9th, 2010

Update (20100524): the owner of the video has removed it. That’s the “beauty” of UGC.

On Apple, Flash and Java

Wednesday, February 17th, 2010

Steve Jobs said reportedly that Flash is buggy and that it won’t make it to the iPad and iPhone. The same story was used for Java, a technology that Steve Jobs described as not worth going onto the phone. However, I call B.S. on Apple’s arguments. Apple has decided not to ship Flash and Java not because of the lack of intrinsic value and quality, but because if allowed these technologies would result in the vertical disintegration of the Apple platform.

Microsoft saw the same threat with Netscape and Java more than 15 years ago. When the application developers were developing for Windows, Microsoft was controlling the ecosystem, but most importantly, reaping the rewards of the complementary value generated the applications created by those developers. The more applications that were out there, the more users wanted to use Microsoft Windows.

But Netspace and Java were promoting a cross-platform environment with the famous write once, run anywhere. In the Internet, data formats and viewers are open, and any developer can create new applications. Being able to run those applications on multiple platforms is a significant advantage, especially in the context of the Internet. Microsoft reacted by exposing the Windows API, what developers were familiar with, through ActiveX and Internet Explorer. Developers could reuse their tools and code and use these to create great applications that would only run on Internet Explorer and Windows. Great apps attracted users, and more users attracted more developers. This is how Microsoft attacked the jugular of Netscape and Sun. Netscape eventually went bankrupt, but that’s probably partially because of its own doing.

To Apple, Flash and Java technologies pose the same cross-platform threat that Netscape and Java were to Microsoft. Apple wants to control the hardware, the operating system, and the content that goes onto the devices through iTunes. Apple is locking developers onto its own APIs and its own distribution system, controlling all the feedback loops that the Apple ecosystem has.

Steve Jobs clearly learned the lessons well from Bill Gates. By allowing the Flash and Java runtimes, Apple would be opening the door to competitor products and applications running on multiple platforms, which could result in users switching platform if a competitor platform would for example lower costs or subsidize users or developers. Today, developers, and users, are locked in to the Apple platform.

In a market where the economics of developing applications for the iPhone are not that attractive, allowing cross platform would result in killing the value of developing for that platform. Most developers cannot afford to write code in parallel for Symbian, Android and iPhone, as the cost of doing so would eat up whatever small margins they are now getting. But because the alternative platforms to the iPhone have even smaller margins, developers are “happy” to be locked into Apple.

However, such lock-in is dangerous as it is a vector of Apple becoming a monopoly in the portable computing device market. Apple might argue about how ensuring a perfect user experience is the main reason why they control the whole ecosystem. However, Apple not only controls the user experience, but the runtimes. Apple could allow Flash and Java runtimes, and only approve those applications complying with the user experience guidelines. However, it is not likely to do so, because it would be opening the door to make a competitor platform, namely Android, stronger.

This situation makes me highly upset. I still believe that the iPhone SDK is one order of magnitude better than what you get with Symbian, and still a few knots better than what Android has to offer. Symbian and Android suffer, although not on equal degrees, of the multiple identity problem. There is no one Symbian, there are many Symbians. There is no one Andriod, there are many Androids. This atomization of the device and the user experience makes the developer’s jobs significantly more complex than it ought to be.

Flash and Java have some of the same problems as Symbian or Android. Since the target platform is unknown, the developer has to work much harder to provide a user experience that works in all environments. It’s a trade off the developer opts in to. As a developer, I want to have the freedom to opt into a harder development environment, if that means getting cross-platform support because my business model so it requires. And until Apple gives me that, I won’t get anywhere close to the iPhone.

Apple needs a strong competitor, and the only one that is positioned to potentially become one is Nokia. Nokia unfortunately has been playing the disintegration harakiri game really well, and completely opened itself for a competitive attack. As a developer, I don’t care whatsoever what their internal device platform strategy, but externally, as a developer, and consequently as a user, I care about consistency of APIs, distribution channels, tools, etc. Now that Android Linux is becoming the standard for Java on the mobile phone, I wonder if all is left for Nokia is to become the standard for Flash and AIR on the mobile. Except, of course, if they really believe that they can compete with their own Linux distribution.

Wireless Village Headed to the Deadpool

Wednesday, November 26th, 2008

I wrote about this header a little while ago in my onesoup blog, but since I have received various emails from folks asking me whether I’d continue or not with onesoup. Basically, they all make the point that there is a latent customer base on old phones with the native client.

So the question really becomes: even if IMPS is a lagging technology, even if operators are unfriendly, even if nobody knows how to monetize IM, … the penetration of these clients is huge. And users seem to be waking up. So, is there really a blooming market here, especially in emerging countries?

what the iPhone is that Symbian isn’t

Tuesday, May 13th, 2008

one of the key strategic questions that developers looking into creating successful mobile applications need to answer is the choice of platform. we see an increasing consumer demand for desktop-like rich applications on the phone, but somehow the promise of such applications remains undelivered. developers can chose between the smartphone centric OSes, Windows CE and Symbian, or the desktop centric OSes, Linux and OS X. so which one should we chose to build those future desktop-like applications?

smartphone centric OSes are designed to address the limitations of the constrained mobile environment, while at the same time delivering a rich user experience. typical constraints range from input methods, battery and connectivity. let’s be clear, these are good phone OSe,s, and they make good phones. but interestingly, these are constraints that have started to go away, and are becoming largely irrelevant, if not already irrelevant.

mobile network connectivity now offers full TCP/IP stacks on always-connected phones under flat fee transfer rates. battery life on most new phones allows such stack to be always on without significantly affecting the batter life, and input devices such as the iPhone demonstrate that the paradigm can be changed for the best.

in contrast, desktop centric mobile OSes are not really designed for mobile environments, and mobile is just an add-on. where the smartphone centric OSes need to impose API limitations, the desktop centric OSes don’t impose almost any. where the smartphone centric OSes excel as phones, the desktop centric OSes tend to lack important features (the iPhone is a good computer but a really bad phone).

and the question really for developers starting now a new application is whether to develop for such phone-focused OSes, given the large market share, and hoping that they will be enhanced sometime in the future to become full OSes, or whether to go for desktop centric OSes, with currently a smaller market share, and hoping that the mobile features on the them are sufficient. in other words, what’s more likely to happen, a desktop centric mobile OS being enhanced to become better phones, or a smartphone centric OS being enhanced to become a better desktop?

the answer to this leaves within the OSes themselves. today, the iPhone is an excellent mobile computer based on the OS X, but it’s a really bad phone. however, the mach/bsd kernel, the quartz framework and the cocoa framework should make it relatively easy to add GPRS and UMTS to an iPhone. and possibly the only reason it’s not there is purely commercial, based on the current distribution deal with AT&T.

in contrast, you can’t make a good desktop OS out of the smartphone centric OSes. they are simply crippled. i find it surprising to see how analysts overrate the symbian os. technically, symbian is a really unattractive and unproductive development platform to work with. commercially, it’s a fragmented market with three competing and somehow incompatible platform variants: nokia’s s60, sony-ericsson’s uiq, and ntt docomo’s moap.

from a technical standpoint, symbian has its own memory management and exception handling mechanisms which lead to a crippled and unfriendly C++-ish variant. symbian support for string handling is as bad as it gets, and even php does a better job! finally, writing complex interaction paradigms and network access is daunting: multi-threaded applications for symbian requires rocket scientists. and finally, and most importantly, the development environment is simply non-existent, mostly because of the custom C++ memory management and complex deployment process.

very sadly, java does not make a much better symbian. although language and tool support is excellent, the lack of uniformity on the platform itself, with MIDP 1.0 and 2.0, being implemented to different degrees by different vendors and by models, has resulted in tens of different APIs supported by some but not all phone models. it’s really hard and time-consuming to develop for java applications for symbian. either you create multiple variants of your application, or you cut down to the least common denominator. neither option is attractive from a developer standpoint.

windows ce suffers similar problems to symbian. the programming model is overly complex and based on the highly developer unfriendly win32 api. alike java, the .net compact framework has not been consistently adapted, so one ends up with multiple binary targets, that require separate code, debugging, testing, distribution and installation. a nightmare from a developer’s perspective. on the plus side, windows ce development environment is superb, including remote debugging abilities on the device itself. but overall, i discount windows ce as a no-go platform.

this really cuts it down to desktop centric OSes being a better choice for development going forward. that’s really between OS X and Linux. and i am picking OS X and the iPhone. here’s why.

as with anything linux, mobile linux is really many many things. different vendors have implemented things differently and are providing different stacks. some offer Qtopia, from Trolltech, some offer Gnome. then you have android, openzaurus, openmoko, … no one phone has a significant market penetration, and to develop for linux really requires multiple binary targets and API abstraction layers. again, it’s making things more complex than it ought to be.

in terms of kernel and integrated development environment, OS X is a much better platform. it’s a highly productive environment. but it’s proprietary to apple. which is good and bad. it’s good since you know what hardware and software you need to support. it’s bad since you are locked in, including for distribution.

but here comes the twist. developing a cocoa-based application for the iPhone is extremely easy, and given that Linux and OS X (mach/BSD) share so much in common, moving an iPhone application to a linux variant would not be any harder than moving between Gnome and Qt. good OO design should make it relatively easy.

in summary, iPhones features a robust and rich OS, OS X, a highly productive development environment, an aggressive market share growth, and lots of similarities with Linux. these are all good reasons to me to pick the iPhone as the target mobile platform of the future. i am not fully discounting linux however. the current issues with lack of significant market penetration could be overturn, specially in asia, and particularly in china.

smart2go Free Mobile Maps Service Competes with Tom-Tom

Friday, February 9th, 2007

Today’s TechnNews article about Nokia’s smart2go brings up an interesting business model competing with GPS navigation devices such as Tom-Tom. Nokia’s German-based Gate5 smart2go is a free map service based on Symbian EPOC for Series 60, although probably we will see across other Nokia phones. smart2go offers free maps, which can be downloaded from a PC (I guess for planned usual routes) or over the air and bluetooth (for unplanned routes — oops, I am lost!) One can store map files to the phone’s MMC (obviously to its storage limit).

Whereas traditionally GPS navigation devices have charged upfront for the hardware device, and provided free mapping and navigation service, smart2go has no starting costs (if you already have a compatible device), and maps and local guides are free. Navigation services however are not free – smart2go offers daily, monthly or yearly subscriptions. I believe it is this flexibility in the subscription model what will make it interesting for a number of people that do not need to use a Tom-Tom every day.