こばこのひみつこばこのひみつうを水をゆくに、ゆけども水のきはなく、鳥そらをとぶに、とぶといへどもそらのきはなし。»2015/03/31Chromebookでローカル動作するアプリをセルフ開発してみるChromebookのいいところのひとつに、Chromebookで動作するアプリをChromebookで開発、ビルドできることがあります。PCは必要ありません。Chromebookが1台あれば、Chromeアプリを作成し、動かすことができます。前々回、Chrome拡張を作りましたが、あれはブラウザのバーに常駐するものでした。これを少し変更して、ブラウザを立ち上げなくても、ローカルで動作できるChromeアプリを、Chromebookで作ってみます。PCで改行コードが意図した通りに変換できているか確認したり、Chromebookで設定した項目が引き継げているか確かめているので、Chromebookだけで作成することにこだわっているわけではありません。普通にできるのと、まともにできないのは大きな違いのように感じます。Chromeブラウザしか動かずオンライン接続していないとほぼ使い物にならないと言われるChromebookですけれど、通常のブラウザ画面とは別に、ローカルで動作するChromeアプリも作成することが可能です。基本的にはChrome拡張と同じような感じで作成していきます。Chromebookのローカルドライブである「ダウンロード」に作成するアプリ用のフォルダを掘り、その中に、manifest.jsonを作成します。ぼくはCaretというアプリをテキストエディタとして使って作成しています。background.jsというスクリプトを作成します。ここからhtmlをまず開きます。今回はsjispad.htmlというファイルを開いています。この中で別ファイルのスクリプトsjispad.jsをよみこんでいます。このスクリプトにアプリの処理を書けばよい、ということのようです。非同期apiというのがなかなか分かりにくいです。スクリプトを書けたらまずローカルでテストします。Chromeブラウザの[その他のツール]-[拡張機能]の画面を出します。デベロッパーモードのチェックを入れると、開発者用メニューが出てきます。ここで[パッケージ化されていない拡張機能を読み込む]でフォルダを指定すると、manifest.jsonを読んでアプリをメニューに登録してくれます。エラーのあるときは表示されるので、manifest.jsonの内容など修正していきます。ここで、[拡張機能のパッケージ化]でパッケージファイルを作成することができます。前々回のChrome拡張もそうだったのですけれど、パッケージファイルで運用するより、Chromeウェブストアに上げてしまった方が管理が簡単でした。Chromeウェブストアで公開するには、最初に$5必要ですが、Chromeウェブストアからインストールしておけば、どのデバイスでもChromeでログインすれば同じアプリが使えますし、アップデートも自動でしてくれて、面倒がありません。いうわけで、自分しか使わないだろうけれど、Chromeウェブストアに上げて公開します。バグだらけのときは限定公開にしておけば、リンクを知らなければインストールできないので安心でしょう。デベロッパーダッシュボードから、アップロードします。アプリを作成していたフォルダをzipにしてアップロードします。これがソース一式です。(MITライセンスにしておきました)スクリーンショットやプロモーションタイル画像が必要になります。これもChromebookで作成します。Editorで指定の大きさにスクリーンショットが画像を変換したり作成したりしてアップロードしました。どりあえず作成したアプリに、設定画面を付け加えます。フォントの大きさくらい変えたいよな、というのと、改行コードを選んでテキストファイルに保存したかったからです。設定はローカルストレージに保存されますが、syncにしておけば、各デバイスをまたいで設定値を利用できるようです。ついでに入力中のメモ本文をローカルストレージに自動保存しておくようにします。こちらは容量の壁に当たらないように、syncでなくlocalにしておきます。そのデバイスでしか読み込めませんが、十分でしょう。Chromebookで、シフトJISで保存できるメモ帳もどきを自作できました。pad自分で使う分にはこれで十分です。こんな風に、比較的気軽にChromebookではローカルで動くアプリを作成することができす。ブラウザしか動かない不自由なマシン、という購入前の印象と、自分で好きにアプリを作って動かせるコンピュータという、実際に手にして使ってみてのChromebookの印象はずいぶん違うものです。楽しいマシンです、Chromebook。padを愛用させていただいています。JISにする必要があるので助かっています。要望ですが、検索と置換機能をつけることは可能でしょうか。目的の場所を探したり、リンクを一括で書き換えたりするのに検索と置換機能があると助かります。Communicatorが届きました。はてなハイクayati.comayatiの日記はてなアンテナマイリスト。