Wednesday, July 25, 2007

Porting 101 or How to destroy an industry...

One of the mobile market's major problems is the porting issue. Everyone in the industry is aware of the grim fact that every mobile application you make, you have to port to hundreds of mobile phones. The porting efforts can sometimes exceed the R&D time for the entire application... This issue holds the whole industry back, and must be resolved to get the mobile industry to the next phase.

I wanted to write about this subject for a long time, but it is so elaborate that every time I tried to, more and more issues popped into my mind... So I decided to "just write it", knowing that I may have missed a few things, but I would like to dig a bit deeper into the roots of the problems, as the effects of it are already known...

Unlike PCs, mobile phones are very different from one another. It begins with a different hardware (screen, memory, multimedia capabilities) and ends with a different OS/Virtual Machine.

One of the major differences between phone is what OS/VM they support. Some support Sun's Java (J2ME), others Qualcomm's Brew, others support Symbian and then there's the Windows CE smartphones and the Linux-based phones etc.

Going from one of the platforms listed above to the others, is more than porting - it is actually rewriting the application (And managing several codebases afterwards), and if all of the above would have had equal market shares - we might have been in a bigger problem than we already are... However, Luckily for us there is one platform that stands out, and that's J2ME.

Sun's J2ME (aka JavaME) is the dominant platform, especially in Europe, and even in the US it is becoming the de-facto standard pushing Qualcomm's Brew aside. J2ME is a Virtual Machine and as such is sometimes supported on top of other OSs, and that's what makes it so popular.

The problem is that even within J2ME, you still have to write slightly differently for various devices. Do you know Java's Motto "Write once, run everywhere"? Well in J2ME it's more like "Write once, port to 10 zillion devices, test till your fingers hurt and then hope for the best"...

Why does it have to be like that? Well, here are some of the major reasons:

1. Different profiles - Sun has defined two profiles for J2ME based mobile phones. The older one is called MIDP 1.0 and has limited features in terms of graphics manipulation, UI widgets, communications etc. The newer one is called MIDP 2.0 and is much more advanced and contains a more natural support in gaming needs. Today all devices going out to the market support MIDP 2.0, but there are still many MIDP 1.0 devices out there (For example Nokia Series 40 phones such as 6100,3100 are MIDP 1.0). In any case due to the limitations of MIDP 1.0 more and more content makers are not supporting it anymore.

2. DIfferent APIs - Some standard J2ME APIs are not necessarily available in every device. For example in the MIDP 1.0 days, the multimedia API (MMAPI) was not a "must" to define a device as MIDP 1.0 compliant. In the same way, today MIDP 2.0 contains a set of APIs the device must support, but many of the newer APIs, such as Bluetooth, PIM (Contact list access) and more are not a "must". Now, bear in mind that you can't just write a code that checks if that API is available and only if it is use it. If the API is referenced from your code and it is not available - your application will simply not run at all! So again you have to provide several codebases.

3. Proprietary APIs - In addition to Sun's formal specs and APIs, mobile devices vendors add to their phones special proprietary APIs. Usually these APIs allow the developer to utilize new technologies, or just supply a more native interface to the device hardware. The problem is that sometimes in order to create an application/game you have to use these APIs since if you don't everything would run very slow. A good example for that is NokiaUI which was an API that allows an accelerated graphics performance and enables some MIDP 2.0-like graphics manipulations in MIDP 1.0 devices.

4. Buggy Implementations - It is not uncommon to find standard J2ME versions that simply do not implement certain methods, or implement them in a wrong way. Sometimes the vendors are aware of this and mention it in their API documentations, and sometimes the developers themselves find it. So it is possible that two devices that implement the same profile, same standard APIs and same proprietary APIs, would still not work the same. For example, in Nokia 6680 if you'll try to rotate a sprite it will cost you dearly in the heap space (memory) of the device, and most likely crash it altogether...

5. Different hardware - Even if two devices share the same profile, APIs and implementation, their hardware attributes may affect how the code and even the graphical assets should look like. For example if one device has a resolution of 128x128 and the other has 240x320, you may have to produce different graphical objects for each of those. Also you may find yourself changing the UI concept altogether in the 128x128 device as it is too small for a UI that is best seen on 240x320.

The good news is that Sun is working closely with vendors to make a compliant set of APIs that should be more definitive (read my post on the MSA standard). The bad news is that we have heard before of other standards that didn't catch on in the market (Such as the JTWI). The problem is that even if one vendor does not adhere to the standard - all hell breaks loose.... (Not to mention the legacy devices that will affect us for 3 years regardless).

