Samsung recently announced the launch of bada v2.0. And now, the SDK is available for download from http://developer.bada.com > Dev Tools > SDK download. So, what’s new in this release? As promised earlier, it’s a significant step up.
The following are the highlights:
From bada 2.0 onwards, the OS supports multitasking. When multiple bada applications are running simultaneously, only one bada application can run in the foreground. The rest must run in the background. The user can switch application perspectives and determine which application is running in the foreground at any given moment.
In practice, the size of each active app has also an impact on multitasking. You can learn about how to utilize this option for your application from below articles.
Multitasking in bada: Enabling Multitasking in Applications
bada 2.0 introduces three new navigation styles: Header, Footer, and TabBar. The Header [Figure 1] control acts as a placeholder for displaying descriptive content at the top of the screen. Headers can contain a title, description text, and items, such as buttons, for performing various user-defined tasks.
The Footer [Fig 2] control displays at the bottom of the screen, and is used to switch between different views or to host buttons for performing user actions. It can also display badge icons for tab items to notify the user of the number of new content items in a specific view.
Both the Header and Footer controls can be made translucent.
The TabBar [Fig 3] is a horizontal menu that can be placed anywhere within the body area of the screen. The TabBar control contains multiple items, possibly more than can fit into the screen simultaneously. The TabBar is also scrollable.
More controls such as SearchBar and Gallery are also introduced for convenient implementation of UI functions.
Fig 4: SearchBar #1 Fig 5: SearchBar #2
The SearchBar is a simple control that provides an editable search field for entering keywords and an optional button that is displayed in the input mode.
The Gallery control allows you to display a collection of images in a slideshow format, with various options to control transitions.
From this version onwards, you can use the new Osp::Ui::Animation namespace. The Animation namespace offers classes that can help introduce a variety of fantastic animations into your application. Animations can be attached to Form or controls for various effects including screen transition. Animation types include size, transparency, rotation, position and more.
You can get a detailed description of all the new UI controls from below articles.
UI: Creating the Application UI Using bada UI Controls
Samsung bada 2.0 supports three different screen resolutions: WVGA [480x800], HVGA [320x480] and WQVGA [240x400]. To help you design UI independent of screen resolution and aspect ratio, we have introduced a concept called the Layout. You can position various controls on the screen using three different Layout styles: Linear, Grid and Relative.
In the Linear Layout style, a UI control is added relative to the previous one. There are two variants of this style: Horizontal and Vertical. In the horizontal style, a new control gets added to the left/right of the previous one. While in the vertical style, the new control gets added above or below the previous one.
In the Grid style, each control is positioned in a cell of a 2-dimensional grid. Each cell of the grid is sized based on the height and width of the control placed in it.
In the Relative style, each control’s size and position is a function of other controls added to the container. The difference between Relative and Linear is that in the former, you can choose which other control the newly added control should be related to. Whereas in the latter, the new control is always related to the most recently added control.
To delve into details about developing screen resolution-independent UIs, visit below links.
Layout: managing layout of UI
An overview of Layout management in bada 2.0
Support for Near Field Communication
The Near Field Communication (NFC) service is a set of short-range wireless technology services. It also includes the contactless card technology, vicinity card (known as RFID) technology, and near field communication technology. It enables devices to share information within a distance of less than 4 centimeters with a maximum communication speed of up to 424 kbps. The NFC service has three operating modes. NFC enabled devices can change the mode of operation to card emulation mode, read/write mode, or peer-to-peer mode. Currently, the bada NFC API only supports read/write mode.
You can get a detailed description of NFC, visit below links
Near Field Communication (NFC): enables your device to share information with other NFC devices and tags
Introducing NFC Manager, tag discovery and message read/write
Enhanced Inter-application Communication
To support more interaction between multiple bada Applications, we have introduced two classes: ServerChannel and ClientChannel. An application can send a request to another application using ClientChannel. The request is handled by the ServerChannel of the recipient application, which can control the response to be delivered.
To learn more about developing bada applications using the Inter-application communication, please refer to below articles.
Fig 6: Channel communication
Sending requests to other bada C++ applications
Sending responses to other bada C++ applications
Inter – Application Communication: Exchanging information between two bada apps.
Support for Speech-to-Text, Text-to-Speech
This version supports a Speech-to-Text class that recognizes speech and converts it to text, so that your application can implement voice-driven features, such as dictating a note, controlling your application by voice, and voice chatting. It also supports various properties, such as locale, grammar, silence detection, profanity filter, and punctuation override.
Meanwhile, a Text-to-Speech class synthesizes speech from a given piece of text and plays it. As a result, this feature can enable your application to implement voice-driven features, such as a note reader and talking dictionary. It also supports various properties, such as locale, voice type, and speech rate.
To learn more about integrating Text-to-Speech/Speech-to-Text features inside your app, please refer to below articles
Using SpeechToText (STT) for converting spoken words to text
Using TextToSpeech (TTS) for converting text to speech
A brief introduction to Speech To Text feature
Simple use of Text To Speech feature in bada
The Wi-Fi Direct protocol allows communication between multiple Wi-Fi enabled devices without the need for a controller device, such as a hotspot. Imagine 5 bada device owners in a train competing in a high end racing game, or, transferring your entire album of photos from your recent trip to Marseille to your friend’s device in seconds. That is the kind of inter-device communication channel that this protocol opens up.
Samsung bada offers a set of Wi-Fi Direct classes that allow you to manage the Wi-Fi Direct device, create a Wi-Fi Direct group, scan Wi-Fi Direct devices, and associate with a Wi-Fi Direct group owner.
To learn more about developing bada applications using the Wi-Fi Direct, please refer to below articles.
Guide for Wi-Fi Direct™ Connectivity
Wi-Fi Direct: Explains how to setup the Wi-Fi Direct network.
The OpenAL namespace within the Media namespace enables your application to create 3D sounds through OpenAL (Open Audio Library). OpenAL is a cross-platform 3D audio API appropriate for use with gaming applications and many other types of audio applications. The library models a collection of audio sources moving in a 3D space that are heard by a single listener somewhere in that space.
For more details on integrating OpenAL API into your app, refer to below articles
OpenAL:create 3D sounds through OpenAL (Open Audio Library)
From v2.0, bada platform offers a set of easy-to-use APIs to insert targeted Ads into your application. These APIs allow you to choose the content type and dimensions of the Ad, determine how often they should be refreshed and control the action sequence when the User touches an Ad control.
The Ad control supports two types of Ads: Image Banner, and Text Banner. When the user touches the Ad, one of the following actions is triggered:
Click-to-Browser: Opens a web page, set by the Advertiser, in the default browser.
Click-to-Call: Automatically dials a number set by the Advertiser
Click-to-Store: Launches Samsung Apps Store with the product page defined by the Advertiser.
To learn more about integrating Ads into your app, refer to below articles.
Ads: Publishing Advertisements
Introducing bada Ad Gateway
From bada 2.0, you can offer various forms of notification support in your app. You can use a combination of any of these notification types: Ticker, Quick Panel, Badge Number and Sound. The Ticker model informs users when applications on their bada devices have data updates waiting for them. The device informs the user of the data on the server that the client application needs to process. If the user has enabled this feature and the application is properly registered to receive the update notifications, the notification is delivered to the device and handled by the application. From the user's perspective, it appears as though the client application is always active in the background, waiting for notifications.
To learn more about integrating Push Notifications into your app, refer to below articles.
Push Messaging: The bada push messaging service enables you to push events from an application server to your application
Receiving Push Messages.
More Framework Features
Enhanced Support for Flash, HTML5
Support for HTTP live streaming
Integrated support for a JSON parser
You can monitor the performance of your application on the target device using the Performance Analyzer tool available as part of the IDE. The tool offers six Eclipse views – Monitor, Timeline, Call Stack, Events, Summary and Warning.
The Monitor view displays a list of entities that you have chosen to keep track of while using the Performance Analyzer tool. The Timeline view offers a graphical representation of the timestamps of the events triggered for the selected monitor. The CallStack view displays the order in which methods are called for the application, with the latest called method always at the top. The Events view displays the event data of the monitor selected in the Monitors view. The Summary view displays the threads and objects used by an event. The Warning view displays warnings based on trace results. It lists the error conditions, and the objects that caused them.
To learn more about using the Performance Analyzer tool, refer to below articles.
Performance Analyzer: You can monitor the performance of your application on the target device or Emulator using the Performance Analyzer tool
Ensuring the application performance with performance analyzer
Profiler is another tool which is available in the IDE which helps you to fine-tune your application. The Profiler calculates the application method call count and execution time, and determines the code fragments that take the maximum time to execute. This information further helps you to optimize your application code by identifying the bottlenecks in the code blocks.
To get the profiler results, you need to build your application with -p and -pg profiling options. When the application built with these options completes a run, the IDE’s Profile view is displayed. To learn more about using the Profiler, refer to below articles.
Profiler: The Profiler calculates the application method call count, execution time, and more
Tips to improve the Performance with Profiling
Emulator: Simulator environment has been changed to Emulator. You can now debug and run multiple applications, multiple times without having to restart the device emulator for each attempt.
Potential Bug Checker: Detects potential bugs in applications.
The different language packs are replaced with a single unified version of the SDK.
Web Application Framework
From bada 2.0 onwards, you can build your entire application using web technologies.
HTML5: You can take advantage of support for an application cache, web storage, canvas, geolocation, video, audio, WebSockets, cross-document messaging, and server-sent events.
WAC API: You can also use device APIs such as PIM, Device, Messaging, Camera, Accelerometer, Orientation, and File System.
To learn more about developing bada applications using the Web Framework, please refer to below articles
Web Application Developer Guide
For more information, see the Developer Guide and release notes for a detailed understanding of every new feature that has been introduced across all namespaces.
We invite you to download the new SDK and test your applications today.