SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Downloaden Sie, um offline zu lesen
Naruto TAKAHASHI
  tnaruto@gmail.com
ターボシステムズ株式会社
  第五回 Tizen 勉強会
   Naruto TAKAHASHI(@TNaruto)
    ◦ tnaruto@gmail.com
    ◦ http://eflmemo.hatenablog.com/

   Software Engineer
   Interesting keywords
    ◦   EFL(Enlightenment Foundation Libraries)
    ◦   Tizen
    ◦   NPAPI
    ◦   NFC
    ◦   HTML5
    ◦   Firefox OS
   Tizen Native App を実装する方法
    ◦ 生のグラフィックライブラリ EFL を使用する。
    ◦ ラッパーライブラリ DPL を使用する。

   Tizen SDK でサポートのはどちらかわからない。

   SDK でサポートする Native 用ライブラリが EFL でも
    DPL のどちらでも対応できるように予習しましょう。
   Tizen Native App のおさらい

   Tizen Native App を作成する二つのアプローチ
    ◦ EFL with Tizen Application Framework
    ◦ DPL(Design Patterns Library)
   C/C++ で実装するアプリケーション
   html5 でできないことを補える
    ◦   高速動作し放題
    ◦   デバイス触り放題
    ◦   アプリの状態管理し放題
    ◦   他プロセスと通信し放題
    ◦   タスクバーにアイコン表示し放題

   Native App ってすごいよね。
       「HTML5に賭けたのは失敗。今は時期が悪い」
    ◦ Html5 急先鋒 Facebook の発言
    ◦ http://www.publickey1.jp/blog/12/facebookhtml5.html

   クラッシュの原因がわらない
    ◦   ヒープサイズ
    ◦   オブジェクトカウント
    ◦   ガベージコレクションサイクル
    ◦   GPUバッファサイズ
    ◦   リソース上限
   性能が出ない
   GPUがブラックボックス

   Native App ならその要求をすべて答えられます。
    ◦ Native App ってすごくなーい?
   「Native(C/C++ )なら何でもできる。」
    ◦ 半導体をオペレーションするシステムのための言語
    ◦ 何でもやれるけど、やるのが難しい。

   「html5 はできることが限られている」
    ◦ ドキュメントをレイアウトするための言語
      それに動的処理を追加
    ◦ 何でもできないけど、得意なことは簡単にできる。
   要求に応じて使い分ければよいのでは?
    ◦ Html5 で実現できるものは html5 で
    ◦ Html5 で実現できないものは無理せず Native で

   Native か html5 を選ぶ自由を獲得すべし。

   …とは言ってますが、すべてを html5 で成し遂げる
    挑戦している B2G を応援しています。
   実装に関すること
    ◦ ウィジットの描画の管理 (EFL)
    ◦ アプリのリソース管理、お作法

   ビルドに関すること
    ◦ プロジェクトのファイル構成
    ◦ プロジェクトのビルド方法
      gbs
      obs
   実装に関すること
    ◦ ウィジットの描画の管理 (EFL)
    ◦ アプリのリソース管理、お作法

   ビルドに関すること             こっちは Tizen SDK がサポートする
    ◦ プロジェクトのファイル構成               からスキップ
    ◦ プロジェクトのビルド方法
      gbs
      obs
   C/C++ で開発

   エントリーポイントは main() からはじまるよ

   UX は elementary(EFL) を使用

   メインループ、ライフサイクルは Tizen Application
    Framework を使用

   プリインストールされている Native App
    ◦ EFL + Tizen Application Framework で作成
   AUL(Application Utility Library)
    ◦ App の launch(Web App <-> Native App 双方向)
   App-Core
    ◦ App のライフサイクルの管理、システムイベントキャッチ
   App-Service
    ◦ アプリケーションのサービス設定
   appcore に渡すコールバック関数一覧
    オペレーション     説明
    create      メインループに入る前に実行される。
                (ウィンドウの生成などの初期化処理を行う。)

    terminate   メインループの後に実行される。
                (アプリの終了処理などを行う。)

    pause       ウィンドウがバックグラウンドに移動したときに実行される。
                (停止処理や、バックグラウンド処理の開始などを行う)
    resume      ウインドウがフォアグランドに移動したときに実行される。
                (復帰処理、バックグラウンド処理の停止など行う)
    reset       再実行時に実行される。
   システムの変更があったときのイベント

   appcore_set_event_callback() で登録する。

   システムイベント
    ◦   LOWメモリー
    ◦   LOWバッテリー
    ◦   言語変更
    ◦   地域変更
   デバイスの回転を検知したときのイベント

   appcore_set_rotation_cb() で登録する。

   イベントの種類
    ◦   landscape
    ◦   portrait
    ◦   reverse landscape
    ◦   reverse portrait
