Original URL: http://www.theregister.co.uk/2010/03/09/samsung_bada/
What's so bad about Samsung's Bada?
Samsung's iPhone pitch comes to life
Samsung has been showing its first Bada phone, able to download applications from Samsung's version of iTunes and nowhere else. But will Bada really challenge Apple and the iPhone?
That's clearly what Samsung has in mind - Bada is a closed platform owned and controlled by Samsung, and Bada applications have to be approved by the company and are all sold through the "Samsung Apps" store. Bada is supposed to enable smart-phone functionality at feature-phone prices, and the comes with a comprehensive development platform even if it's somewhat lacking in imagination.
The ability to download new Bada apps is central to the Wave
The Wave is Samsung's first Bada-compatible handset - we don't know what the retail price will be but the specifications suggest that the feature phone price is still some way off unless Samsung decides to sell the Wave as a loss leader. The first Bada handset has a 3.3-inch-AMOLED screen with capacitive touch sensitivity, 2GB of RAM, 8GB storage and a 1GHz (snapdragon) processor - that's roughly what Microsoft is asking for its Windows Phone 7 Series handsets, so not really low-end territory.
But the Wave is intended to be the first of many Bada handsets, and Samsung is quick to point out that Bada will feature in "a significant" proportion of the 100 million touchscreen phones Samsung intends to shift in 2010 (having sold 40 million in 2009), so there should be a few customers prepared to buy Bada applications for the next couple of years at least.
Not that all Wave applications will have to be Bada - the handset also supports Java (MIDP 2.0), and there's some support for OMTP widgets though the extent isn't clear yet.
But we're interested in Bada development, which is done using C++ with the Bada SDK and associated Eclipse-based IDE, both of which can be downloaded from the Bada Developers' site.
Bada's approach to C++ is suitably modern: no multiple inheritance, except of interfaces, and no object properties - everything's fully encapsulated. The latter requirement might make porting applications onerous, but only if you've let your developers (or yourself) slip from best OO practice.
One thing at a time, unless you're Samsung
The Bada platform doesn't do multitasking, at least not between downloaded applications. Local applications (preinstalled) can multitask with one Bada application at a time, which means the developer has to deal with the whole background/foreground thing without the advantage of proper multitasking.
When an app pops to the front, or drops to the back, there's an event notification, but there's no mechanism for the application itself to request foreground status - you'll have to wait for the user to select your app through the task manager or by launching the app again.
Applications can be closed by the user hitting the End key, when another Bada application is launched, or if the underlying system thinks it's short of resources. But there's a decent notification system along with mechanisms for application-state storage and retrieval.
Once an application is running it can access the usual range of libraries: containers, panels, menus, etc. and including OpenGL ES for 3D graphics. Functions for embedding Adobe Flash content in an application are also available, but most interesting is the range of "Social" APIs.
All your contact are belong to us
Bada's aspirations aren't limited to applications running on the handset, Samsung sees itself as the perfect identity aggregator with its own social networking infrastructure which then links (server to server) to the various existing systems.
All your identities in one place, carefully looked after by Samsung
That provides a standard interface for applications that want to manage social interaction, with the inevitable limitations that such a standard approach implies - exemplified by Bada's refusal to recognise Facebook's "It's Complicated" or "In an Open Relationship", but perhaps the demographic Bada is aimed at doesn't have complicated or open relationships.
Not that this will be a problem for a while: for the moment the only identity Samsung is aggregating is Twitter (which isn't really aggregating at all - one can't aggregate a single identity - but we'll let that pass). Samsung promises that more platforms will follow real soon, and in the meantime users are welcome to make use of Bada's own social networking system.
That system coexists with all the rest, as the place with which all other identities are synchronised. Within Bada's social network punters can have degrees of friendship; which is nice, and all the normal interactions one would expect to see are supported. But Bada isn't limited to making friends and influencing people - the platform has dedicated APIs for creating notice boards as well as posting content to them, though it's not clear how or if such boards would interact with other social networks.
All of which is typical of the platform - everything you'd expect to see is there, but nothing fires the imagination or opens up new possibilities as one might hope, as demonstrated by the external sensor API. Bada devices can have sensors of proximity, acceleration, location, magnetic north, tilt, proximity and weather (yes, weather, which is automatically sourced from Weather.com).
Not all Bada devices will have all those (though the Wave does) but no Bada device will have any other sensors. There is no open-ended API to allow for unexpected developments or innovations.
Not only that, but the existing APIs are targeted at doing that which mobile phones already do. So the proximity API is Boolean: either there's something in front of the phone, or there isn't, which is great if you want your application to lower the volume when the handset is brought up to the ear, but useless if you've got something more interesting in mind.
Is Bada worth all this attention?
If Bada had come from anyone except Samsung then it probably wouldn't be worth pursuing, but Samsung shifts an awful lot of handsets and if the company decides to back Bada properly then it's going to be an important platform.
To achieve that Bada handsets will have to cost less that their Android, or iPhone, equivalents, which the Wave specification does not make likely unless Samsung really throws itself into Bada with a loss-leader. Failing that Samsung is going to have to squeeze its new platform onto less exuberant hardware.
Given the limitations of the platform, and the potential problems porting existing applications, we'd probably wait until Samsung has demonstrated that it can fit Bada into a feature-phone-priced handset before embarking on any serious Bada development. ®