はじめてのChrome App
                   @civic




13年4月6日土曜日
⾃自⼰己紹介

             Twitter @civic

             ⻑⾧長岡IT開発者勉強会 NDS

             Fix HootSuite (chrome ext.)

             SeatNext(GAE/py)




13年4月6日土曜日
Chrome App
13年4月6日土曜日
Chromeのアドオン類

             Chrome Extension    (拡張)

             Chrome App         (アプリ)

               Packaged App

               Hosted App

             Native Client      (ネイティブ)



13年4月6日土曜日
Chromeのアドオン類

             Chrome Extension    (拡張)

             Chrome App         (アプリ)

               Packaged App       ←今日の主題
               Hosted App

             Native Client      (ネイティブ)



13年4月6日土曜日
Packaged App


             Chrome上でネイティブ(っぽい)アプリ

             でもWeb系の技術で作る




13年4月6日土曜日
Packaged App


             Chrome上でネイティブ(っぽい)アプリ

             でもWeb系の技術で作る




13年4月6日土曜日
Packaged App


             Chrome上でネイティブ(っぽい)アプリ

             でもWeb系の技術で作る

             でもWebアプリではない!

13年4月6日土曜日
どんなものか?
13年4月6日土曜日
あーはいはい。
             HTMLでデザインして、
             JavaScriptでUI制御。
               メインな処理理は、
             サーバと通信な感じね

13年4月6日土曜日
いや、違うんです!


13年4月6日土曜日
外観
             UIがブラウザっぽくないし!


                       アドレスバーなし
                              タブなし
                 ブラウザ外で動作するWindow




13年4月6日土曜日
まあ、でもHTMLで
               デザインします
              ブラウザウィンドウとしての
             タブ、アドレスバーがないのが重要?


13年4月6日土曜日
Offline App

             オフライン起動許可がデフォルト
             (not WebApp)

             オンライン、オフラインの変更更検出
             https://developer.mozilla.org/en-US/
             docs/Online_and_offline_events




13年4月6日土曜日
こんなのにどうでしょう?


             デスクトップアプリ、スタンドアロンアプリ

             UIが必要な、ちょっとしたアプリ




13年4月6日土曜日
どれぐらいのものが
              作れるのか?
13年4月6日土曜日
API
             alerms               mediaGaleries
             app.runtime          permissions
             app.window           pushMessaging
             bluetooth            serial
             commands             socket
             contextMenus         storage
             events               tts
             fileSystem           types
             i18n                 usb
             idle                 webstore

13年4月6日土曜日
⾯面⽩白そうなの抜粋




13年4月6日土曜日
ハードウェア連携
             chrome.bluetooth    Bluetooth

             chrome.usb         USB

             chrome.serial      シリアル通信

              ハードウェアとの低レベルなI/O

                             ネイティブっぽいっ!

13年4月6日土曜日
データ永続化
             chrome.fileSystem   OSファイルシステム

             chrome.storage      Chrome Sync同期



              ある程度制限付きのファイル操作

                                 同期が楽そうっ!


13年4月6日土曜日
ネットワーク
             chrome.socket   TCP/UDP socket

             pushMessaging Google Cloud Messaging


        TCP, UDPのデータ送受信、listen, bindが可能
               モバイルにありがちなpush通知
                             サーバが作れるっ!


13年4月6日土曜日
結構いろいろなものが
             作られるようになります



13年4月6日土曜日
サンプルアプリ・デモ
13年4月6日土曜日
UDP受信
                       サーバー不要!!
             Chrome
              App
                 受信


                 UDP
              ブロードキャスト    送信
                         プログラム
13年4月6日土曜日
本当に作りたかったもの

                           Chrome
                            App
             Chrome
              App

                   UDP     Chrome
                ブロードキャスト    App


13年4月6日土曜日
なぜできなかったのか?


             setsockopt的な関数が, chrome.socket API
             になかった

             create socketする時の謎のオプション
             createOptionsとは? (ドキュメント未整備)




13年4月6日土曜日
まだ発展途上です
      https://github.com/civic/chrome-app-udpsocket




13年4月6日土曜日
動作プラットフォーム
13年4月6日土曜日
動作プラットフォーム




13年4月6日土曜日
動作プラットフォーム

               Chrome Browser




13年4月6日土曜日
動作プラットフォーム

                   Chrome Browser




             Chromebook
             (Chrome OS)



13年4月6日土曜日
互換?プラットフォーム




13年4月6日土曜日
互換?プラットフォーム

                  Firefox OS




13年4月6日土曜日
互換?プラットフォーム

                       Firefox OS




               TIZEN



13年4月6日土曜日
互換なのか?


             manifest.jsonなどの作りはほとんど同じ

             apiは当然違う




13年4月6日土曜日
まとめ
13年4月6日土曜日
Web時代のスタンドアロンアプリを
                Chrome Appで作ろう!!


13年4月6日土曜日

NDS31 はじめてChrome App