potatotips (ios/android開発tips共有会) 第19回 資料

18
Potatotips 2015/07/14 @cattaka_net メソッドを外部から無理やり叩く 〜開発中だからできる荒技〜 Takao Sumitomo @cattaka_net

Upload: takao-sumitomo

Post on 06-Aug-2015

3.006 views

Category:

Technology


3 download

TRANSCRIPT

Potatotips 2015/07/14 @cattaka_net

メソッドを外部から無理やり叩く〜開発中だからできる荒技〜

Takao Sumitomo@cattaka_net

Potatotips 2015/07/14 @cattaka_net

自己紹介● 住友 孝郎(Takao Sumitomo)

● たぶんAndroidアプリ開発者

● その他

● 電子工作

● OpenCV

● 執筆(?)

● ウォンテッドリー株式会社所属

Potatotips 2015/07/14 @cattaka_net

センサーを使ったアプリを作れるよね

WiFi

加速度

Bluetooth

iBeacon

ローテーション

GPS

Potatotips 2015/07/14 @cattaka_net

デバイス内のメソッドを直接叩きたいときあるよね

Potatotips 2015/07/14 @cattaka_net

なんかこう、アプリ側でHTTPサーバーを立てて、、、

アプリ

動作確認したいメソッド

開発用のHTTPサーバー

Potatotips 2015/07/14 @cattaka_net

ブラウザからアクセスしたら処理を蹴ってくれるのとか、、、

アプリ

動作確認したいメソッド

開発用のHTTPサーバー

Potatotips 2015/07/14 @cattaka_net

できたら嬉しくないですか?

Potatotips 2015/07/14 @cattaka_net

というわけで作りました

Potatotips 2015/07/14 @cattaka_net

MethodHttpExporter● 目的のインスタンスをラップするコードを自動生成

● 独自スレッドでHTTPサーバーを建てる

● つまり開発用バックドア

アプリバックドアHTTP

Webブラウザ

叩く動作確認したい

メソッド

Potatotips 2015/07/14 @cattaka_net

仕組み● 目的のクラスへの設定

● 目的のクラスにアノテーションを付ける● 目的のメソッドにアノテーションを付ける

● APTがHTTPサーバーのソースをドカっと生成する

● HTTPサーバーを起動する● ずっと起動しておくならApplication#onCreateに。● 画面と連動ならActivity#onResume/onPauseに。

Potatotips 2015/07/14 @cattaka_net

目的のクラスとメソッドにアノテーションを入れる

Potatotips 2015/07/14 @cattaka_net

APTで生成されたHTTPサーバーを起動させる

Potatotips 2015/07/14 @cattaka_net

Activityの表示中のみ起動もできる

Potatotips 2015/07/14 @cattaka_net

DEMO

https://youtu.be/QiGnZH0YOvs

Potatotips 2015/07/14 @cattaka_net

まとめ● このライブラリ自体はどうでもいい

● AndroidはServerSocketが使える

● ローカルにHTTPサーバーを建てられる

● センサ系のややこしいものはオレオレデバッガを

作って開発の効率を上げましょう

● 間違ってもデバッガを入れたままリリースしないこと

Potatotips 2015/07/14 @cattaka_net

というtipsでした

Potatotips 2015/07/14 @cattaka_net

MethodHttpExporterで検索

Potatotips 2015/07/14 @cattaka_net

ご清聴ありがとうございました

Takao Sumitomo@cattaka_net