fxos

Posts filed under fxos

今年一年で読んだ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アプリには入れないんだろう???

[Firefox OS ]test.shェ。。。

Filed in fxos, prog

 長月@テストとかよーわからん。葵です。

 ちょっと用事があって最近Firefox OSのテストとか調べてるんですが、ちょっとやられた感あったので愚痴を。

 B2Gディレクトリ直下にはいろいろ便利なシェルスクリプトが入ってるんですが、テスト用にもtest.shと言うのがあります。

 このtest.shは引数としてテスト対象のシンボルをとります。XPCShellテストなら./test.sh xpcshellといった感じですね。
 この引数は他にmarionette mochitest updatesがあります。usageにはそう書いてます。
 で、xpcshellは動いてくれるんですが、問題はmarionetteとmochitest。
 これGeckoの人とかGaiaの人とかよく使うはずなのに実装されてない。なんか文字列出てくるだけ。

 Gaia UIテストとかGaia integrateテストやりたいって人にtest.sh mochitest使えるんじゃねって言っちゃったしもー!


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年3月
« 12月    
 1234
567891011
12131415161718
19202122232425
262728293031  

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