Hello. It's very nice to meet you.
I am your bada lecturer. Shall we start learning bada?
I will give this lecture in the following order.
First, I will give a brief introduction to bada and explain the features and advantages
of the bada platform and then introduce the architecture and the namespaces.
In this first lecture, I will give you a brief introduction to bada.
bada is a smart phone platform. As you know, a smart phone platform refers
to a platform with which developers can develop an application using an SDK and load and run
the application onto a handset. bada enables developers to create applications
with features giving various experiences to users.
In particular bada supports many types of devices.
Now, let me show you the bada features. In particular, I will show you bada's user
interactive features, service-oriented features and easy development environment.
Let me briefly introduce you to bada's User Interactive features.
In my opinion, one of the most important features of bada is the easy development of simple-to-use
applications. In particular, bada supports a Flash control
to support Adobe's Flash programming that is widely used for UIs, it supports a Web
control that enables applications to easily interoperate with the Web browser, and it
supports a Map control that enables applications to easily interoperate with maps.
bada supports various input modes. bada supports multi-touch mode that is widely
used for smart phones, it supports motion sensors that are used to detect device motions,
such as an acceleration sensor, a gyro sensor, a GPS and a proximity sensor if the device
has these sensors. In addition, bada supports face detection
and weather-service software.
Another important feature of bada are the Service-Oriented Features.
The Service-Oriented Features allow an application to easily exchange various types of information
with the bada server. For location-based services, bada can get
the current location and information related to the current location from the server.
bada also provides a social networking function. bada's social networking function is called
'Social'. Social supports a personal information management
service, a buddy service to share information with other bada users, and a messaging service
between buddies so that developers can easily develop applications using the social service.
In particular, bada provides SNS, a Social Network Service gateway function that enables
easier access and the use of popular services such as Facebook, Twitter and MySpace.
bada's Content sharing provides functions to send and search for various types of content
from a device or the bada server. bada's Commerce function supports the in-app-purchase
function that enables users to buy or sell items from the application.
Since bada's development environment is based on Eclipse, developers familiar with Eclipse
can easily use the development environment. bada uses the GNU tool-chain for building
and debugging. In addition, for easier UI design, bada provides
a UI builder that enables developers to create an application's UI graphically.
Next, let's take a look at the bada architecture. bada basically consists of four components.
The kernel refers to the Kernel of the operating system.
The device refers to various platform supporting devices and core functions.
The service layer provides service-orientated functions through components that interoperate
with the application engine and the bada server. The framework includes the C++ open API that
bada provides for application development and provides more easy-to-use functions by
wrapping the functions provided by the platform. Therefore developers can develop applications
using the Framework. Next, let's look into the bada Framework API.
Since bada has been developed on the basis of C++, various classes and APIs are bound
to namespaces. These namespaces are classified into three
feature areas. First, basic bada features are provided to
manipulate data and access files within the bada framework.
The basic bada features include the Osp::App, Osp::Base, Osp::Io, Osp::Locales, Osp::Net,
Osp::Security, Osp::System, Osp::Telephony, Osp::Text and Osp::Xml namespaces.
In addition, there are namespaces that provide user interactive features to construct various
user interfaces on the basis of these basic namespaces.
These namespaces are Osp::Graphics, Osp::Media, Osp::Ui, Osp::Uix and Osp::Web.
Finally, there are service oriented features including the Osp::Commerce, Osp::Content,
Osp::Locations, Osp::Messaging and Osp::Social namespaces.
Let's take a look at each of them in more detail.
First is the Osp::Base namespace in the Basic Features of bada.
Osp::Base includes the fundamental classes used in bada.
For example, the classes to wrap C++ types, and the String, Buffer, DateTime, TimeSpan
and UUID classes. Collection types such as ArrayList, HashMap,
LinkedList, Queue and Stack are also included in this namespace.
In addition, to support multithreading applications, the Timer, Thread, Mutex, Semaphore and Monitor
items are supported. The utility namespace provides functions to
provide frequently used mathematical functions for applications, functions to convert strings
to Tokens and functions to convert text string formats.
The Osp::Io namespace provides functions to access and manage information saved in the
form of a file such as files, directories, database and the registry.
The Osp::Text or Osp::Locale namespace provides functions to handle localized text.
The Osp::System namespace provides functions to access system information and easily control
devices such as alarms and to make the phone vibrate using the vibrator.
Next, in the Basic Features of bada, the Osp::App namespace.
This namespace controls the application life-cycle. All applications are created as sub classes
of a class in Osp::App. Osp::Net basically supports low-level networking
functions. For example, it provides socket networking,
exchanging data using the HTTP protocol, Bluetooth networking and Wi-Fi networking functions.
The Osp::Telephony namespace contains various types of information regarding making a phone
call. This namespace provides phone functions, 3G
network functions and SIM access functions. The last Basic Feature of bada is the Osp::Security
namespace. This namespace provides the Cryptography key,
Cryptography algorithms and various certificate functions.
Next, let's have a look at the User Interface Feature namespaces.
The Osp::Graphics namespace supports 2D and 3D graphics, including APIs to draw a figure
on the screen in either 2D or 3D. The Osp::Ui namespace includes various classes
to construct the Form, Frame, Control and Keypad UI.
The Osp::Uix namespace provides APIs to support more diverse and advanced user interactions
by extending the Osp::Ui namespace. For example, this namespace provides functions
such as sensors, weather, vibration, motion and face detection.
The Osp::Media namespace provides multi-media handling APIs.
For example, it provides functions for image I/O, video and audio playback and recording,
taking a picture using the camera, and recording using the microphone.
The Osp::Web namespace allows the web browser to be used in the same way as a general UI
component and provides access to functions provided by the web browser and functions
to download through the web, as well as using JavaScript.
Finally, the Service-Oriented Features include the following namespaces.
First, the Osp::Social namespace provides various APIs to manage personal information
saved on the device and to exchange data and communicate with other users.
The Osp::Content namespace provides functions to easily manage various types of content
such as picture, video and audio files on the device or the server.
The Osp::Location namespace provides APIs to provide various location-based services.
For example, the map display function, the Geocoding function to convert the address
into coordinates and vice versa, the directory function and the route service function are
provided.
The Osp::Messaging namespace supports messaging and push notifications.
The Osp::Commerce namespace supports functions to query and purchase items on the Samsung
Application Store, that is Samsung Apps. Now, let's wrap up this lecture.
The bada platform provides an easy-to-use development environment and various, advanced
features that are widely used so that developers can easily create applications with complex
functions. In addition, bada provides various UI components
so that developers can easily create applications with an enjoyable UI experience and for applications
to receive sophisticated user input through various sensors.
bada provides various Service-Oriented APIs for users to develop service-oriented applications.