Design Patterns Library
   Design Patterns Library
   Samsung Linux Platform から作られているグラ
    フィックライブラリ
   ラッパー対象ライブラリ
    ◦ EFL
    ◦ GTK
    ◦ Qt もいける…?

   C++ で使うことが前提
   もともとは SLP の三つのグラフィックライブラリを使え
    るようにするためのラッパーライブラリのようです。
   - GTK
   - EFL
   - STK(Samsung Tool Kit?)
   Tizen Web App のランタイム
    ◦ WebView + Tizen Device API


   WRT は DPL を使用している。
   Tizen Device API
    ◦ DPL + JavaScriptCore で実装してる
    ◦ 拡張 API を作るために必要
   https://review.tizen.org/git/?p=framework/w
    eb/wrt-commons.git;a=summary
   snapshot を押すと落とせます。
   ソースの中に pdf ファイルがあります。
   wrt-
    common/doc/dpl_programming_guide.pdf
#include <dpl/application.h>

int main(int argc, char *argv[]) {
  DPL::Application app(argc, argv, “hello_world”);
  return app.Exec();
}
メソッド定義                 目的
OnCreate()             アプリケーション初期化
OnStart()              アプリケーションのスタート
OnStop()               アプリケーションがバックに移動
OnResume()             アプリケーションがフロントエンドに移動
OnRelaunch()           “launch service “ で呼ばれる
OnTerminate()          アプリケーション終了時
OnLowMemory()          メモリが少ない時
OnLowBattery()         バッテリーが少ない時
OnLaunguageChanged()   言語設定変更時
   基本は EFL + Tizen Application Framework に
    似ている

   Android App の作成に近いよね。
   HTML5 は Native はどちらを使う?
    ◦ 要求に応じたソリューションを!

   Tizen SDK でサポートするライブラリはどっち?
    ◦ どちらか正直わからない。

   予想では…
    ◦ Tizen SDK では DPL をサポート
    ◦ EFL + Tizen App FW でも組めるけど、公にしないのでは?

   ともあれ使う側の人は両方使えるのが理想。

   そろそろ EFL アプリを作らないと怒られそうなのでいい加減次
    回から本気出すよ(`・ω・´)
m(_ _)m

Weitere ähnliche Inhalte

Was ist angesagt?

PHPとJavaScriptの噺
PHPとJavaScriptの噺PHPとJavaScriptの噺
PHPとJavaScriptの噺
Shogo Kawahara
 

Was ist angesagt? (20)

hooks riverpod + state notifier + freezed でのドメイン駆動設計
hooks riverpod + state notifier + freezed でのドメイン駆動設計hooks riverpod + state notifier + freezed でのドメイン駆動設計
hooks riverpod + state notifier + freezed でのドメイン駆動設計
 
Clrh 20140906 lt
Clrh 20140906 ltClrh 20140906 lt
Clrh 20140906 lt
 
PHPデプロイツールの世界
PHPデプロイツールの世界PHPデプロイツールの世界
PHPデプロイツールの世界
 
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
脆弱性もバグ、だからテストしよう PHPカンファンレス2015脆弱性もバグ、だからテストしよう PHPカンファンレス2015
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
 
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
 
IL2CPPに関する軽い話
IL2CPPに関する軽い話IL2CPPに関する軽い話
IL2CPPに関する軽い話
 
Laravel5.1 Release
Laravel5.1 ReleaseLaravel5.1 Release
Laravel5.1 Release
 
UniRx勉強会 reactive extensions inside(公開用)
UniRx勉強会   reactive extensions inside(公開用)UniRx勉強会   reactive extensions inside(公開用)
UniRx勉強会 reactive extensions inside(公開用)
 
node-gypを使ったネイティブモジュールの作成
node-gypを使ったネイティブモジュールの作成node-gypを使ったネイティブモジュールの作成
node-gypを使ったネイティブモジュールの作成
 
Php非同期の技法
Php非同期の技法Php非同期の技法
Php非同期の技法
 
Laravel 5.1 LTSでサービスを作る
Laravel 5.1 LTSでサービスを作るLaravel 5.1 LTSでサービスを作る
Laravel 5.1 LTSでサービスを作る
 
活動報告9 laravel5入門-
活動報告9  laravel5入門-活動報告9  laravel5入門-
活動報告9 laravel5入門-
 
C#エンジニアのためのdocker kubernetesハンズオン
C#エンジニアのためのdocker kubernetesハンズオンC#エンジニアのためのdocker kubernetesハンズオン
C#エンジニアのためのdocker kubernetesハンズオン
 
Net fringejp2016
Net fringejp2016Net fringejp2016
Net fringejp2016
 
DockerCon '17 Feedback at PaaS JP
DockerCon '17 Feedback at PaaS JPDockerCon '17 Feedback at PaaS JP
DockerCon '17 Feedback at PaaS JP
 
How to run P4 BMv2
How to run P4 BMv2How to run P4 BMv2
How to run P4 BMv2
 
PHPとJavaScriptの噺
PHPとJavaScriptの噺PHPとJavaScriptの噺
PHPとJavaScriptの噺
 
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
 
20190806 Q# Measurements
20190806 Q# Measurements20190806 Q# Measurements
20190806 Q# Measurements
 
普段の開発を少しだけ便利にする3つのレシピ
普段の開発を少しだけ便利にする3つのレシピ普段の開発を少しだけ便利にする3つのレシピ
普段の開発を少しだけ便利にする3つのレシピ
 

Andere mochten auch

Suit up Presentation
Suit up PresentationSuit up Presentation
Suit up Presentation
owildman
 
15 toughest-interview-questions-and-answers
15 toughest-interview-questions-and-answers15 toughest-interview-questions-and-answers
15 toughest-interview-questions-and-answers
Nagesh Khandare
 
NPAPIを使ったandroid標準ブラウザの拡張方法
NPAPIを使ったandroid標準ブラウザの拡張方法NPAPIを使ったandroid標準ブラウザの拡張方法
NPAPIを使ったandroid標準ブラウザの拡張方法
Naruto TAKAHASHI
 
O perspectiva critica_asupra_neuropsihologiei
O perspectiva critica_asupra_neuropsihologieiO perspectiva critica_asupra_neuropsihologiei
O perspectiva critica_asupra_neuropsihologiei
cosminax
 
Online grammar checkers
Online grammar checkersOnline grammar checkers
Online grammar checkers
georgesadeh
 

Andere mochten auch (20)

Distributed Data Analysis with Hadoop and R - OSCON 2011
Distributed Data Analysis with Hadoop and R - OSCON 2011Distributed Data Analysis with Hadoop and R - OSCON 2011
Distributed Data Analysis with Hadoop and R - OSCON 2011
 
es guapo
es guapoes guapo
es guapo
 
Robust Repositioning in Large-scale Networks
Robust Repositioning in Large-scale NetworksRobust Repositioning in Large-scale Networks
Robust Repositioning in Large-scale Networks
 
Tecno2
Tecno2Tecno2
Tecno2
 
Quiz
QuizQuiz
Quiz
 
Unit testing en Windows 10
Unit testing en Windows 10Unit testing en Windows 10
Unit testing en Windows 10
 
Cyberarms
CyberarmsCyberarms
Cyberarms
 
Guionvideosic2
Guionvideosic2Guionvideosic2
Guionvideosic2
 
Freello #Expo2015 #Milano
Freello #Expo2015 #MilanoFreello #Expo2015 #Milano
Freello #Expo2015 #Milano
 
Suit up Presentation
Suit up PresentationSuit up Presentation
Suit up Presentation
 
15 toughest-interview-questions-and-answers
15 toughest-interview-questions-and-answers15 toughest-interview-questions-and-answers
15 toughest-interview-questions-and-answers
 
NPAPIを使ったandroid標準ブラウザの拡張方法
NPAPIを使ったandroid標準ブラウザの拡張方法NPAPIを使ったandroid標準ブラウザの拡張方法
NPAPIを使ったandroid標準ブラウザの拡張方法
 
Memòria
MemòriaMemòria
Memòria
 
Barriers2
Barriers2Barriers2
Barriers2
 
Diana vela
Diana velaDiana vela
Diana vela
 
O perspectiva critica_asupra_neuropsihologiei
O perspectiva critica_asupra_neuropsihologieiO perspectiva critica_asupra_neuropsihologiei
O perspectiva critica_asupra_neuropsihologiei
 
Figuras geométricas
Figuras geométricasFiguras geométricas
Figuras geométricas
 
November 2014 UK Commercial Bulletin
November 2014 UK Commercial BulletinNovember 2014 UK Commercial Bulletin
November 2014 UK Commercial Bulletin
 
Online grammar checkers
Online grammar checkersOnline grammar checkers
Online grammar checkers
 
British Council #Ecologyofwaters
British Council #EcologyofwatersBritish Council #Ecologyofwaters
British Council #Ecologyofwaters
 

Ähnlich wie Tizen 2.0 alpha でサポートされなかった native api

まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築
まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築
まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築
Hideharu MATSUFUJI
 
Tizen web app について調べたよ
Tizen web app について調べたよTizen web app について調べたよ
Tizen web app について調べたよ
Naruto TAKAHASHI
 
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミングDLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミング
terurou
 
2011年10月21日
2011年10月21日2011年10月21日
2011年10月21日
nukaemon
 
Tizen web app を FireFox OS へ移植する方法を考えた
Tizen web app を FireFox OS へ移植する方法を考えたTizen web app を FireFox OS へ移植する方法を考えた
Tizen web app を FireFox OS へ移植する方法を考えた
Naruto TAKAHASHI
 

Ähnlich wie Tizen 2.0 alpha でサポートされなかった native api (20)

Tizen native application
Tizen native applicationTizen native application
Tizen native application
 
【Unite Tokyo 2019】運用中超大規模タイトルにおけるUnityアップデート課題の解決手法と事例
【Unite Tokyo 2019】運用中超大規模タイトルにおけるUnityアップデート課題の解決手法と事例【Unite Tokyo 2019】運用中超大規模タイトルにおけるUnityアップデート課題の解決手法と事例
【Unite Tokyo 2019】運用中超大規模タイトルにおけるUnityアップデート課題の解決手法と事例
 
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
 
インフラエンジニアがk8sでアプリを作って見えた今後のインフラ
インフラエンジニアがk8sでアプリを作って見えた今後のインフラインフラエンジニアがk8sでアプリを作って見えた今後のインフラ
インフラエンジニアがk8sでアプリを作って見えた今後のインフラ
 
まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築
まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築
まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築
 
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
 
20170527 inside .NET Core on Linux
20170527 inside .NET Core on Linux20170527 inside .NET Core on Linux
20170527 inside .NET Core on Linux
 
ここが変わったTizen sdk2.0alpha
ここが変わったTizen sdk2.0alphaここが変わったTizen sdk2.0alpha
ここが変わったTizen sdk2.0alpha
 
runC概要と使い方
runC概要と使い方runC概要と使い方
runC概要と使い方
 
Google Product
Google ProductGoogle Product
Google Product
 
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
 
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
 
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
 
Cloud Foundry構成概要 111018
Cloud Foundry構成概要 111018Cloud Foundry構成概要 111018
Cloud Foundry構成概要 111018
 
Tizen web app について調べたよ
Tizen web app について調べたよTizen web app について調べたよ
Tizen web app について調べたよ
 
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミングDLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミング
 
2011年10月21日
2011年10月21日2011年10月21日
2011年10月21日
 
Node.jsアプリの開発をモダン化するために取り組んできたこと
Node.jsアプリの開発をモダン化するために取り組んできたことNode.jsアプリの開発をモダン化するために取り組んできたこと
Node.jsアプリの開発をモダン化するために取り組んできたこと
 
どこでも動くゲームを作るためのベタープラクティス
どこでも動くゲームを作るためのベタープラクティスどこでも動くゲームを作るためのベタープラクティス
どこでも動くゲームを作るためのベタープラクティス
 
Tizen web app を FireFox OS へ移植する方法を考えた
Tizen web app を FireFox OS へ移植する方法を考えたTizen web app を FireFox OS へ移植する方法を考えた
Tizen web app を FireFox OS へ移植する方法を考えた
 

Mehr von Naruto TAKAHASHI

Tizen の未来と可能性
Tizen の未来と可能性Tizen の未来と可能性
Tizen の未来と可能性
Naruto TAKAHASHI
 
せっかくだから俺はこの NPAPI の話をするぜ
せっかくだから俺はこの NPAPI の話をするぜせっかくだから俺はこの NPAPI の話をするぜ
せっかくだから俺はこの NPAPI の話をするぜ
Naruto TAKAHASHI
 
Report of linuxcon japan 2013
Report of linuxcon japan 2013Report of linuxcon japan 2013
Report of linuxcon japan 2013
Naruto TAKAHASHI
 
Rust samurai lightning talk
Rust samurai lightning talkRust samurai lightning talk
Rust samurai lightning talk
Naruto TAKAHASHI
 
How to add nfc web api to android by using npapi
How to add nfc web api to android by using npapiHow to add nfc web api to android by using npapi
How to add nfc web api to android by using npapi
Naruto TAKAHASHI
 
Japanese input environment on Tizen 2.0 Alpha
Japanese input environment on Tizen 2.0 AlphaJapanese input environment on Tizen 2.0 Alpha
Japanese input environment on Tizen 2.0 Alpha
Naruto TAKAHASHI
 
猫でも分かる Android WebKit
猫でも分かる Android WebKit猫でも分かる Android WebKit
猫でも分かる Android WebKit
Naruto TAKAHASHI
 
猫でも分かる Android WebKit ice break
猫でも分かる Android WebKit ice break猫でも分かる Android WebKit ice break
猫でも分かる Android WebKit ice break
Naruto TAKAHASHI
 
Tizen 2.0 alpha でサポートされなかった native api icebreak
Tizen 2.0 alpha でサポートされなかった native api icebreakTizen 2.0 alpha でサポートされなかった native api icebreak
Tizen 2.0 alpha でサポートされなかった native api icebreak
Naruto TAKAHASHI
 
Html5 でアプリを作るということ
Html5 でアプリを作るということHtml5 でアプリを作るということ
Html5 でアプリを作るということ
Naruto TAKAHASHI
 
Linux ユーザーからみた tizen
Linux ユーザーからみた tizenLinux ユーザーからみた tizen
Linux ユーザーからみた tizen
Naruto TAKAHASHI
 

Mehr von Naruto TAKAHASHI (18)

CMake multiplatform build-tool
CMake multiplatform build-toolCMake multiplatform build-tool
CMake multiplatform build-tool
 
Tizen & Crosswalk
Tizen & CrosswalkTizen & Crosswalk
Tizen & Crosswalk
 
Tizen の未来と可能性
Tizen の未来と可能性Tizen の未来と可能性
Tizen の未来と可能性
 
せっかくだから俺はこの NPAPI の話をするぜ
せっかくだから俺はこの NPAPI の話をするぜせっかくだから俺はこの NPAPI の話をするぜ
せっかくだから俺はこの NPAPI の話をするぜ
 
Tizenについて
TizenについてTizenについて
Tizenについて
 
Report of linuxcon japan 2013
Report of linuxcon japan 2013Report of linuxcon japan 2013
Report of linuxcon japan 2013
 
Rust samurai lightning talk
Rust samurai lightning talkRust samurai lightning talk
Rust samurai lightning talk
 
Tizen 2.0 overview
Tizen 2.0 overviewTizen 2.0 overview
Tizen 2.0 overview
 
Tizen API
Tizen APITizen API
Tizen API
 
How to add nfc web api to android by using npapi
How to add nfc web api to android by using npapiHow to add nfc web api to android by using npapi
How to add nfc web api to android by using npapi
 
Japanese input environment on Tizen 2.0 Alpha
Japanese input environment on Tizen 2.0 AlphaJapanese input environment on Tizen 2.0 Alpha
Japanese input environment on Tizen 2.0 Alpha
 
猫でも分かる Android WebKit
猫でも分かる Android WebKit猫でも分かる Android WebKit
猫でも分かる Android WebKit
 
猫でも分かる Android WebKit ice break
猫でも分かる Android WebKit ice break猫でも分かる Android WebKit ice break
猫でも分かる Android WebKit ice break
 
Tizen 2.0 alpha でサポートされなかった native api icebreak
Tizen 2.0 alpha でサポートされなかった native api icebreakTizen 2.0 alpha でサポートされなかった native api icebreak
Tizen 2.0 alpha でサポートされなかった native api icebreak
 
Tizen application
Tizen applicationTizen application
Tizen application
 
Tizen web app
Tizen web appTizen web app
Tizen web app
 
Html5 でアプリを作るということ
Html5 でアプリを作るということHtml5 でアプリを作るということ
Html5 でアプリを作るということ
 
Linux ユーザーからみた tizen
Linux ユーザーからみた tizenLinux ユーザーからみた tizen
Linux ユーザーからみた tizen
 

Tizen 2.0 alpha でサポートされなかった native api

  • 1. Naruto TAKAHASHI tnaruto@gmail.com ターボシステムズ株式会社 第五回 Tizen 勉強会
  • 2. Naruto TAKAHASHI(@TNaruto) ◦ tnaruto@gmail.com ◦ http://eflmemo.hatenablog.com/  Software Engineer  Interesting keywords ◦ EFL(Enlightenment Foundation Libraries) ◦ Tizen ◦ NPAPI ◦ NFC ◦ HTML5 ◦ Firefox OS
  • 3. Tizen Native App を実装する方法 ◦ 生のグラフィックライブラリ EFL を使用する。 ◦ ラッパーライブラリ DPL を使用する。  Tizen SDK でサポートのはどちらかわからない。  SDK でサポートする Native 用ライブラリが EFL でも DPL のどちらでも対応できるように予習しましょう。
  • 4. Tizen Native App のおさらい  Tizen Native App を作成する二つのアプローチ ◦ EFL with Tizen Application Framework ◦ DPL(Design Patterns Library)
  • 5.
  • 6. C/C++ で実装するアプリケーション  html5 でできないことを補える ◦ 高速動作し放題 ◦ デバイス触り放題 ◦ アプリの状態管理し放題 ◦ 他プロセスと通信し放題 ◦ タスクバーにアイコン表示し放題  Native App ってすごいよね。
  • 7. 「HTML5に賭けたのは失敗。今は時期が悪い」 ◦ Html5 急先鋒 Facebook の発言 ◦ http://www.publickey1.jp/blog/12/facebookhtml5.html  クラッシュの原因がわらない ◦ ヒープサイズ ◦ オブジェクトカウント ◦ ガベージコレクションサイクル ◦ GPUバッファサイズ ◦ リソース上限  性能が出ない  GPUがブラックボックス  Native App ならその要求をすべて答えられます。 ◦ Native App ってすごくなーい?
  • 8. 「Native(C/C++ )なら何でもできる。」 ◦ 半導体をオペレーションするシステムのための言語 ◦ 何でもやれるけど、やるのが難しい。  「html5 はできることが限られている」 ◦ ドキュメントをレイアウトするための言語  それに動的処理を追加 ◦ 何でもできないけど、得意なことは簡単にできる。
  • 9. 要求に応じて使い分ければよいのでは? ◦ Html5 で実現できるものは html5 で ◦ Html5 で実現できないものは無理せず Native で  Native か html5 を選ぶ自由を獲得すべし。  …とは言ってますが、すべてを html5 で成し遂げる 挑戦している B2G を応援しています。
  • 10. 実装に関すること ◦ ウィジットの描画の管理 (EFL) ◦ アプリのリソース管理、お作法  ビルドに関すること ◦ プロジェクトのファイル構成 ◦ プロジェクトのビルド方法  gbs  obs
  • 11. 実装に関すること ◦ ウィジットの描画の管理 (EFL) ◦ アプリのリソース管理、お作法  ビルドに関すること こっちは Tizen SDK がサポートする ◦ プロジェクトのファイル構成 からスキップ ◦ プロジェクトのビルド方法  gbs  obs
  • 12.
  • 13. C/C++ で開発  エントリーポイントは main() からはじまるよ  UX は elementary(EFL) を使用  メインループ、ライフサイクルは Tizen Application Framework を使用  プリインストールされている Native App ◦ EFL + Tizen Application Framework で作成
  • 14. AUL(Application Utility Library) ◦ App の launch(Web App <-> Native App 双方向)  App-Core ◦ App のライフサイクルの管理、システムイベントキャッチ  App-Service ◦ アプリケーションのサービス設定
  • 15. appcore に渡すコールバック関数一覧 オペレーション 説明 create メインループに入る前に実行される。 (ウィンドウの生成などの初期化処理を行う。) terminate メインループの後に実行される。 (アプリの終了処理などを行う。) pause ウィンドウがバックグラウンドに移動したときに実行される。 (停止処理や、バックグラウンド処理の開始などを行う) resume ウインドウがフォアグランドに移動したときに実行される。 (復帰処理、バックグラウンド処理の停止など行う) reset 再実行時に実行される。
  • 16. システムの変更があったときのイベント  appcore_set_event_callback() で登録する。  システムイベント ◦ LOWメモリー ◦ LOWバッテリー ◦ 言語変更 ◦ 地域変更
  • 17. デバイスの回転を検知したときのイベント  appcore_set_rotation_cb() で登録する。  イベントの種類 ◦ landscape ◦ portrait ◦ reverse landscape ◦ reverse portrait
  • 19. Design Patterns Library  Samsung Linux Platform から作られているグラ フィックライブラリ  ラッパー対象ライブラリ ◦ EFL ◦ GTK ◦ Qt もいける…?  C++ で使うことが前提
  • 20. もともとは SLP の三つのグラフィックライブラリを使え るようにするためのラッパーライブラリのようです。  - GTK  - EFL  - STK(Samsung Tool Kit?)
  • 21. Tizen Web App のランタイム ◦ WebView + Tizen Device API  WRT は DPL を使用している。  Tizen Device API ◦ DPL + JavaScriptCore で実装してる ◦ 拡張 API を作るために必要
  • 22. https://review.tizen.org/git/?p=framework/w eb/wrt-commons.git;a=summary  snapshot を押すと落とせます。
  • 23. ソースの中に pdf ファイルがあります。  wrt- common/doc/dpl_programming_guide.pdf
  • 24. #include <dpl/application.h> int main(int argc, char *argv[]) { DPL::Application app(argc, argv, “hello_world”); return app.Exec(); }
  • 25. メソッド定義 目的 OnCreate() アプリケーション初期化 OnStart() アプリケーションのスタート OnStop() アプリケーションがバックに移動 OnResume() アプリケーションがフロントエンドに移動 OnRelaunch() “launch service “ で呼ばれる OnTerminate() アプリケーション終了時 OnLowMemory() メモリが少ない時 OnLowBattery() バッテリーが少ない時 OnLaunguageChanged() 言語設定変更時
  • 26. 基本は EFL + Tizen Application Framework に 似ている  Android App の作成に近いよね。
  • 27.
  • 28. HTML5 は Native はどちらを使う? ◦ 要求に応じたソリューションを!  Tizen SDK でサポートするライブラリはどっち? ◦ どちらか正直わからない。  予想では… ◦ Tizen SDK では DPL をサポート ◦ EFL + Tizen App FW でも組めるけど、公にしないのでは?  ともあれ使う側の人は両方使えるのが理想。  そろそろ EFL アプリを作らないと怒られそうなのでいい加減次 回から本気出すよ(`・ω・´)