Разработка нативных

приложений для Tizen

Ренат Няжеметдинов
Tizen evangelist, Samsung Russia

Содержание

• Обзор архитектуры Tizen Native Application Framework
• Разработка нативных приложений

• Разработка гибридных приложений

2

Архитектура Tizen
Native Application
Framework

Архитектура Tizen

4

Обзор Native Framework
• Base features
• Application framework
• Security
• Graphics and Multimedia
• User Interface (UI)
• Communication
• Web

• Service features

5

Пространства имѐн

6

App

Media

Telephony

Base

Messaging

Text

Content

Net

Ui

Graphics

Security

Uix

Io

Shell

Web

Locales

Social

Locations

System

Разработка
нативных
приложений для
Tizen

Особенности Native Framework
Язык

Поддерживается стандарт C++ ANSI ISO 14882 2003

Компиляторы GCC 4.5, LLVM 3.1

Framework

Не используются стандартные исключения C++

Коды возврата вместо исключений
__pTimer = new Timer();
__pTimer->Construct(*this);

Двухфазное создание объектов

Суффикс ‘N’ для передачи возвращаемого объекта во владение
(DbStatement* CreateStatementN (const
Tizen::Base::String &sqlStatement))

8

Tizen IDE

9

Native UI Builder

10

Unit Test Tool

11

Dynamic Analyzer

12

Emulator Manager

13

Command-Line Interface (CLI)

14

Утилита

Описание

native-gen

Создание нового проекта

native-make

Сборка проекта

native-signing

Подписывание проекта

native-packaging

Упаковка проекта

native-install

Установка проекта на устройство

native-uninstall

Удаление проекта с устройства

native-run

Запуск приложения на устройстве

native-debug

Запуск отладки приложения на устройстве

Native App Demo

Структура проекта нативного приложения
Ресурсы

Исходные файлы

Заголовочные файлы

Private-данные
Библиотеки
Манифест

16

Manifest: Basic

17

Manifest: Features

18

Manifest: Privileges

19

Manifest: Application Control

20

Manifest.xml

21

Hybrid App Demo

Web Apps vs Native Apps vs Hybrid Apps

Web

Hybrid

Native

Скорость и стоимость разработки

+

+/-

-

Портируемость

+

+/-

-

Производительность

-

+

+

Полный доступ к устройству

-

+

+

23

Структура гибридных приложений

24

Концепция гибридного приложения

“Bridge”

Native Service

Web App

• Message Port
• Websocket
• JavaScriptBridge plugin

25

Концепция гибридного приложения: Message Port
localMessagePort = tizen.messageport.requestLocalMessagePort(localMessagePortName);
localMessagePortWatchId = localMessagePort.addMessagePortListener(function(data, remote){
onReceive(data, remote); } );

Web

tizen.application.launch(appId, onSuccess, onError);

remoteMessagePort = tizen.messageport.requestRemoteMessagePort(appId, servicePortName);

void HybridServiceApp::OnMessageReceivedN(RemoteMessagePort* pRemoteMsgPort, Imap* pMsg)
{
// Check pMsg, extract command
// Prepare answer as strAnswer variable

// some code here
}
__localMessagePort = MessagePortManager::RequestLocalMessagePort(__localPortName);
__localMessagePort->AddMessagePortListener(*this);
__remoteMessagePort = MessagePortManager::RequestREmoteMessagePort(__remoteAppId, __remotePortName);

26

Native

HashMap* pMap = new HashMap(SingleObjectDeleter);
pMap->Contruct();
pMap->Add(new Strung(L”response”), new String(strAnswer));
pRemoteMsgPort->SendMessage(__localMessagePort, pMap);

Заключение

• Tizen Native Application Framework обладает
исчерпывающими возможностями для разработки
нативных приложений.
• Tizen SDK имеет весь необходимый инструментарий для
разработки приложений.
• Благодаря логичной структуре framework’а, поддержке
стандартов и открытости платформы, разрабатывать
приложения для Tizen просто.

27

Сторонние инструменты

• Unity3D, http://unity3d.com
• Project Anarchy, http://havok.com
• Marmalade, http://madewithmarmalade.com
• GameMaker, http://yoyogames.com
• GameSalad, http://gamesalad.com
• Qt, http://qt-project.org
• Gnome, http://www.gnome.org

28

Спасибо за
внимание!

Ренат Няжеметдинов

http://developer.tizen.org/

Sign up to vote on this title
UsefulNot useful