ちょっとapiかいてみた

17
ちょっとAPIかいてみた 株式会社 グローバルサイバーグループ 藪下正美

Upload: masami-yabushita

Post on 13-Jul-2015

632 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: ちょっとapiかいてみた

ちょっとAPIかいてみた

株式会社

グローバルサイバーグループ

藪下正美

Page 2: ちょっとapiかいてみた

自己紹介

• 名前 藪下 正美

• 会社 株式会社グローバルサイバーグループ

• どんな人?

–オタク

– @aoi_nagatsuki

–プログラミング言語とかスマホとか好き

Page 3: ちょっとapiかいてみた

弊社紹介

• 株式会社グローバルサイバーグループ

–やる気と人間性を大切にする総合開発企業

–とかはどうでもよくて

• ブログやってます

–GCG研究所で検索!

–ネタ募集中!

• 空いてる人が調べてブログに書くのでなんか聞いてね!

Page 4: ちょっとapiかいてみた

今日のおはなし

• APIの作り方を調べました

• XPIDLとかWebIDLとかありますが今回はWebIDLで

–どちらも弊社ブログにあるので興味があったら調べてね! GCG研究所で検索!

• ざっくり手順を述べてもいいんですが覚えて帰るの大変だと思うので苦労話をします

Page 5: ちょっとapiかいてみた

ある日質問があった

• firefox os APIの開発についての質問

– https://groups.google.com/forum/#!topic/fi

refoxos/io8SLcnHfZc

–ざっくりまとめると

• センサーの値を取るAPI追加したい(質問者)

• 弊社ブログに書いてますよ!(弊社)

• 今はWebIDLでやりますよ(池田さん)

–じゃあやろうじゃないか!

Page 6: ちょっとapiかいてみた

MDNを見に行った

• 池田さんがMDNのURL書いてたので見にいった

• アドレスのen-USをjaに変えたら通って喜んだ

–のもつかの間ほとんど未翻訳。。。

• それでもMDNを読みながらやってみた

–いろいろ書いてなかった。。。

–ソースコード読みましょう!

Page 7: ちょっとapiかいてみた

まずビルド通らない

• コンパイルは通るところまではいけどリンクが通せない。。。

–結局gecko/dom/helloとかにソースコードを置いた場合に

obj-gecko/dom/bindings/HelloBindings.cppから

obj-gecko/dom/hello/Hello.oが見えなくてしょんぼり(´・ω・`)

–あきらめてgecko/dom/baseにおいてお茶を濁した

Page 8: ちょっとapiかいてみた

APIってどう追加されるの?

• 弊社ブログに書いてあるXPIDLだとwindow.navigatorの下に入る

–入らなかった

–念のためwindowも見たけどなかった

–じゃあnew Hello()的な?

Page 9: ちょっとapiかいてみた

newしたら

TypeErrorで死んだ

• C++側のコンストラクタが呼ばれてなかったのでそれかなと思って時間を食った

–ほかのAPIを参考にしたらNavigatorとかnsGlobalWindowとかに登録しててそこらへんのプロパティの初回参照とかでオブジェクト作っててあれー? ってなるなど

Page 10: ちょっとapiかいてみた

FirefoxとかFxOSとか関係ないWebIDLのサンプル

とか眺めてて気づいた

• もしかして:newしたかったら[Constructor]属性必要?

–やってみたらいけた(/・ω・)/

• var h = new Hello();

• h.hello();

–的なのが呼べた!

Page 11: ちょっとapiかいてみた

僕は文字列を返すメソッドが作りたいだけなのに!

• DOMString hello();とかやりたくて

• C++側で↓してみた

void Hello(nsString& ret)

{

// hello, world!を出力する

nsString* tmp = new

nsString((nsString::char_type*)L"hello, world!");

ret = *tmp;

}

Page 12: ちょっとapiかいてみた

どうしてこうなった

Page 13: ちょっとapiかいてみた

どうしてこうなった

Page 14: ちょっとapiかいてみた

僕たちは悲しみを一つ一つ乗り越えていくんだ!

• とりあえずちゃんとhello, world!するまで頑張ります!

–そのあとGonk層とかいじくってみるので乞うご期待!

• 今回の技術的な内容はWebで!

–GCG研究所で検索!

Page 15: ちょっとapiかいてみた

宣伝

• 大事なことなので二回目ですがブログネタ募集してます

–GCG研究所で検索!

• 個人的な宣伝ですが猫でもわかるC++プログラミング第2版の編集協力しました! 買ってね!

– http://www.amazon.co.jp/dp/4797372796/a

oiroyozora-22

Page 16: ちょっとapiかいてみた

著作権表示

• "フォクすけ" (C) 2008 Mozilla Japan

• 背景画像はここで作りました

• フォクすけの壁紙メーカー

– http://wallpapers.foxkeh.com/ja/

Page 17: ちょっとapiかいてみた

続きはWebで!

•GCG研究所で検索!