狠狠撸

狠狠撸Share a Scribd company logo
きつねさんでもわかる
#fxos
はじめに
コードリーディングとは???
? 読んで字のごとく、ソースコードを読む事。
エンジニアの「書く」時間と「読む」時間
? 殆どのエンジニアは書く自間の方が多い?
オープンソースのコードリーディング
? コードリーディングって敷居が高い?
#fxos
本日のアジェンダ
読み始める前に(準備編)
1. FirefoxOSってなぁに
2. FirefoxOSのソースはどこにあるの?
読んで行こう (実践編)
①Gaia ( user interface )
1. どのように読むのか(ツール説明)
2. 読み方編(デモ)
3. デバッグ(デモ)
②Gecko (browser engine)
1. どのように読むのか(ツール説明)
2. 読み方編(デモ)
#fxos
FirefoxOSってなぁに?
Mozilla財団が開発しているWebプラットフォーム
HTML5でアプリの開発を行える
Firefox/ThunderbirdでおなじみのブラウザエンジンGecko
が ほぼそのまま乗っている
#fxos
FirefoxOSのアーキテクチャ
Gaia
ユーザーインタフェース部
すべてhtml5,css,javascriptで書かれ
ている。
OSとのやり取りはWebAPI(Gecko)側
に実装されています。
Gecko
アプリケーションランタイム部
HTML,css, JavaScriptエンジン、
WebAPIの実装があります。
Gonk
プラットフォーム部
Linuxカーネル(AOSP)とHALで構成
されている。
#fxos
本日のスコープ
Gaia
ユーザーインタフェース部
すべてhtml5,css,javascriptで書かれ
ている。
OSとのやり取りはWebAPI(Gecko)側
に実装されています。
Gecko
アプリケーションランタイム部
HTML,css, JavaScriptエンジン、
WebAPIの実装があります。
Gonk
プラットフォーム部
Linuxカーネル(AOSP)とHALで構成
されている。
#fxos
ソースコードはどこに?
mozilla-central
http://hg.mozilla.org/mozilla-central
Github
https://github.com/mozilla-b2g/gaia
https://github.com/mozilla/gecko-dev
#fxos
よんでみよう
#fxos
Gaiaを読もう
#fxos
Gaiaを読もう
Github
https://github.com/mozilla-b2g/gaia
https://github.com/mozilla/gecko-dev
#fxos
Gaiaを読もう
MXR (Mozilla Cross Reference)
http://mxr.mozilla.org/gaia/
#fxos
Gaiaを読もう
/apps 直下に
アプリのコードが
入ってる。
#fxos
Gaiaを読もう
WebIDE (デバッグが可能)
https://developer.mozilla.org/ja/docs/Tools/WebIDE
#fxos
Gaiaを読もう(おまけ)
translateZはGPUを使用するので早い(あと低電力)
子要素だけを回転させるので、子要素のレイアウト変更、塗りつぶしなどに
よる予期せぬ動作を回避しています。
#fxos
Gaiaを読もう
OpenGrok
reading.fxos.org/source/
#fxos
Gaiaを読もう(まとめ)
UIの実装を調べたいときに見る
WebAPIの使い方の参考になる
HTML / JavaScript / CSSベースで書いてある
最初に読むとき、オススメのディレクトリ
/apps
? firefoxOS標準インストールされているアプリの格納箇所
? WebAPIの実践的な使い方が書かれている。
? Keybord, camera, bluetooth…など
割とブレークポイントを用いた動的解析は容易
読んで動きが良くわからないときはWebIDEでデバッグするのも有り!
#fxos
Geckoを読もう ( WebAPI )
#fxos
Geckoを読もう ( WebAPI編 )
FirefoxOSとGeckoのバージョンを理解する
Firefox OS Gecko
2.0 32
2.1 34
2.2 37
3.0 ? 41 ?
#fxos
Geckoを読もう ( WebAPI編 )
調べたいAPIを絞る ( Can I Use )
http://caniuse.com/#comparison
#fxos
Geckoを読もう ( WebAPI編 )
調べたいAPIの仕様を見る ( W3C Document )
http://www.w3.org/TR/proximity/
#fxos
Geckoを読もう (Tool編)
MXR (Mozilla Cross Reference)
http://mxr.mozilla.org/mozilla-central/
#fxos
Geckoを読もう (Tool編)
殆どの場合 /dom 配下に奥别产础笔滨の実装がある
#fxos
Geckoを読もう (おまけ)
一部の近接センサーはバイナリ情報で遠いか近いかと言う情報を観測します。
この場合、センサーが返す値は最大検知範囲の値と近い状態の中で、最も小
さい値を報告する必要が有ります。
#fxos
Geckoを読もう (Tool編)
DXR (検索性が良いTool)
https://dxr.mozilla.org/mozilla-central/source/
#fxos
Geckoを読もう (Tool編)
ADB + (デバッグする)
https://developer.mozilla.org/ja/Firefox_OS/Debugging
初心者は同ページの「デバイス上でコンソールログを取る」から始めるのがオ
ススメ。
#fxos
Geckoを読もう (まとめ)
プラットフォーム部分を調べたいときに見る
WebAPIの実装とかエンジン部分とか
C,C++で書かれている
最初に見るべきオススメのディレクトリ
/dom
? だいたいココにWebAPIの実装がある
? レンダリングエンジンとかJSエンジンは別の場所
動的解析が割と大変(Gaiaに比べて)
慣れると簡単なのかもしれないけど、未だ慣れない
#fxos
まとめ / オススメ資料
? 簡単なまとめ
? コードリーディング入門ノウハウ
https://goo.gl/7Po36g
? Firefoxの基本(アプリケーション)
? つくろう!Firefox OS アプリ
http://www.slideshare.net/chikoski/firefox-os-43867933
? MDN アプリセンター
https://developer.mozilla.org/ja/Apps
? アーキテクチャ(全体像)
? FIrefox OSアーキテクチャクイックツアー
https://prezi.com/dxbgeptaxqtb/firefox-os/
? Firefox Diagrams
https://github.com/sotaroikeda/firefox-diagrams/wiki/Firefox-
Diagrams
#fxos
さいごに / イベント紹介
? FxOSコードリーディングミートアップ
? ひとりで読まず、みんなで読もう
https://firefox-os.doorkeeper.jp/
#fxos
さいごに / 個人的な一言
最初から全体から把握しようは読まない
モチベーションを維持する為に気になったところからつ
まみ始めるのがおすすめ。
例: 時計アプリの実装方法とか、気になるWebAPIとか
WoTでは最も先進的なプラットフォームだと思ってる
すべてがOpenなのでデバイス系APIを実機付きで手軽に
試せるのはFirefoxOSの強み!
(早くCHIRIMEN触りたい???)
#fxos
酒巻瑞穂は自身のポテンシャルを最大限発揮するために常に挑戦を通してその分野への大志を抱く意
欲的な専門家である。 以前は物流系での開発、主にデータベース設計やバックエンドのフレーム
ワーク構築/運用に情熱をかけ、 如何に生産性を上げつつ運用コストを削減するかと言う観点から製
造の基盤系技術や学習に挑戦と意欲を出していた。 近年ではWeb技術を中心としたフロントソフト
ウェア開発/製造において、 開発基盤と開発ライフサイクルを如何に効率化/高品質化するかに対して
情熱を注いでいる。 そこで得たWeb技術中心のUI製造ノウハウを元に、業務システムエンジニアに
向けたセミナーや勉強会に貢献しているだけでなく、 積極的にGoogleやMozilla等のOpen系のWeb技
術コミュニティーにて参加し、将来有力な開発基盤となりそうなOSSのコミッターを目指す野心家で
もある。
自己紹介
酒巻 瑞穂(さかまき みずほ)
グロースエクスパートナーズ フロントエンドエンジニア
Github: https://github.com/MSakamaki
ご清聴ありがとうございました。
Ad

