ちょっとapiかいてみた
TRANSCRIPT
![Page 1: ちょっとapiかいてみた](https://reader036.vdocuments.mx/reader036/viewer/2022081519/5562d7eed8b42a6c498b51ae/html5/thumbnails/1.jpg)
ちょっとAPIかいてみた
株式会社グローバルサイバーグループ
藪下正美
![Page 2: ちょっとapiかいてみた](https://reader036.vdocuments.mx/reader036/viewer/2022081519/5562d7eed8b42a6c498b51ae/html5/thumbnails/2.jpg)
自己紹介• 名前 藪下 正美• 会社 株式会社グローバルサイバーグルー
プ• どんな人?– オタク–@aoi_nagatsuki– プログラミング言語とかスマホとか好き
![Page 3: ちょっとapiかいてみた](https://reader036.vdocuments.mx/reader036/viewer/2022081519/5562d7eed8b42a6c498b51ae/html5/thumbnails/3.jpg)
弊社紹介• 株式会社グローバルサイバーグループ– やる気と人間性を大切にする総合開発企業– とかはどうでもよくて
• ブログやってます– GCG研究所で検索!– ネタ募集中!• 空いてる人が調べてブログに書くのでなんか聞い
てね!
![Page 4: ちょっとapiかいてみた](https://reader036.vdocuments.mx/reader036/viewer/2022081519/5562d7eed8b42a6c498b51ae/html5/thumbnails/4.jpg)
今日のおはなし• APIの作り方を調べました• XPIDLとかWebIDLとかありま
すが今回はWebIDLで– どちらも弊社ブログにあるので興味があった
ら調べてね! GCG研究所で検索!• ざっくり手順を述べてもいいんですが覚え
て帰るの大変だと思うので苦労話をします
![Page 5: ちょっとapiかいてみた](https://reader036.vdocuments.mx/reader036/viewer/2022081519/5562d7eed8b42a6c498b51ae/html5/thumbnails/5.jpg)
ある日質問があった• firefox os API の開発についての質問– https://groups.google.com/forum/#!topic
/firefoxos/io8SLcnHfZc– ざっくりまとめると• センサーの値を取るAPI追加したい(質問者)• 弊社ブログに書いてますよ!(弊社)• 今はWebIDLでやりますよ(池田さん)
– じゃあやろうじゃないか!
![Page 6: ちょっとapiかいてみた](https://reader036.vdocuments.mx/reader036/viewer/2022081519/5562d7eed8b42a6c498b51ae/html5/thumbnails/6.jpg)
MDNを見に行った• 池田さんがMDNのURL書いてたので
見にいった• アドレスの en-US を ja に変えたら通って
喜んだ– のもつかの間ほとんど未翻訳。。。
• それでもMDNを読みながらやってみた– いろいろ書いてなかった。。。– ソースコード読みましょう!
![Page 7: ちょっとapiかいてみた](https://reader036.vdocuments.mx/reader036/viewer/2022081519/5562d7eed8b42a6c498b51ae/html5/thumbnails/7.jpg)
まずビルド通らない• コンパイルは通るところまではいけどリン
クが通せない。。。– 結局 gecko/dom/hello とかにソースコードを
置いた場合にobj-gecko/dom/bindings/HelloBindings.cpp
からobj-gecko/dom/hello/Hello.o が見えなくて
しょんぼり (´ ・ ω ・ `)– あきらめて gecko/dom/base においてお茶を
濁した
![Page 8: ちょっとapiかいてみた](https://reader036.vdocuments.mx/reader036/viewer/2022081519/5562d7eed8b42a6c498b51ae/html5/thumbnails/8.jpg)
APIってどう追加されるの?• 弊社ブログに書いてあるXPIDLだと
window.navigator の下に入る– 入らなかった– 念のため window も見たけどなかった– じゃあ new Hello() 的な?
![Page 9: ちょっとapiかいてみた](https://reader036.vdocuments.mx/reader036/viewer/2022081519/5562d7eed8b42a6c498b51ae/html5/thumbnails/9.jpg)
newしたらTypeErrorで死んだ
• C++側のコンストラクタが呼ばれてなかったのでそれかなと思って時間を食った– ほかのAPIを参考にしたらNavigat
orとかnsGlobalWindowとかに登録しててそこらへんのプロパティの初回参照とかでオブジェクト作っててあれー? ってなるなど
![Page 10: ちょっとapiかいてみた](https://reader036.vdocuments.mx/reader036/viewer/2022081519/5562d7eed8b42a6c498b51ae/html5/thumbnails/10.jpg)
FirefoxとかFxOSとか関係ないWebIDLのサンプルとか眺めてて気づいた
• もしかして:newしたかったら [ Constructor ] 属性必要?– やってみたらいけた (/ ・ ω ・ )/• var h = new Hello();• h.hello();
– 的なのが呼べた!
![Page 11: ちょっとapiかいてみた](https://reader036.vdocuments.mx/reader036/viewer/2022081519/5562d7eed8b42a6c498b51ae/html5/thumbnails/11.jpg)
僕は文字列を返すメソッドが作りたいだけなのに!
• DOMString hello(); とかやりたくて• C++側で↓してみた
void Hello(nsString& ret) { // hello, world! を出力する nsString* tmp = new
nsString((nsString::char_type*)L"hello, world!");
ret = *tmp; }
![Page 12: ちょっとapiかいてみた](https://reader036.vdocuments.mx/reader036/viewer/2022081519/5562d7eed8b42a6c498b51ae/html5/thumbnails/12.jpg)
どうしてこうなった
![Page 13: ちょっとapiかいてみた](https://reader036.vdocuments.mx/reader036/viewer/2022081519/5562d7eed8b42a6c498b51ae/html5/thumbnails/13.jpg)
どうしてこうなった
![Page 14: ちょっとapiかいてみた](https://reader036.vdocuments.mx/reader036/viewer/2022081519/5562d7eed8b42a6c498b51ae/html5/thumbnails/14.jpg)
僕たちは悲しみを一つ一つ乗り越えていくんだ!
• とりあえずちゃんと hello, world! するまで頑張ります!– そのあとGonk層とかいじくってみるので乞うご期待!
• 今回の技術的な内容はWebで!– GCG研究所で検索!
![Page 15: ちょっとapiかいてみた](https://reader036.vdocuments.mx/reader036/viewer/2022081519/5562d7eed8b42a6c498b51ae/html5/thumbnails/15.jpg)
宣伝• 大事なことなので二回目ですがブログネ
タ募集してます– GCG研究所で検索!
• 個人的な宣伝ですが猫でもわかるC++プログラミング第2版の編集協力しました! 買ってね!– http://
www.amazon.co.jp/dp/4797372796/aoiroyozora-22
![Page 16: ちょっとapiかいてみた](https://reader036.vdocuments.mx/reader036/viewer/2022081519/5562d7eed8b42a6c498b51ae/html5/thumbnails/16.jpg)
著作権表示• "フォクすけ " (C) 2008 Mozilla Japan• 背景画像はここで作りました• フォクすけの壁紙メーカー– http://wallpapers.foxkeh.com/ja/
![Page 17: ちょっとapiかいてみた](https://reader036.vdocuments.mx/reader036/viewer/2022081519/5562d7eed8b42a6c498b51ae/html5/thumbnails/17.jpg)
続きはWebで!
•GCG研究所で検索!