Firefox OS

Posts filed under Firefox OS

今年一年で読んだFirefox OSの実装を振り返ってみた

Filed in Firefox OS, fxos, prog

 すっかりアドベントカレンダーのことを忘れてて超ピンチのあおいたんです。

 本エントリはFirefox OS Advent Calendar 2015 25日目の記事です。

 さて今年一年皆様どんなFxOSライフをおくられましたか? あおいたん何気に社畜感高まった一年だったのでまとまった成果がないんですが、今年一年なんやかんやでFxOSのソースコードを読む機会はアレコレあったので聞いてもらえれば何かしら話せるよって所をちょこっと書いてみます。どこかで会うなりついったで@するなり詳しく教えろって言ってもらったらなんか語ります。

 記憶だけではもう振り返れないのでプライベートリポジトリのコミットログから月ごとぐらいでざっくり振り返っていきまする。

1月

  • カメラアプリ

    • なんかクラウドストレージに画像をアップロードするアプリを作ろうと思ってカメラAPIとDeviceStorage APIの使われ方を読んでたみたいです。
    • 確かDeviceStorage APIのchangeイベントでファイルの変更を検知しようと思ったけどアプリが裏に回ったら取れなくなって涙目になってたりしました。
    • そろそろ大体忘れてきたのでカメラの話はMozilla Japanの清水さんあたりに聞いたほうがいいかも。
  • 設定アプリとかSystemアプリとかコストコントロールアプリとか

    • Bluetoothで遊びたくてBT周りを読んでましたがもうすっかり忘れてます。メモっとくべきでした。

2月

  • Gaiaのテストアプリ色々とかgecko/dom/webidl配下とか
    • Codezineの記事のためにセンサー絡みを色々読んでました。
    • この時は目的がAPIの使い方に寄ってたので使ってるところとインターフェイスだけ読んでました。
    • 使い方とかはCodezineの記事とか会社ブログの記事とか読んでみてください。

3月

  • Contacts API
    • 4月に開催予定だったFxOSコードリーディングミートアップでLTやるネタで読んでました。
    • Contacts APIだけじゃなくてアプリ側も読んでましたが最近アプリ側は変更著しいので聞かないでね!
    • この頃何故かソートアルゴリズムを実装してオーダを見比べてにやけるのに熱中してたのであんまり読んでないです。