Recommended

PDF
インフラエンジニアのためのプレゼン技术
koedoyoshida
?
PDF
Android Framework Code Readingのしおり ver 1.2
Shinobu Okano
?
PDF
あいぽん落としたと闻いたので!
Kouhei Maeda
?
PPTX
Windows Phone 7 Series初めの一歩
貴仁 大和屋
?
PPTX
20160422冲濒辞尘产辞办について
Hidaka Kazutaka
?
PDF
Android Framework Code Readingのしおり
Shinobu Okano
?
PDF
础苍诲谤辞颈诲エンジニアが语る飞飞诲肠2014
Shinobu Okano
?
PDF
まったりAndroid framework code reading #2
Shinobu Okano
?
PPT
モダンでオサレな飞别产サイト
Munenori Sugimura
?
PDF
まったりAndroid framework code reading #1
Shinobu Okano
?
PDF
Firefox OS 起動の仕組みを調べてみた
Muneaki Nishimura
?
PDF
Firefox OS カスタム ROM の作成
Honma Masashi
?
PDF
Android Framework Code Readingのしおり ver 1.1
Shinobu Okano
?
PDF
技术的负债との戦い方
Iosif Takakura
?
PDF
学会?研究会の情报保障におけるソーシャルネットワークの役割
Takuya Nishimoto
?
PDF
モバイル翱厂と奥别产标準とそれらへのアプローチ
Kisato
?
PDF
Xcode グループとフォルダー参照 #yhios
Tomohiro Kumagai
?
PPTX
関西FXOS勉強会3rdGIG キーボード大好き!
雅彦 金井
?
PDF
NDEF Writerを使ってみよう
Hirokuma Ueno
?
PDF
Xcode 7で始めるCI
yuki0211s
?
PDF
剣と魔法のログレス(笔颁版)の自慢と课题
AimingStudy
?
PDF
Firefox OS 2012 年まとめ
Honma Masashi
?
PPTX
第4回 IT講座 ゲームを作ってみよう! 応用編
Shunya Komori
?
PPTX
第3回 IT講座 ゲームを作ってみよう! 基礎編
Shunya Komori
?
PPTX
第2回 IT講座 ゲームを作るって?
Shunya Komori
?
PDF
元運用担当者が,現役時代に本当に欲しかったもの. Osc2014 kansai@kyoto terraform introduction
Masahito Zembutsu
?
PDF
できる!スマホアプリ:奥别产からはじまるアプリ for CMU16
Masami Yabushita
?
PDF
Code for iizukaとオープンデータ
Kindai University
?
PDF
Firefox OS - Blaze Your Own Path
dynamis
?
PDF
顿辞肠办别谤で开発环境をデリバる
Daigou Harada
?

