More Related Content
Similar to Tizen 2.0 alpha でサポートされなかった native api
Similar to Tizen 2.0 alpha でサポートされなかった native api (20)
More from Naruto TAKAHASHI
More from Naruto TAKAHASHI (18)
Tizen 2.0 alpha でサポートされなかった native api
- 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)
- 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
- 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
- 25. メソッド定義 目的
OnCreate() アプリケーション初期化
OnStart() アプリケーションのスタート
OnStop() アプリケーションがバックに移動
OnResume() アプリケーションがフロントエンドに移動
OnRelaunch() “launch service “ で呼ばれる
OnTerminate() アプリケーション終了時
OnLowMemory() メモリが少ない時
OnLowBattery() バッテリーが少ない時
OnLaunguageChanged() 言語設定変更時
- 26. 基本は EFL + Tizen Application Framework に
似ている
Android App の作成に近いよね。
- 28. HTML5 は Native はどちらを使う?
◦ 要求に応じたソリューションを!
Tizen SDK でサポートするライブラリはどっち?
◦ どちらか正直わからない。
予想では…
◦ Tizen SDK では DPL をサポート
◦ EFL + Tizen App FW でも組めるけど、公にしないのでは?
ともあれ使う側の人は両方使えるのが理想。
そろそろ EFL アプリを作らないと怒られそうなのでいい加減次
回から本気出すよ(`・ω・´)