[bada로 뛰어들자] 프로젝트를 만들자!

bada 2010/05/19 22:06 Posted by 종이비행기

2010년 5월 6일 드디어 베일에 가려져 있던 bada 모바일 플랫폼 SDK가 개발자들에게 공개되었습니다. 아직 bada 플랫폼이 적용된 스마트폰이 발매되지 않았고 SDK 또한 beta 버전이기는 하지만, 단기간에 개발되었다고는 하나 SDK를 보면 제대로 만들었다고 생각이 들게 합니다.
한국은 미국에 비해 소프트웨어 산업이 전반적으로 약하나 특히 시스템 소프트웨어는 더 심합니다. 큐브리드 DBMS 프로젝트를 참여하게 된 것도 그런 바탕을 미력이나마 도울 수 있을까 하는 고민에서 시작하였습니다. bada 또한 저에게는 한국의 대표 기업인 삼성이 모바일 플랫폼 분야에서 세계적인 모바일 기업인 애플과 나란히 할 수 있기를 바라는 마음에 관심을 갖게 되었습니다.
공부하는 입장에서 쓰는 글이라 부족한 점이 많겠지만, 함께 스터디를 해나간다고 생각하시고 양해해주시길 부탁드리겠습니다. 함께 bada에 뛰어들어보자구요~


bada SDK가 설치되었다고 가정하고 프로젝트 생성부터 시작하겠습니다.



1. 프로젝트 생성 File - bada Application Project를 선택합니다.




2. 프로젝트 생성 마법사가 보입니다.

프로젝트명을 적절히 입력하여 주세요(FormTestApp으로 하겠습니다). Project type에는 Application의 bada Form Based Application을 선택하겠습니다.


(맥 사용자인데 개발도구가 맥용으로 개발이 되었으면 좋겠습니다^^)

다음의 각 프로젝트 템플릿별 설명은 삼성에서 공개한 문서에서 발췌하였습니다.

1. bada 프레임 기반 어플리케이션(bada Frame Based Applications):
    • This template is suitable for creating a simple project based on a frame.
    • 이 템플릿은 프레임을 기반으로 둔 간단한 프로젝트에 적합하다.
    • You can create an application for getting more familiar with bada or for testing particular steps in application creation.
    • bada에 더 친숙해지기 위해 또는 어플리케이션 생성의 특정 절차의 테스트를 위해 어플리케이션을 생성할 수 있다.
    • This template contains the basic application functionality as well as the functionality for printing out the project name on the device screen.
    • 이 템플릿은 디바이스 화면에 프로젝트명이 출력되는 기능과 같은 기본 어플리케이션 기능을 포함한다.


2. bada 폼 기반 어플리케이션 (bada Form Based Applications):
    • This template is suitable for creating a simple project based on a form.
    • 이 템플릿은 폼 기반의 단순 프로젝트를 생성하는데 적합하다.
    • This template contains the basic application functionality as well as the functionality for drawing a form on the device screen.
    • 이 템플릿은 디바이스 화면에 폼을 그리는 기능과 같은 기본 어플리케이션 기능을 포함한다.


3. bada 빈 프로젝트 (bada Empty Project)
    • This template is suitable for creating a project with only project files without any source or include files. The template is used for importing the existing source files.
    • 이 템플릿은 어떠한 소스나 포함된 파일도 없이 오직 프로젝트 파일만을 가진 프로젝트를 생성하는 데 적합하다. 이 템플릿은 존재하는 소스 파일을 추가하는 용도로 사용된다.


4. bada 정적 라이브러리 (bada Static Library)
    • This template is suitable 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 the 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 static libraries.
    • 이 템플릿은 정적 어플리케이션 라이브러리를 생성하는 데 적합하다. 이 템플릿을 선택하면, IDE의 링커가 빌드 시점에 외부 라이브러리에 접근할 수 있도록 만드는 데 필요하다. 그러므로, 프로젝트 설정에서 라이브러리의 경로를 정의할 필요가 있다. 프로젝트를 빌드할 때, IDE는 외부 정적 라이브러리로 링크를 생성한다.



3. bada SDK를 선택하는 화면 입니다.

다음 단계로 넘어갑니다.





4. 디바이스 설정 화면 입니다.

manifest.xml 파일을 생성해야하는데, bada 개발자 홈페이지에서 생성할 수 있으며 현재는 테스트 개발이므로 기본 파일을 사용하겠습니다. 다음 단계로 넘어갑니다.





5. 기본 폼 이름을 정합니다.

디바이스에서 실제로 화면을 꾸밀 수 있는 개체가 바로 폼입니다. Form 클래스를 상속해서 만들게 되어 있는데, 현 단계에서는 Form을 상속한 사용자 정의 폼을 만들게 됩니다. Form name에는 MainForm을 입력하겠습니다. 다음 단계로 넘어갑니다.