So let's wish Sun some luck, the mobile industry needs it...

P.S. - The photo above was taken in GamearraY's offices... These are just some of the handsets we have... So it's cool to get the newest gadgets all the time, but every such "gadget" comes with the intent of giving our developers a hard time in the porting process...

Wednesday, July 18, 2007

Facebook vs. LinkedIn

One of the hottest trends today is the migration of business people from LinkedIn to Facebook. For years LinkedIn was THE site for professional networking with no serious competition. But it seems that this situation changed and more and more users open profiles in the new and improved Facebook.

Up until recently Facebook was recognized as a personal networking site, and you would connect with your actual friends, and not with your professional contacts. Furthermore, it was restricted for people with an .edu email (Meaning only graduates of American educational institutes could use it).

A few months back, Facebook changed its policy and opened up for people from all around the world. It also announced an open API through which developers can easily create Facebook applications. This caused many people to open a Facebook account, and as more and more created it - the professional networks formed naturally.

For example, I opened my Facebook account just to experience their interface and API first hand, but before I knew it, I received requests from several colleagues... And now my network there contains some people that are not on my LinkedIn network...

I saw several posts in other blogs of people announcing they will cease to update their LinkedIn profile, and move to Facebook only. For example, Jeff Pulver the VoIP prince (who frequents Israel), wrote that in his blog. Paul Walsh wrote a similar post on his blog (and also a funny story about a friend being dumped by his girlfriend on Facebook...)

And since this is a mobile blog, we can't neglect the mobile aspect in which Facebook seems to be a bit ahead over other social networks: Facebook has a great mobile interface that allows viewing profiles via WAP, uploading photos, sending and receiving SMS notifications and much more.

One annoying thing in Facebook is that they allow those vibrating/flashing/blinking advertising saying that I am the 999,999 visitor (again?...) - it really bothers the eye, and I think that they should have a more strict policy on ads.

So for now, I am still not abandoning LinkedIn, since it served me well so far, but this might change if in a few weeks my Facebook network will outgrow my LinkedIn one. So if you want me to leave LinkedIn, look me up on Facebook...

Friday, July 13, 2007

WiFi / VoIP Wars: Part II

My latest post about the WiFi calls revolution was published in Israel's leading business magazine, TheMarker (Hebrew), and was also syndicated later to Haaretz, one of the leading daily papers here.

This obviously generated a lot of comments from readers on the various sites, and also some from my personal colleagues. So I am going to address a few of those here, but in any case it can clearly be seen that this subject interests a lot of people from across the value chain (including the end consumers...) . Here are the 3 major comments/questions:

1. VoIP subscription - Some noted that calls are not entirely free, since if you want to reach an actual landline/mobile you have to pay to the VoIP provider (Same as with SkypeOut). While that's true for now, think about what happens when most people have a WiFi-enabled phone: We will all be available at least some of the time with our VoIP presence, so everyone can call their friends inside the VoIP network without needing the operators' network (or the PSTN). In that "world" the balance between pure VoIP calls, mixed VoIP/mobile and pure mobile depends on the areas WiFi covers.

2. Quality of service - Some people who use Fring/Truphone said that the current quality of service can be low and they experienced all of the problems new voice services have: poor voice quality, hangups etc. So most still prefer to use regular mobile calls, even if they are more expensive. It's good to get this feedback, however they also agreed that in the long term probably these problems will go away, in the same way we saw Skype improving.

3. WiMAX - Some people asked why I didn't address WiMAX. First off, it should be clear that WiMAX is also a major threat (or opportunity...) to the operators, and in fact it's an extension to the same threat WiFi poses. Anyway, I preferred to focus on WiFi since devices are already in consumers' hands with the relevant software deployed and the infrastructure is here and now. Though several WiMAX networks are already deployed, the full power of WiMAX is still ahead of us (But closer than we think).

That's all for now, I am sure we will hear a lot about this subject. After publishing the post, I also saw that there's quite a "war" in the UK over this issue. Things are about to get interesting...

P.S. - Thanks goes to Guy Grimland who was bugging me for a while to submit an article to TheMarker... Guy is TheMarker's hitech reporter who also covers the Israeli gaming industry and gives it the attention it needs.

Friday, July 6, 2007

Viva la WiFi calls revolution!

Now that WiFi enabled phones are starting to get into the market, it can be easily foreseen that WiFi calls will become a reality for mainstream users in the next 3-30 years. Why this wide range? Well, 3 years if it was dependant purely on technology advancement, 30 years if it's up to the operators...

