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

4,608 views

Published on

Published in: Technology
2 Comments
1 Like
Statistics
Notes
No Downloads
Views
Total views
4,608
On SlideShare
0
From Embeds
0
Number of Embeds
1,201
Actions
Shares
0
Downloads
34
Comments
2
Likes
1
Embeds 0
No embeds

No notes for slide

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

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

×