How many mobile development platforms does the world need? One? Maybe two? At most, three?
How many do we have?
Here is my list, in a certain order of importance.
1) Java (or J2ME). This is more of a 'write once debug everywhere' platform, with every phone manufacturer deciding to implement subtle differences in the platform, JSR compliance and behavior. A midlet written for one set of devices (say series 40 on nokia) can take anything between 2-4 weeks to work on another set of devices. Then, we have discoverability issues: most midlets disappear somewhere two-three menu levels deep in the phone menu. The core MIDP APIs fall short for doing complex UI: you either have forms (which are ugly but look equally ugly in all phones) or do your own drawing on the canvas (pretty on one phone but would not work on another). In short, it really makes me wonder why companies are spending so much resources developing J2ME midlets. The short answer, there is nothing better, yet!
Sun has its SDK and simulator for Windows only. Mac users may try out mpowerplayer. The simulator gives a decent debugging environment, but then the developer is pretty much stranded on the actual devices.
2) Symbian: It comes in two major flavors: Series 60 (Nokia) UIQ (Sony Ericsson, Motorola). Series 60 has its series on editions as well, so application writers have to be careful about that. Series 60 is more powerful than J2ME in terms of how much of the device is open to the application developer. But as the charts in http://www.mobref.com/statistics/world/allPlatforms show, Java has a slight edge in terms of numbers. (The reason why the total crosses 100% is because Symbian phones run Java as well). Symbian also has windows based simulators, for both flavors. Nokia's developer ecosystem is pretty impressive (with Forum Nokia, their own application store) which goes to show how serious Nokia is about their developer story.
Now, for the three platforms (OS) with less than 5% of total phone market share. (as of Sept. 2008), but most projections show that it is just a matter of time before they catch up.
3) Windows Mobile: The mobile operating system from Microsoft, with a pretty good development tools.
4) Blackberry: The phones from Research in Motion. The native development environment is based on Java, but the difference is significant which makes me count it separately. Here is a link to the development tools for the Blackberry.
5) Mac OS X (iPhone): Developers can use the iphone SDK to develop and debug applications and then work through the Apple AppStore to deploy it. The development environment is the best that I have used. Of course, it only works on Leopard. Good luck! Applications cannot be put in background, which means it is not the way to go for 'always on applications'. I think that Apple will eventually enable it, once they figure out how to solve the resource usage issues with multiple background applications.
Finally, two notable platforms with enough investment and activity, although they haven't shown much promise in the marketplace, yet.
6) BREW: The Binary Runtime Environment for phones with the Qualcomm chipsets. Mobile developers who want to target the CDMA market in a big way should consider this. The barrier to entry, however, is high, with cumbersome certification rules.
7) Linux: As usual, it comes in a lot of flavors, with some phone manufacturers internally adopting it as the OS. The two notable flavors are Qt (from Trolltech, now Nokia) and Android (from Google), the Android APIs use the Java Language.
Then, there are a few cross-OS platforms
8) The browser : Almost every data enabled phone today has a browser. How well the browser does in rendering web pages varies, though. There is a longer discussion on 'browser as an application platform' below.
9) Flashlite is trying to take Adobe's (formerly, Macromedia's) success in Flash to the mobile.
There is Silverlight for Mobile from Microsoft and Adobe's AIR, but it is too early to say where they are headed. Sun's work on JavaFx is also along the same lines, although I wish Sun spent more time on solving the JSR fragmentation issues. So, these three dont 'count', for now. (If they did, that would be a dozen developer platforms).
On the widgets side, there are a bunch of companies trying to do 'cross-platform' widgets. Yahoo Mobile Widgets (BluePrint) is a platform on top of Java. Opera has its own mobile widgets platform. The Astonishing Tribe (TAT) have their own UI framework, called TAT Kastor. There is Plusmo, there is widsets, and so on. Again, it is unclear where this is headed, including W3C's work on Widgets. The BONDI work from OMTP is on similar lines. Of the above, TAT is particularly interesting, with their relationship with S60 and Android. Opera's Widget work is interesting as well. They recently announced a relationship with UIQ.
Don't the developers need 'fewer' platforms? (The exact same sentiment as in this blog post from Little Springs Design )
So, what should a mobile application developer do?
Here are the options:
1) Try to develop on each platform, with diminishing returns with every new platform to which the application is ported to.
2) Understand your customer: That is, try to find out whether your customers need you to port on hundreds of phone models from at least half a dozen (Nokia, Sony-Ericsson, Motorola, Samsung, LG, Apple, HTC,...) manufacturers with different programming environments, or are you okay just concentrating on top two? Do you need a great user experience (in which case avoid Java), or, is reaching multiple devices more important than having a great application (in which case just use Java). If there is a need to reach non-data enabled device, use SMS.
3) Wait, for one (or two) dominant platforms to emerge. It may become a long wait.
Browser as an application platform.
This is where I spent a few years working on, unsuccessfully. The fact that the browser has been able to give an excellent programming environment is behind the success of the Web. Also, the fact that browser market share could jump from one dominant browser (Netscape) to another (Internet Explorer) meant that the developers did not have to worry that much about fragmentation. Internet Explorer came after Netscape got a dominant market share, which meant IE had to keep bug compatibility with Netscape. Anyone who wants to challenge IE now (Firefox, Safari, Chrome) will have to keep bug compatibility with IE. All good stuff for the developer. Standards obviously helped, but that was not the whole story. Unfortunately, this has not happened on the mobile front.
There is a real opportunity to standardize on the browser as THE platform for the mobile, that is, start with the current implementation of XHTML, CSS, Javascript, plus try to standardize on things that will immensely help the mobile developer: offline browsing (provide some data storage) and access to internal phone data: addressbook, calendar, file system, camera and the menu system. Then, add adequate security options and provide opportunities for mobile operators and handset manufacturers to monetize on that. In other words, the operators and handset manufacturers get to "sell" their interfaces (in a standardized way) to mobile application developers who want the richness. The security issues of a rich and deeply integrated platform probably needs a separate blog post. But security isn't a problem that can't be solved.
Yes, the browser itself will become a commodity (and it should be) and may cause the demise of companies trying to make money just by selling browsers if they dont innovate (think Openwave, think Teleca) or if they dont find anything connected to the browser (say, an SDK or a set of end to end services) that can be monetized. There is still a lot of scope for innovation in the browser itself: in terms of faster network access, less memory and battery consumption, better usability.
There is one problem here and that is a big problem. The current browser based tools do not give the ability to do what I call 'pixel-perfect' UI. The attempt to solve this in a standards based way has failed: with almost no adoption of SVG and the acquisition of Macromedia by Adobe. SVG lost out not for lack of implementation, but for lack of developer tools.
Which brings us to Flashlite, again. I think, among all the platforms, Flashlite has the best chances of making it. It has a dedicated developer community, good developer tools, a presence in major handsets and a viable business model.
The way for the browsers to compete here is not with yet another markup language, but by filling the gaps in HTML+CSS. The markup purists may not like it, but adding HTML tags and CSS properties to do advanced graphics is a good idea. Incremental ideas like border-image CSS property (draft, final version) can give a good path to mobile developers for a better UI experience.
Summary
Actually, there is no summary. The mobile developer has to pay the price of entering a chaotic market. Eventually, all markets mature and this will too. For now, I will advise mobile developers to follow option #2 (that is, select the platform based on your customer needs) and wait for consolidation. In the meantime, I will cheer for a browser based mobile application platform.
Saturday, September 20, 2008
Friday, June 06, 2008
My Ideal Mobile Application
This post has been inspired by a similar sounding post: My Ideal Mobile Browser. But I must admit, I had a pretty frustrating week with mobile phones, mobile applications and my mobile data network. And then, I realized that other than voice and SMS, I have not found a single decent usable mobile application for my own use. Web browsing (the Opera Mini, to be exact) comes a distant third. Well, the Openwave Mobile browser is (was) good too. But that is besides the point. I dont use email on my phone, the most I do (when my home internet is down, which will happen often because I happen to live in India), I browse to Outlook Web Access and check my work email, in case something needs attention. I know I will get a phone call if something really urgent comens up. So: email for the phone isnt that useful for me.
A few hours ago, I had a frustrating experience with Yahoo! Go. It claims to be the best Interent experience on the phone! It took several minutes to sign me in (the first time though, the subsequent sigins were faster), and half the widgets didnt work. It didnt have Yahoo! Messenger. That is what brought me to write a list of things that I need from my ideal mobile application. Do note that this list is platform or language agnostic, if you want me (and other users) to use your mobile application, think about these:
A few hours ago, I had a frustrating experience with Yahoo! Go. It claims to be the best Interent experience on the phone! It took several minutes to sign me in (the first time though, the subsequent sigins were faster), and half the widgets didnt work. It didnt have Yahoo! Messenger. That is what brought me to write a list of things that I need from my ideal mobile application. Do note that this list is platform or language agnostic, if you want me (and other users) to use your mobile application, think about these:
- Easy and Instant Sign-in: If the application wants me to sign-in, do it once, do it fast, do it in the background (or at phone startup) if you can and get over with it. I dont want to see the sign-in screen ever again.
- Cache off-line data: Use the network only to fetch data that changes. If you are downloading the same list (or file) over and over again, it is better to cache it. If you are writing on J2Me, use the record store. If you are a browser app, use appropriate cache-control directives.
- Dont drain my battery. This covers a lot of things like not using up CPU, not using too much data (think compression or tokenization, but be aware of the CPU implications), etc. But the bottom-line is, I need to be able to use my phone to talk, when I need it. If your application interferes with it, it will get uninstalled.
- Snappy UI. As easy it may sound, this is actually pretty hard. But the application has to visually appeal the UI. So, things like screen transitions and list scrolling need extra attention. This is also tied to memory usage: if the application is using up too much memory, it adverse affects the performance (even for a browser based app) because the memory allocator has to work overtime during low memory situations. Good wait animations go a long way in providing an illusion of snapyness.
- Background applications. If the application cant be paused when I am on a call (or checking out the photos) then it wont be useful for me. I am a (at least, I claim to be) a multi-tasker.
Coming soon: my ideal mobile development platform. I could go on with my frustrations with the current mobile development tools.
Sunday, May 11, 2008
Waking up from reality....
A few years ago; I had a dream;
A few men and women in white coats and black masks,
Were discussing serious things. They were even talking about me.
I could hear them well, but they not me.
I shouted; again and again, "Can you guys hear me" ?
But no, they kept talking.
And then, I woke up.........
A few men and women in white coats and black masks,
Were discussing serious things. They were even talking about me.
I could hear them well, but they not me.
I shouted; again and again, "Can you guys hear me" ?
But no, they kept talking.
And then, I woke up.........
Double Standards?
A story in NY Times, a very balanced and well written article on the double standards of a recent political storm. Speaking of double standards, here is JBQ's excellent post on the Miley Cyrus photo. For more on double standards of 'powerful' nations, I would recommend a book that I read last week: The New Asian Hemisphere.
Saturday, April 26, 2008
White Mughals
I had been reading White Mughals, by William Dalrymple (sent to me by Brent) over the last few weeks and getting to learn things that I had wondered about, but never had read before. From the cover, it seems the book is about a romantic relationship (and subsequent marraige) between the English Resident in Hyderabad and a Hyderabadi-Mughal noblewoman; however, it is anything but that. The romance is a just a faint backdrop of the political and social changes happening in the late eighteenth and early nineteenth centuries. How many cultures interacted together to form a complex political and social situation. How the British, slowly but surely (it took them almost 200 years to do that), took over the political power in India. How Hyderabad, Pune and Lucknow became big political players in India, but were unable to fill the void left by the crumbling Mughal empire; they eventually had to yield to the British. Finally, how the decisions of normal (even non-visionary) men (and women) affect the course of history.
I had always wondered how it took the British 200 years to consolidate their power in India (~ 1650 to 1850), but that power could be kept for only 100 years. Even the Mughal Empire lasted longer.( ~1556 to 1707). As a child, reading history, I always wondered what really happened between 1707 (death of Aurengzeb) and 1857 (Queen Victoria becoming the Queen of India). [I think know now, but but I am too scared to show my ignorance].
This book gives some of the details of what happened in the middle. The transitional phases of history; the period between two big empires, ends up being more interesting than the actual empire. Thinking more about it, in the last 2500 years of the Indian political history, the periods under a unified central rule were really little (100 years of the Mauryas, 150 years of the Guptas, 150 years of the Mughals, 100 years of the British, 60 years and counting of the Indian Republic): not more than 600 years. Which means, the real history of India is anything but political: it is social, cultural, religious and dare I say, spiritual.
One week of IPL
IPL (Indian Premier League) cricket is off to a promising start. Eight teams from eight Indian cities (Delhi, Mumbai, Kolkata, Chennai, Bangalore, Hyderabad, Jaipur and Chandigarh); multi-million dollar franchise; million dollar player contracts; add Bollywood to the mix, you have a recipe for success. (Dont forget the cheerleaders). Being the conservative that I am, I must still admit that I am actually enjoying this kind of cricket. I enjoy watching Test cricket and I am enjoying this T20 even more. My biggest attraction is the speed of the game and how much more this format needs the leadership of the captain; good thinking as well as team work. Ricky Ponting amazed me with the leadership he showed on the field as he run up and down cheering the Kolkata KnightRider bowlers. Add that to the already aggressive leadership that Sourav Ganguly was showing, you get a team that is all charged up. It is also giving exposure so much young talent and giving them an opportunity to play international standard cricket with the best players of the world. It is going to be an interesting month. My driver Akbar, however is really unhappy these days: three straight losses for the Hyderabad team. I am supporting the Knightriders.
Sunday, April 06, 2008
The Books I have read in the last year
The Age of Kali, William Dalrymple
The Age of Turbulence, Alan Greenspan.
The World is Flat, Thomas Friedman
Presidential Courage, Michael Beschloss
The Google Story, David Vise
Built to Last, Collins/Porras
The Ottoman Centuries, Lord Kinross
The Baburnama: memoirs of Babur
The Mughal World, Life in India's Last Golden Age, Abraham Eraly
Mirza Ghalib, Selected Lyrics and Letters (Urdu/English), KC Nanda
On the Mahabharata, Sri Aurobindo
Rise and Fall of Third Reich, William Shirer (ongoing reading)
The Age of Turbulence, Alan Greenspan.
The World is Flat, Thomas Friedman
Presidential Courage, Michael Beschloss
The Google Story, David Vise
Built to Last, Collins/Porras
The Ottoman Centuries, Lord Kinross
The Baburnama: memoirs of Babur
The Mughal World, Life in India's Last Golden Age, Abraham Eraly
Mirza Ghalib, Selected Lyrics and Letters (Urdu/English), KC Nanda
On the Mahabharata, Sri Aurobindo
Rise and Fall of Third Reich, William Shirer (ongoing reading)
Move to India: one year later
We are about to complete a year in Hyderabad. No mean achievement, this! Akanksha is going to school, she is loving it.
Akanksha is getting an average of one infection a month; she was even in the hospital for 7 days last month! But she handled it really well. Even I am not far behind: I am getting one infection a quarter. Madhumanti is doing definitely better. I found an unposted entry on Hyderabad; written last year.
Hyderabad
The last time I visited Hyderabad, it seemed like a city of contrasts: culturally. One could find women in burqa’a and in mini-skirts side by side. Now the contrasts seem economic as well. Mercedes showrooms (and people buying and driving them), malls, multiplexes, organic grocery stores and beggars on the streets: true globalization!
But still, it still doesn’t seem to have become a full fledged city yet: it seems the development is a bit random, patchy; parts of Hyderabad look like a western metropolis, and then there are parts that look like suburbs and then there are miles of rural emptiness. This is stark contrast from the uniformity and consistency of the US. But this is very different from the other Indian cities I am used to: Delhi, Mumbai and Kolkata. Parts of the Hyderabad reminded me of Gurgaon in 1997; but Gurgaon was 20 kilometers from Delhi. Hyderabad still has a long way to go. But there is a good chance of getting there. It maybe have to go through some social upheavals in the process.
Affordable housing seems to be slipping out of reach of even the upper middle class. A mini-version of the US housing cycle has also happened here. The interest rates were low, the banks would fund even upto 90% of the home (unheard of 10 years ago); the attraction of 50% appreciation a year drove demand up; a virtuous cycle! Things seemed to have cooled down slightly, with the interest rates rising from 7% to 11% over the last 12 months. So now, it is hitting the middle class the most. But the number of housing projects that have come up are amazing: almost copies of the US style apartment complexes. Long story short: housing is a problem.
The traffic is like any other Indian city: the lights are just guidelines. Even with half a dozen cops at the intersection, jumping a red light is easy and usual. One difference from Kolkata: there are no rickshaws. Another difference: there is fewer public transportation and fewer taxis compared to other metros. So, traffic is better run than the metros: better roads, and fewer cars and buses. But then, as I said before, the roads are not consistent either. The main roads are wide with almost no potholes: but the narrower lanes are pockmarked.
Exciting times ahead!
Subscribe to:
Posts (Atom)