Yes, though they try to be cool about it, operators are very much afraid of WiFi calls, and it's very easy to understand why: When you have a WiFi enabled phone, whenever you are around a WiFi hotspot you have internet access which means that you can technically make voice calls over the internet the same way you make them with Skype on your PC.

If your phone is Windows mobile based, you can actually run Skype Mobile, simple as that. If it's not, third parties such as Fring and Truphone offer their own solutions. Without getting into details about the solutions and their differences, they enable VoIP calls over WiFi and also over 3G. (BTW - VoIP over 3G is cost effective only if you have a flat/cheap data plan, if you're not roaming and of course provided that your operator doesn't block it...). In addition phones are starting to come with built-in VoIP software.

Now WiFi is not everywhere, and also not always free, but even if you are in the airport, suddenly the outrageous $10/hour rate can make sense when it comes as an alternative to mobile calls while roaming.

Over the past years, operators have been fighting to provide their subscribers a walled garden Internet instead of an open environment in order to route all mobile content through their channels and cut their usual 50% cut. This has been going on despite of legislation and despite of protests of strong content providers such as Google.

How much of their revenues do operators make from data services you ask? Well, it's 7%-20% (Including SMS, browsing and mobile content). Voice accounts for more than 80%, and even 90% of operators revenues. Think how far they would be willing to go in order to protect that.

And this exactly why Vodafone and Orange asked Nokia to disable VoIP on the N95 in such a way that not even possible to use Truphone, and you can see Truphone's video demo comparing an unlocked phone vs. a locked one. (BTW - I perceive the N95 as a breakthrough, since most of the other WiFi enabled phones are far away from mainstream, either the Blackberry-like E61, the Windows bulky smartphones etc.)

Another example is that the all powerful iPhone was released with no WiFi calls support. Apple has done a lot to equip this gadget with all the software needed to enjoy the full experience of a phone/media/Internet, so why not include the one killer app that could have utilized 2 of the iPhone strengths?

But unlike the battle for mobile content which is still waging (With the operators having the upper hand), this is one battle they can't win, and in fact this battle will also make them lose the battle over mobile content. And the reason for that is simple: Up until now, the operators were our ISP as well. Every data packet came through their gateways, and as such they could always block whatever they wanted: By IP address, by file type (ringtones, games), by protocol (SIP) etc.

WiFi phones provide the bypass everyone has been waiting for: You can access the Internet directly whenever you are around a WiFi spot, and the operator can't do anything about it. What it can do, is sell its subscribers blocked phones, but soon everyone will understand that it's better to buy unlocked phones from retail stores.

Knowing that, some operators are embracing the "if you can't beat them, join them" approach. One of those is T-Mobile which is even promoting now a WiFi phone, but still capitalizes on this "generous" offer by taking $10/month from subscribers. Another operator that promises to open up is Hutchison/3.

In any case, operators are going to have to be creative and innovative to turn this situation from a potential disaster to a stage in their evolution. I am sure that in this case openness will be rewarded with customer loyalty, while tricks like locking phones, which is in any case a very temporary "solution", can only have the effect of antagonizing customers.

We should also remember that in any case, that while WiFi is spreading to a lot of places even to the extent of city-wide hotspots, it is still far from the worldwide coverage that operators networks supply (for now...), and this is another reason for operators to act wisely and not block WiFi, so their users stay loyal and use their network when out of WiFi range.

P.S. - For more on the N95 blocking you can read this. Also as a side note, even PSP will support VoIP soon.

Monday, July 2, 2007

Go Yahoo! Go

Have you seen Yahoo! Go 2.0? If not, go get it. Go is Yahoo's interpretation of how the mobile web experience should look like, and from all I've seen up until now - they got it right.

Yahoo! Go is a client application that allows you to basically do everything. Starting with search of course, browsing the web, accessing your Yahoo! mail account, accessing your Flickr account, finding directions and maps, checking the weather, news from around the world (via RSS) and more.

Being an all-in-one solution often means compromise in the various components withing the solution, but Yahoo! succeeded in giving a best of breed solution to each and every one of the enclosed components (With the understandable exception that you can only access their own proprietary services such as Yahoo! Mail and Flickr).

Generally, the interface is very user friendly and also "easy on the eyes" (You can see it yourselves in their slightly annoying demo video). Switching between the different applications is done via a carousel at the bottom of the screen. The applications themselves feature the same navigation and text entering interfaces, so once you learned the basics in one app, you are good to go in the others. Yahoo! have even placed an Intro tour that guides you through the interface in the first time.