More Related Content

What's hot (17)

PPT
モダンでオサレな飞别产サイト
Munenori Sugimura
?
PDF
まったりAndroid framework code reading #1
Shinobu Okano
?
PDF
Firefox OS 起動の仕組みを調べてみた
Muneaki Nishimura
?
PDF
Firefox OS カスタム ROM の作成
Honma Masashi
?
PDF
Android Framework Code Readingのしおり ver 1.1
Shinobu Okano
?
PDF
技术的负债との戦い方
Iosif Takakura
?
PDF
学会?研究会の情报保障におけるソーシャルネットワークの役割
Takuya Nishimoto
?
PDF
モバイル翱厂と奥别产标準とそれらへのアプローチ
Kisato
?
PDF
Xcode グループとフォルダー参照 #yhios
Tomohiro Kumagai
?
PPTX
関西FXOS勉強会3rdGIG キーボード大好き!
雅彦 金井
?
PDF
NDEF Writerを使ってみよう
Hirokuma Ueno
?
PDF
Xcode 7で始めるCI
yuki0211s
?
PDF
剣と魔法のログレス(笔颁版)の自慢と课题
AimingStudy
?
PDF
Firefox OS 2012 年まとめ
Honma Masashi
?
PPTX
第4回 IT講座 ゲームを作ってみよう! 応用編
Shunya Komori
?
PPTX
第3回 IT講座 ゲームを作ってみよう! 基礎編
Shunya Komori
?
PPTX
第2回 IT講座 ゲームを作るって?
Shunya Komori
?
モダンでオサレな飞别产サイト
Munenori Sugimura
?
まったりAndroid framework code reading #1
Shinobu Okano
?
Firefox OS 起動の仕組みを調べてみた
Muneaki Nishimura
?
Firefox OS カスタム ROM の作成
Honma Masashi
?
Android Framework Code Readingのしおり ver 1.1
Shinobu Okano
?
技术的负债との戦い方
Iosif Takakura
?
学会?研究会の情报保障におけるソーシャルネットワークの役割
Takuya Nishimoto
?
モバイル翱厂と奥别产标準とそれらへのアプローチ
Kisato
?
Xcode グループとフォルダー参照 #yhios
Tomohiro Kumagai
?
関西FXOS勉強会3rdGIG キーボード大好き!
雅彦 金井
?
NDEF Writerを使ってみよう
Hirokuma Ueno
?
Xcode 7で始めるCI
yuki0211s
?
剣と魔法のログレス(笔颁版)の自慢と课题
AimingStudy
?
Firefox OS 2012 年まとめ
Honma Masashi
?
第4回 IT講座 ゲームを作ってみよう! 応用編
Shunya Komori
?
第3回 IT講座 ゲームを作ってみよう! 基礎編
Shunya Komori
?
第2回 IT講座 ゲームを作るって?
Shunya Komori
?

Similar to きつねさんでもわかる Firefox OS コードリーディング入門 (20)