4月

  • Vibrator API

    • FxOSコードリーディングミートアップのLT用ネタ第二弾。
    • Vibrator APIは2013年の終わりごろにも読んでたんですけど変わってない感じで安心感ありました。
  • Geckoいろいろ

    • b2g配下とかdom配下に何があるかとかざっくり読んだのとグラフィック周りを読もうとして挫折したのとJS周り読もうとして挫折したのとHTMLパーザ読もうとして(ry
    • いわゆるGonkと呼ばれてるあたりのうちHAL層とかをざらっとななめ読み。
    • この辺の成果はわんくまとかで話しました

5月6月

  • この辺りはデスマの第一波が来てたのでお休みです。
  • 仕事以外の時間はずっとラノベ読んでたような気がします。

7月

  • gecko/xpcom配下とかgecko/dom/bindings配下とかgecko/ipc/ipdl配下とか
    • コードジェネレートする類のスクリプトを読んでました。
    • 確かなにかとIPC周りを追っていたのにXPCOMとかServicesとかComponentsとかで迷子になって挫折した感じ。
    • 三ヶ月ぐらい後にもまた迷子に。

8月

  • お盆休み明けたらデスマが始まってあまり読めず
  • ちょっと記憶が曖昧ながらDeviceStorage APIの使い方じゃなくて実装を読み始めたけどすぐ忙しくなってほとんど読めてませんでした。

9月

  • init.rcとかgecko/b2g配下とかSystemアプリとか

    • なにやらブート周りを調べてました。なんで調べようと思ったんだっけ?
  • 勢い余ってmozAppsとか

    • SystemアプリからのmozApps。
    • ただこの辺りもデスマ継続中なのでさわりだけ。使われ方を眺めた程度。

10月

  • DeviceStorage APIとか再び

    • ファイルシステムとDeviceStorage APIのKVS的なファイル管理のギャップがどうなってるのかとかファイル変更イベントの流れとかボリュームの空き容量監視とか気になって調べてました。
    • この時はファイル管理のところだけ調べてます。後にファイル変更イベントとかも調べてます。
  • gecko/xpcom配下とかgecko/dom/bindings配下とかgecko/ipc/ipdl配下とか再び

    • 前に迷子になって諦めたのを再チャレンジ。
    • 結局迷子でXPCOMに打ちのめされて泣きながらIPDL関連調べてました。
    • おかげさまでちょっとIPDLに詳しくなれた気がする。Gecko insideとかちょこちょこ質問したりとか@makoto_katoにはお世話になりっぱなしである。
    • みんなIPDLチュートリアル読むといいよ。
  • この辺もデスマ継続中というかバーンダウンせずバーンアップし続けていたのに現実逃避的にソース読む時間が増えてました。

11月

  • mozApps再び

    • もうちょっとちゃんと追ってます。使われ方を見てたはずがいつの間にか実装読んでるのはいつもの話。
    • アプリの起動はプロセスの関係とか諸々ちょっとめんどくさいので気になる人はリクエスト貰えたら何かしら書きます。
  • ビルドコンフィグ

    • .userconfigとかmoz.buildとかをちょっと調べていました。ビルドシステムは大抵のプロダクトでめんどくさいところですね。FxOSもめんどくさいです。
    • makeとかautoconfigとか読んでたらだんだん疲れておざなりで終わってしまいました。その内読み直します。
  • TCPSocketとかUDPSocketとか

    • そもそも使われて無くてもんやりしつつGaiaで数少ない利用例である新しいメールアプリとかSSDPの実装とか読んでました。
    • まあとりあえず使う方だけさらっと見てた感じ。ドキュメントもないのでwebidlはいくらか読んでました。

12月

  • DeviceStorage APIとか三度

    • ファイル変更イベントと空き容量監視を中心に調べてました。
    • とりあえず気になるところは調べて満足しました。
  • 引き続きTCPSocketとかUDPSocketとか。に加えてXHRとか

    • TCPSocketとかUDPSocketとかはドキュメントもアレなので実装見ないと何やってるかよーわからんみたいなアレで読んでる最中です。
    • とりあえずアプリから使える通信手段まとめて見ようかな的にXHRとかもちょろりと調べてます。

 とまあ思い返してみたら何かしらずっと読んでました。今年はどちらかと言うとGeckoに寄ってた気がします。

 来年はGeckoを読むのは継続なんですが、ちょっとNGAとかadd-onとか新しい仕組みの部分を見ていきたいなと思います。

[Firefox OS][Gaia]消えないアプリの作り方

Filed in Firefox OS, fxos, prog

 長月@ちくわの穴を覗いてしまった並の衝撃が走った。です。

 長月は会社がイチオシてたり趣味だったりとかでFirefox OSをよく触ってるんですが、今日ちょっと衝撃的な事実を知ってしまいました。

image

 システムアプリすらアンインストールできてしまうFirefox OSなんですが、Marketplaceだけ消せません。
 これは気になる! ということで調べてみました。

 この手の起動とかインストールとかに関わる情報はだいたいミニマニフェストで示されるので探してみました。

{
  "etag": "\"ed2e516580c8fb5317a1d1378f02592dc64c69f0c822b52a1dc17601fdfbd2a7\"",
  "installOrigin": "https://marketplace.firefox.com",
  "manifestURL": "https://marketplace.firefox.com/packaged.webapp",
  "packageEtag": "\"3a5c08e91b3b7f885c7f6d1ab902f989d721947509ff39fc83913715855bb99e\"",
  "removable": false,
  "type": "privileged"
}

 お?

  "removable": false,

 これっぽい。

 ドキュメントも漁ってみます。

https://developer.mozilla.org/en-US/Firefox_OS/Developing_Gaia/Market_customizations_guide#Prebundled_web_app_metadata.json

 これですね。

 というわけでバンドル用のアプリに関してはmetadata.jsonに"removable":false,の行を書いとけば削除不可になるみたいです。
 これなんで他のgaiaアプリには入れないんだろう???

[わんくま][イベント]わんくま勉強会名古屋#31のアンケート結果

Filed in Firefox OS, prog, わんくま, 勉強会, 名古屋

 長月@久しぶりにアンケート集計してみた。葵です。

 昔聞いた計算方法を思い出し出しアンケートの集計をしました。
 いただいたコメントともども今後の参考にさせていただきます。

アンケート集計結果

Q1.セッションの内容は期待どおりでしたか

 140.0 ポイント

  • コメント
    • web技術→カンタンにアプリへ、というのがよかった

 ご期待には答えられたようで一安心です。
 セッション中は興味から外れたかな? と思ってたんですが取り越し苦労でした。

Q2.セッションの内容は理解できましたか

 110.0 ポイント

 理解度が低いのはスピーカへのコメントにもある通り早口で畳みかけてしまったのが大きかったですね。
 京都で講演した時より時間がある分余分なことを言ってしまったかもしれません。
 もうちょっと内容の量や間を取ったりに気を付けます。
#去年FxOSの話した時も同じことを思った気が。。。

Q3.このセッションを知り合いなどに伝えたいと思いますか

 125.0 ポイント

 誰かに伝えたいと思っていただけるのはとてもうれしいです。
 今後の長月のお仕事のためにもどんどんはやらせましょう!w

スピーカへのコメント

  • 内容はとてもわかりやすかったのですが、話すスピードが速く感じられました
  • 内容が多めなので説明の間を取ってもらえると聞いていて疲れないです
  • Firefox OSが持つ可能性やワクワク感が伝わるセッションでした。説明が早口だったので全部を理解できませんでした

 すみません。。。早口ほんとすみません。。。
 話したいことが多くてつい盛り込んでしまうのは悪い癖ですね。
 でもそれだけ話したいこといっぱいなFirefox OSなんですよ!

  • Firefox OSが持つ可能性やワクワク感が伝わるセッションでした。説明が早口だったので全部を理解できませんでした(再掲)

 ワクワクしてもらえたのはとてもうれしいです。是非アプリを作ったりしてそのワクワクをほかの人にも伝えてくださいね!

  • Firefox OSでのアプリの作り方がわかってよかった。DropBox DataStoreAPIも知らなかったのでためになりました

 ぜひぜひ何か作ってみてくださいね!
 紹介したFirefoxのデバッグ機能も使ってみるともっと楽しさがわかりますよ。

  • 端末が欲しくなりました。入手する方法を教えていただければと思います

 端末の入手は日本からだとちょっと大変です。
 今手に入る端末と手に入れ方はまた近日書きますね。

まとめ

 うれしいコメントがたくさんもらえたのでつい書いてしまいました。
 当日聞いていただけた方々ありがとうございました!
 聞きたいことがあったら気軽に聞いてくださいね!

[Firefox OS]test.sh xpcshellがbusyboxないよ! と怒るときの処方箋

Filed in Firefox OS, prog

 長月@"テスト周りの翻訳祭り中"葵です。

 前回test.shについて書きました。
 xpcshellは動くと書いたんですが、動かないですヨ? と言われたので補足を。

 test.sh xpcshellを実行するとエミュレータを起動してエミュレータにbusyboxをインストールします。
 このbusyboxはビルド環境の中に入っていないので自前で用意する必要があります。
 具体的には$B2G/scripts/xpcshell.shの中で

BUSYBOX=$B2G_DIR/gaia/build/busybox-armv6l
    :
  (snip)
    :
XPCSHELL_FLAGS+=" --b2gpath $B2G_DIR \
                  --use-device-libs \
                  --busybox $BUSYBOX \
                  --testing-modules-dir $TESTING_MODULES_DIR"

 と、--busybox引数で特定のパスを渡しています。
 なのでちょいとwgetしてみました。


#!/bin/sh

B2G_DIR=$1

if [ ! -f $B2G_DIR/gaia/build/busybox-armv6l ]
then
wget -P $B2G_DIR/gaia/build/ http://busybox.net/downloads/binaries/1.19.0/busybox-armv6l
fi

 これでとりあえず動くはず?


Warning: sprintf() [function.sprintf]: Too few arguments in /home/users/2/lolipop.jp-dp07042166/web/wordpress/wp-includes/widgets.php on line 1042
Oenology Post Formats
Click to view/hide

Warning: sprintf() [function.sprintf]: Too few arguments in /home/users/2/lolipop.jp-dp07042166/web/wordpress/wp-includes/widgets.php on line 1042
Posts Calendar
Click to view/hide
2017年11月
« 12月    
 1234
567891011
12131415161718
19202122232425
2627282930  

Warning: sprintf() [function.sprintf]: Too few arguments in /home/users/2/lolipop.jp-dp07042166/web/wordpress/wp-includes/widgets.php on line 1042
アーカイブ
Click to view/hide

Warning: sprintf() [function.sprintf]: Too few arguments in /home/users/2/lolipop.jp-dp07042166/web/wordpress/wp-includes/widgets.php on line 1042
最近の投稿
Click to view/hide