About the various apps themselves, let's start with the search engine which is custom tailored for the mobile, and knows to bring the most relevant items, whether these are sites, pictures, reviews etc. For example if you search for a celebrity you will immediately get her pictures on the top... If you search for a movie, you'll get links for buying tickets and so on. Giving the relevant items on a mobile device, is even harder than on the web, since you want to give the user the top 80%-90% of the relevant results in the first page, which is difficult enough even on the web, but more difficult when you have the screen of a handset...

When you find what you want - you can browse the site with Yahoo! Go. It doesn't send you to the handset's mobile browser (which often doesn't cut it), instead Go features its own browser that also formats even regular web pages to your mobile, similar to what other mobile browsers such as Opera Mobile do (And this can be a big threat for Opera).

And of course you get ads on the top of the page if Yahoo! wants to, and these are ads from their network, regardless of what site you are browsing... In fact, as mobile advertising is getting more and more mainstream, the strategic value of having a "real estate" on the mobile phone is getting to be extremely important for search engines.

Back to the product: The Maps service is simply amazing, you can ask for directions, get them verbally and see them on the Map (And if you have a GPS, you can see where you are on the map). The weather service also works great, and you can easily add any location that you are interested in. Same goes for RSS news - add your own sources, track specific people or companies etc. You also have sports, finance and entertainment sections that are already configured with content sources.

Flickr access is very easy, and browsing through your pictures or others pictures is very intuitive and surprisingly fast. You need to enter your Yahoo! ID once, and then it automatically recognizes you both on Flickr and in Yahoo! Mail (Which also works great, but Google/Gmail provided such a service a long time ago).

In addition it seems that Yahoo! have dedicated a lot of thought to reducing data traffic, which is considered rightfully as a barrier for acceptance of mobile applications by users. You can check at any time how much data you transferred, and at the end of the session, you see the amount of data transferred. My "test drive" (on Nokia N73) included checking mail, entering my Flickr account and browsing through thumbnails of my pictures, asking for directions in NY and seeing them on the map (plus zooming in, moving the map a bit etc.), searching and browsing a few sites and more - and all of that consumed only about 0.5MB (At least that what Go reported...)

Now, what's the catch? Well the most significant issue now is that their device support matrix is still rather small - a lot of the phones appear on the site as supported but marked with a "coming soon" label. In any case, the support is improving. A few months ago, right after 3GSM 2007, where I originally saw Go, I tried to download it to my SonyEricsson K800i but it wasn't supported. Today it is.

Another small issue is the size of the application: 613KB for the Nokia N73 version... Nowadays it's not much of a problem, since devices have dozens of MB available for apps, but still it can take a lot of time to install over the air, especially if you don't have 3G. In addition, it makes me wonder how the implementation would look on older phones that they claim to be "coming soon".

And of course there's the issue of the content itself. On the web I usually tend to use Google's services, whether it's Gmail, Picasa or Blogger (used to write this blog). The question is whether having a great mobile solution such as Yahoo! Go will change my (and others) usage patterns when it comes to the web.

And while we are talking about Google, let's see what they have to offer: Google mobile services include their Gmail client and a Google Maps client. all the rest of the services are WAP based. Now you may ask what's wrong about WAP? Well, just read on a bit more (you've come so far...)

The Google Maps client interface is not an eye candy, but it has some nice features Yahoo! doesn't have. As for Gmail, I should say a few good words here: Gmail client was truly innovative for its time, both in terms of interface and usability. I am using it for over a year now if I remember correctly, and as a person who doesn't like carrying around my laptop (or using a heavy PDA) it changed my email availability altogether.

Google had a WAP version for Gmail even earlier, and I used that too, but as WAP services often are it was soooo sloooow so I avoided using it too much. So today when people are asking me what's wrong about WAP, I am telling them that the point in time when I started using mail on my mobile as a real alternative was when Gmail client came out (And usually they remember that it was the same for them...)

As I mentioned, aside from the mail and maps, Google offers the other services as well, but in WAP mode, and the experience is very far away than the experience you get with Yahoo! Go. Yahoo! is definitely on the lead here.

So, Yahoo! - you get a big thumbs up from me (I know you were waiting anxiously for this approval...) and Google - start running and fast - the mobile space is one place you don't want to lose to Yahoo!...

P.S. - I know everyone is blogging about the iPhone these days, so I'll make my contribution as well: Yahoo! Go supports the iPhone, and this shows how strong iPhone is from the get go. (And not another word unless Apple wants to send me one so I can review it properly...)