6. 기본 설정 화면 입니다.

Vendor나 Description에 적절히 입력을 하시고 다음 단계로 넘어갑니다.





7. 디플로이(deploy)를 위한 환경설정 화면 입니다.

다음 단계로 넘어갑니다.





8. 이제 프로젝트 생성 마법사의 마지막 단계 입니다.

Finish를 하시면 됩니다.





9. 이렇게 하여 첫 프로젝트를 만들었습니다.





10. 실행

실행 방법은 프로젝트를 선택하시고 마우스 우클릭하시면 컨텍스트 메뉴가 나오는데, Run As - bada Simulator Application을 선택하면 bada 시뮬레이터가 뜨면서 방금 만든 프로젝트가 실행됩니다. (이클립스 유저라면 잘 아시죠?)
단, 최초 빌드시에는 Java 개발시와는 다르게 Run As만으로 실행되지 않습니다.
Java는 실시간으로 컴파일되어 class가 생성되지만,
C++는 특성상 컴파일후에 링크과정이 있기 때문에 최초 Build를 한 다음 Run을 해야 정상적으로 실행이 됩니다.
아래 화면에 Build Project를 한 번 해주신 후 Run As를 이용하여 실행해주시면 되겠습니다.




[bada로 뛰어들자] Samsung bada Tutorial Overview 번역

bada 2010/05/12 09:31 Posted by 종이비행기


What is bada?
bada란?

bada, (bɑdɑ, the Korean word for “ocean”,) is a new smartphone platform that allows developers to create feature-rich applications that elevate the user experience in mobile spaces.
bada(한국어로 바다를 뜻하는 단어)는 모바일 공간에서 개발자들이 사용자 경험을 높여 특색있는 어플리케이션을 만들 수 있게 하는 새로운 스마트폰 플랫폼이다.


User-interactive
사용자 상호작용

Samsung bada includes a new UI framework that supports the next generation Samsung touch UI. The main UI delivers simplicity and ease, without decreasing usage efficiency. The UI framework introduces an open-ended evolutionary innovation from the current touch UI to leverage better user experiences.
삼성 bada는 차세대 삼성 터치 UI를 지원하는 새로운 UI 프레임워크를 포함한다. 메인 UI는 사용함에 있어 효율의 저하없이 간결함과 편리함을 준다. UI 프레임워크는 더 나은 사용자 경험을 주기 위해 최근 터치 UI로부터 제한없는 진화된 혁신을 소개한다.

Some additional UI tools include the ability to embed the Adobe® Flash® Player and the WebKit Internet browser directly into native bada applications, allowing seamless integration of premiere UI technologies. Also, the bada map control is easily embedded in your applications to deliver interactive mapping and routing with POI features for your users.
몇몇 부가적인 UI 도구는 bada 네이티브 어플리케이션에 직접적으로 Adobe® Flash® Player와 WebKit Internet browser를 추가하는 기능을 포함하여, UI 기술들의 매끄러운 통합이 가능하다. 또한, bada 맵 컨트롤은 사용자들에게 POI로 경로를 찾고 상호작용하는 맵핑을 제공해야 하는 여러분의 어플리케이션에 쉽게 임베드 된다.

The bada platform provides user interaction modalities including motion sensing, fine-tuned vibration control, and face detection. These interfaces open up new possibilities for greater creativity and user interactivity in developing applications. Samsung bada also provides a mechanism to develop sensor-based, context-aware applications. With weather service and sensors such as acceleration, magnetic, tilt, GPS, and proximity sensors, application developers can easily implement context-aware, interactive applications.
bada 플랫폼은 모션 센서, 미세하게 조정이 되는 진동 컨트롤, 그리고 얼굴 인식을 포함하는 사용자 인터렉션의 방식을 제공한다.
이들 인터페이스는 개발하는 어플리케이션에 있어 창조성과 사용자 상호작용의 새로운 가능성을 열어준다. 삼성 bada는 또한 센서기반(sensor-based), 문맥인식(context-aware) 어플리케이션을 개발하기 위한 메커니즘을 지원한다. 날씨 서비스와 가속, 자기, 틸트, GPS, 그리고 근접 센서와 같은 센서 어플리케이션 개발자들은 쉽게 문맥인식(context-aware), 상호작용(interactive) 어플리케이션을 구현할 수 있다.


Service-oriented
서비스 기반

Samsung bada introduces several new service-centric capabilities that differentiate it from conventional mobile operating systems. These new features include social networking, content management, location-based services, and commerce services, all supported by back-end bada servers. Developers can now create service-centric applications without additional effort compared to developing mobile standalone applications.
삼성 bada는 기존의 모바일 운영체계와 구분 짓는 여러 새로운 서비스-중심(service-centric) 능력을 보여준다. 이들 새로운 특징들은 백엔드(back-end) bada 서버들에 의해 지원되는 소셜 네트워킹, 컨텐츠 관리, 위치-기반 서비스, 커머스 서비스를 포함한다. 개발자들은 이제 독립형 모바일 어플리케이션을 개발하는 것에 비교해서 추가 노력 없이도 서비스-중심 어플리케이션을 만들 수 있다.