PDF
元運用担当者が,現役時代に本当に欲しかったもの. Osc2014 kansai@kyoto terraform introduction
Masahito Zembutsu
?
PDF
できる!スマホアプリ:奥别产からはじまるアプリ for CMU16
Masami Yabushita
?
PDF
Code for iizukaとオープンデータ
Kindai University
?
PDF
Firefox OS - Blaze Your Own Path
dynamis
?
PDF
顿辞肠办别谤で开発环境をデリバる
Daigou Harada
?
KEY
厂苍补辫顿颈蝉丑の事例
Fumikazu Kiyota
?
PPTX
惭补肠で快适にプログラミング
Yusuke Sakurai
?
PDF
Firefox osて?変わるアフ?リケーションの開発ライフサイクル
Mizuho Sakamaki
?
PDF
論理思考とプログラミング 2013f#10
Noritada Shimizu
?
PPT
ファイラーの話 (変プロ#9)
men100per
?
PDF
达人出版会のご绍介(技术编)
masayoshi takahashi
?
PDF
スマホ(础苍诲谤辞颈诲?颈笔丑辞苍别)で奥别产搁罢颁
Natsuki Yamanaka
?
PPTX
今日から始める尝补谤补惫别濒
Masaru Matsuo
?
PDF
Secret of Firefox
dynamis
?
PDF
Firefox OSアフ?リの概要@gunma.web
Hayato Hiratori
?
PDF
できる!スマホアプリ:奥别产からはじまるアプリ
Masami Yabushita
?
PDF
セ?ロからのフ?ロク?ラミンク?Rails講座 Codeanywhere版
DIVE INTO CODE Corp.
?
PDF
自作蹿濒耻迟迟别谤アプリをリファクタリングしてみた!
とさ はるき
?
PDF
最近のフロントエンドツールの绍介
Ryo Iinuma
?
PDF
20141018 osc tokyo_fall_firefox osってなぁに?
Masami Yabushita
?
元運用担当者が,現役時代に本当に欲しかったもの. Osc2014 kansai@kyoto terraform introduction
Masahito Zembutsu
?
できる!スマホアプリ:奥别产からはじまるアプリ for CMU16
Masami Yabushita
?
Code for iizukaとオープンデータ
Kindai University
?
Firefox OS - Blaze Your Own Path
dynamis
?
顿辞肠办别谤で开発环境をデリバる
Daigou Harada
?
厂苍补辫顿颈蝉丑の事例
Fumikazu Kiyota
?
惭补肠で快适にプログラミング
Yusuke Sakurai
?
Firefox osて?変わるアフ?リケーションの開発ライフサイクル
Mizuho Sakamaki
?
論理思考とプログラミング 2013f#10
Noritada Shimizu
?
ファイラーの話 (変プロ#9)
men100per
?
达人出版会のご绍介(技术编)
masayoshi takahashi
?
スマホ(础苍诲谤辞颈诲?颈笔丑辞苍别)で奥别产搁罢颁
Natsuki Yamanaka
?
今日から始める尝补谤补惫别濒
Masaru Matsuo
?
Secret of Firefox
dynamis
?
Firefox OSアフ?リの概要@gunma.web
Hayato Hiratori
?
できる!スマホアプリ:奥别产からはじまるアプリ
Masami Yabushita
?
セ?ロからのフ?ロク?ラミンク?Rails講座 Codeanywhere版
DIVE INTO CODE Corp.
?
自作蹿濒耻迟迟别谤アプリをリファクタリングしてみた!
とさ はるき
?
最近のフロントエンドツールの绍介
Ryo Iinuma
?
20141018 osc tokyo_fall_firefox osってなぁに?
Masami Yabushita
?
Ad

More from Mizuho Sakamaki (7)

PPTX
Electron Vs Enterprise
Mizuho Sakamaki
?
PDF
开発ライフサイクルから见た础苍驳耻濒补谤闯厂
Mizuho Sakamaki
?
PDF
OSCKyotoWebPlatform
Mizuho Sakamaki
?
PDF
PhoneGapなんか要らない? FirefoxOS
Mizuho Sakamaki
?
PDF
狈补蝉丑辞谤苍と厂别谤惫别谤厂颈诲别闯补惫补厂肠谤颈辫迟
Mizuho Sakamaki
?
PDF
Dev sum2014
Mizuho Sakamaki
?
PDF
厂笔础に必要な闯补惫补厂肠谤颈辫迟贵谤补尘别奥辞谤办
Mizuho Sakamaki
?
Electron Vs Enterprise
Mizuho Sakamaki
?
开発ライフサイクルから见た础苍驳耻濒补谤闯厂
Mizuho Sakamaki
?
OSCKyotoWebPlatform
Mizuho Sakamaki
?
PhoneGapなんか要らない? FirefoxOS
Mizuho Sakamaki
?
狈补蝉丑辞谤苍と厂别谤惫别谤厂颈诲别闯补惫补厂肠谤颈辫迟
Mizuho Sakamaki
?
Dev sum2014
Mizuho Sakamaki
?
厂笔础に必要な闯补惫补厂肠谤颈辫迟贵谤补尘别奥辞谤办
Mizuho Sakamaki
?
Ad

きつねさんでもわかる Firefox OS コードリーディング入門