These video lectures are meant for developers who are new for bada or starting to create an application. You can view all of them to get an overall picture that helps you to understand the bada platform, or you can view specific lectures to find a particular piece of information you need. The lectures are based on SDK 2.0. These video lectures have English caption.
If you have any comments or questions about the lectures, post them on the bada forum.
Introduction to bada
This lecture introduces the features and architecture of bada. Samsung bada is a comparatively new smartphone platform that allows developers to create feature-rich applications.
The bada SDK includes most of the tools you need to create applications, for example, a compiler, debugger, emulator, documentation, and sample applications. You can test your application on your development machine using the emulator and generate artificial events for the emulator using the Event Injector. The Eclipse-based IDE helps you develop applications quickly and easily. The WYSIWYG UI Builder lets you visually design your UI and save it as XML files.
Your First bada App
The Application class helps you manage the application life-cycle. By inheriting this class, you can easily create a basic application life-cycle framework. When the application starts or terminates, its global settings can be saved or loaded using the AppRegistry.
Osp::Base – Fundamental classes of bada
The fundamental classes of the Base namespace are the Object (the top-most parent class of all bada classes), String, DateTime, and ByteBuffer classes.
This lecture introduces the collection data structures, such as ArrayList, HashMap, and various utility classes (Math, StringUtil, StringTokenizer).
Osp::Base::Runtime – Thread & Synchronize
Samsung bada supports multi-threading. There are two thread models: a worker thread and an event thread. The Mutex and Semaphore classes are supported to synchronize between threads.
Osp::Io – about bada file system
Samsung bada provides the File and Directory classes to access the file system. The bada file system uses data caging per application to enhance security. That is, applications can only access their own directory and files. The Database class is based on SQLite and supports SQL queries. Using the Database class, the application can treat large amounts of data easily.
Osp::System – getting information of device & system
The application can control devices, such as getting device information, registering alarms, or changing vibration mode or style. And there are classes to get system information, such as the current time in UTC, standard, and wall time modes, runtime heap memory and storage availability, battery level, system specifications (platform version, screen size, keyboard type), device accessory connection state, and current user settings.
bada UI Concepts
Samsung bada lets you easily create user interfaces. UIs are event-based, and the event handling logic can be written using interface classes. Basic controls include, for example, Frame, Form, Popup, Panel, and Button. The advanced controls include Flash, Animation, Map, and Web controls.
This lecture introduces some advanced UI controls, such as Multiple Form, Advanced List, SearchBar, and Orientation. When you create the UI with UI Builder, the form design is saved into XML files which the application loads, as needed.
Samsung bada has 2D and 3D graphics functions. 2D graphics functions support 32-bit color, buffer, bitmap, vector font, and basic primitives, such as point, line, rectangle, and polyline. bada also supports OpenGL® ES 1.1 and 2.0 and EGL™, which is a de facto standard.
Text and Internationalization
The Text namespace supports conversion between the major character encoding schemes, such as UTF8, UCS2, Latin1, GSM, and ASCII.
There are classes to identify a specific language code, country code, and variant code. Formatting locale-sensitive information, such as date, number, and currency, as well as converting dates, times, and numbers into strings, is also supported.
Media – How to play video & sound
Samsung bada supports multimedia handling. Applications can easily play video or music either by local playback or streaming. Most standard formats are supported. The camera can be controlled to capture images or to preview on screen. Low-level APIs for PCM data recording and playback can be used to create media applications.
UIX – Various sensors, STT & TTS
Samsung bada supports various sensors, such as acceleration, tilt, magnetic, and proximity. Face detection and recognition features enable you to locate faces from still image or video, and recognize the face by matching. These features allow you to create more intuitive and enjoyable applications.
Communication – Various networking methods of bada
Samsung bada supports various networking methods, such as sockets, HTTP, Bluetooth, Wi-Fi, Wi-Fi direct and Near Field Communication. Using the HTTP protocol, you can access Web resources. The supported Bluetooth profiles are GAP, OPP, and SPP. Also, Wi-Fi supports both infrastructure and independent mode. Using the independent mode, devices can communicate with each other without an AP.
Web – Embedding web browser into your app
Locations – Making LBS application in bada
You can easily make an LBS application in bada. Getting the current position, map data, and POIs are supported. The Map control, which enables drawing maps and overlays, supports zooming and panning. The route, directory, and geocoding services are supported by a service provider. In addition, user POIs can be managed on the local device or the bada Server.
Content - Contents management on your device
Samsung bada can manage both local and remote content. You can get information on local content, such as image or sound files, and search using a SQL-like syntax. Content can also be uploaded to a remote storage and shared with other people.
Ads – Extra revenue stream
bada Ads is the mobile advertising service from Samsung which enables application developers to have different types of advertisements in their bada Applications. Advertising opens up a new revenue stream for the application developers beyond the app sales.