Samsung BADA is a user interactive and service oriented smartphone platform that allows you to create feature rich applications for BADA devices using C++, Flash and web programming. All BADA applications have an application UI, the UI provides the form on which you present all your application’s information. In order to maximize user experience, you must carefully design and create your application UI.
The UI of BADA application consists of one or more application screens. Each screen is represented by the [highlight-blue]Osp::UI::Controls::Form[/highlight-blue] (in C++ framework) or [highlight-blue]Osp.Ui.Controls.Form[/highlight-blue] (in the web framework) class, containing an indicator bar, header, and footer. In addition to these, a form contains controls, which can be simple controls or containers that can contain other controls.
BADA Architecture
The BADA architecture consists of the following four layers –
Kernel
As is the case with a mobile operating system, the BADA kernel contains either the real-time operating system or the Linux kernel.
Device
This layer contains the core functions of the mobile device platform that are provided by the device operating system, graphics and multimedia functionalities and communication components. These functions include telephony, security, graphics and event & window management.
Service
This layer contains the service oriented functions that are provided by application engines and server assisted components. The application engines provided by the service layer include [highlight-blue]Contact and Messaging engines[/highlight-blue]. The server assisted features are provided by RESTful web-service components that interconnect with the service components of the BADA server. The service layer enables applications to manage data that is stored on remote servers, such as geographic information and user presence information. Access to the server-assisted features is possible through APIs on the Framework layer.
Framework
This layer contains C++ and web frameworks of BADA. The C++ framework consists of the application framework, interfaces and classes that provide access to the functionality on the underlying layers. The application framework provides the features for application life cycle management, event handling and application controls. The interface provided by the open API framework includes several basic interfaces that are needed by all application states, and for creating the user interface. The Web framework provides well established standards and features, such as [highlight-blue]WAC 2.0. HTML5, CSS and JavaScript, as well as JavaScript based cross-platform APIs[/highlight-blue] for UI controls and events.
BADA Application Model
The BADA platform supports the following application types –
Base Applications
These are stored in the ROM and cannot be removed using the Application Manager, Examples of base applications includes dialer, contact, camera and music player.
BADA Applications
You can install and remove BADA applications from your device as per your convenience. These could be C++ or Flash applications created using the C++ framework, or a Web Framework. Users access BADA application through the device’s main menu or task manager. The main menu displays the base and BADA applications installed on the device, while the task manager displays the icons of the application history for both currently running and inadvertently terminated applications to provide the user quick access to them.
Multitasking
The BADA platform now supports multitasking with version 2.0. However, when multiple BADA applications are running simultaneously, only one application can run in the foreground, while the remaining applications continue to run in the background. However, the user can switch the application perspectives and determine which application runs in the foreground. To view all the applications running, you can use the task manager, which lists all running applications, execution and launch history. You can terminate individual application by ling pressing the Menu button and then tapping on the end symbol over individual app.
BADA IDE
The BADA IDE is an integrated development environment that provides a set of development tools, such as C++ editor, compiler, debugger, Application Wizard, UI Builder, Potential Bug Checker, API and Privilege Checker, Memory Use Checker, Profiler, JavaScript Debugger, Testing Tools and UI sequencer. [highlight-blue]The BADA IDE based on the Eclipse CDT and JSDT[/highlight-blue]. Eclipse provides a set of code editing tools in its text editor. These tools support CDT features, such as syntax highlighting, code folding, tabbed documents, and content assistance.
UI Builder
BADA provides a UI builder to design and create the application UI. UI builder is a WYSIWYG design environment for creating user interfaces for applications. Which UI builder, you can create forms and all the user interface elements, which are containers and controls, which you want the forms to contain. [highlight-blue]UI builder stores the created forms as XML files into the project folder in the IDE[/highlight-blue]. UI builder has a dedicated toolbar in the IDE that provides additional time-saving design tools such as zoom, editing mode (set display to portrait or landscape) and align controls.
BADA Project Templates
The BADA IDE provides various project templates that make it easier for you to start coding your application. When you create a new project, you can select from the following templates –
BADA From-based Application
This template is suitable for creating a simple project based on a form. The template contains the basic application functionality as well as the functionality for drawing a form on the device screen.
BADA Flash-based Application
This template is suitable for creating a simple project based on a flash file. The template contains the basic application functionality as well as the functionality for displaying the contents of a flash file on the device screen. To use the Flash based application template, [highlight-blue]the FLASH_SERVICE and SYSTEM_SERVICE privileges are required[/highlight-blue].
BADA Empty Project
This template is suitable for creating a project with project files only, without any source or include files. The template is used if you have existing source files that you want to import into a new project.
BADA Shared Library
This template is used to create an application library with shared libraries. If you select this template, you need to make sure that the Linker of the IDE can access the external libraries at build time. Therefore, you need to define the path to the libraries in the project settings. When you build the project, the IDE creates the links to the external shared libraries.
BADA Static Library
This template can be used for creating an application library with static libraries. If you select this template, you need to make sure that the Linker of the IDE can access the external libraries at build time just like we did for using shared libraries.
BADA Web Application
This template is suitable for creating standalone BADA Web Applications using only web standard technologies, such as HTML5, JavaScript, and CSS files. The template contains the [highlight-blue]BADA 2.0 JavaScript UI for the creation of Web Applications with BADA native look and feel[/highlight-blue].