Social networking applications can manage user profiles, including buddy information for application users, and can integrate users on most popular social networking services. Content management applications can store and search contents on devices and servers. Location applications can use landmark stores, maps, and geo-coding services. Commerce applications can sell products, such as game items in applications.
소셜 네트워킹 어플리케이션은 어플리케이션 사용자들의 친구 정보를 포함하는 사용자 프로파일을 관리할 수 있으며, 대부분의 유명한 소셜 네트워킹 서비스의 사용자들과도 통합이 가능하다. 컨텐츠 관리 어플리케이션은 디바이스와 서버에서 컨텐츠를 저장하고 검색할 수 있다. 위치 어플리케이션은 이정표, 지도, 지오코딩 서비스를 사용할 수 있다. 커머스 어플리케이션은 어플리케이션 내부에서 게임 아이템과 같은 상품을 판매할 수 있다.


Open and Configurable
개방 및 설정가능

Samsung bada enables developers to take full advantage of mobile device capabilities to easily create compelling applications. Applications can use device functions to make phone calls, send messages, or access the contact list, as various application controls allow developers to create richer, more consistent applications.
삼성 bada는 개발자들에게 강렬한 어플리케이션을 쉽게 만들기위한 모바일 디바이스 기능의 장점을 취할 수 있도록 한다.
어플리케이션은 전화 걸기, 메시지 전송, 주소록 접근, 부유하게 만들기 위해 개발자들에게 허용하는 다양한 어플리케이션 컨트롤로 더욱 일관된 어플리케이션을 만들기 위해 디바이스 기능들을 사용할 수 있다.

Different service applications can share information such as personal profiles, social relations, schedules, and contents with simple user confirmation, all in order to provide services with greater personal relevance and cooperative service extensions. For example, social networking applications can share user information with commerce or location-aware applications, and share photos from other content publishing applications.
서로 다른 서비스 어플리케이션은 거대한 개인 관계성과 협력하는 서비스 확장과 함께 서비스를 제공하기 위한 모든 것이 간단한 사용자의 승인만으로 소셜 릴레이션, 스케쥴, 개인 프로필과 같은 정보를 공유할 수 있다.

The bada platform is kernel-configurable so that it can run either on the Linux kernel or real-time OS kernels, which makes bada applicable to a wider range of devices than any other mobile operating system. Samsung bada uses Eclipse and a GNU tool- chain, providing developers with a popular and extensible development environment.
bada 플랫폼은 커널 설정이 가능하기에 bada는 어떠한 모바일 운영체계보다 광대역의 디바이스를 지원하여, 리눅스 커널 또는 실시간 OS 커널을 실행할 수 있다. 삼성 bada는 개발자들에게 유명하고 확장성 있는 개발 환경을 제공하는 Eclipse와 GNU 컴파일 도구들을 사용한다.


bada Architecture
bada 아키텍처

Samsung bada has a four-layer architecture: kernel, device, service, and framework layers. The kernel layer can be the Linux kernel or a real-time OS kernel, depending on the hardware configuration. The device layer provides the core functions as a device platform, such as system and security management, graphics and windowing system, data protocols and telephony, as well as audio-visual and multimedia management. The service layer provides service-centric functions that are provided by application engines and web-service components interconnecting with bada Server. Only the framework layer can export the C++ open API. The framework consists of an application framework and functions exported by the underlying layers.
삼성 bada는 커널, 디바이스, 서비스, 프레임워크, 이 4개의 레이어 아키텍처를 가진다. 커널 레이어는 하드웨어 설정에 따라 리눅스 커널 또는 실시간 OS 커널이 될 수 있다. 디바이스 레이어는 시스템과 보안 관리, 그래픽 및 윈도우처리 시스템, 데이터 프로토콜, 전화, 오디오-비주얼 및 멀티미디어 관리와 같은 디바이스 플랫폼의 핵심 기능을 제공한다. 서비스 레이어는 bada 서버와 결합되는 어플리케이션 엔진과 웹서비스 컴포넌트에 의해 지원되는 서비스-중심의 기능을 지원한다. 오직 프레임워크 레이어만이 C++ 오픈 API로 나와 있다. 이 프레임워크는 기저 레이어에 의해 산출된 어플리케이션 프레임워크와 함수들로 구성된다.



저작자 표시 비영리 변경 금지

삼성의 모바일 플랫폼 '바다'의 SDK가 발표되었습니다.
아이폰OS, 안드로이드의 주요 모바일 플랫폼속에서 경쟁력을 갖고 성공하기를 개인적으로 바래봅니다.
저작자 표시 비영리 변경 금지