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

potatotips (iOS/Android開発Tips共有会) 第19回 資料

Aug 06, 2015

Download

Technology

Takao Sumitomo
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: potatotips (iOS/Android開発Tips共有会) 第19回 資料

Potatotips 2015/07/14 @cattaka_net

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

Takao Sumitomo@cattaka_net

Page 2: potatotips (iOS/Android開発Tips共有会) 第19回 資料

Potatotips 2015/07/14 @cattaka_net

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

● たぶんAndroidアプリ開発者

● その他

● 電子工作

● OpenCV

● 執筆(?)

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

Page 3: potatotips (iOS/Android開発Tips共有会) 第19回 資料

Potatotips 2015/07/14 @cattaka_net

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

WiFi

加速度

Bluetooth

iBeacon

ローテーション

GPS

Page 4: potatotips (iOS/Android開発Tips共有会) 第19回 資料

Potatotips 2015/07/14 @cattaka_net

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

Page 5: potatotips (iOS/Android開発Tips共有会) 第19回 資料

Potatotips 2015/07/14 @cattaka_net

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

アプリ

動作確認したいメソッド

開発用のHTTPサーバー

Page 6: potatotips (iOS/Android開発Tips共有会) 第19回 資料

Potatotips 2015/07/14 @cattaka_net

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

アプリ

動作確認したいメソッド

開発用のHTTPサーバー

Page 7: potatotips (iOS/Android開発Tips共有会) 第19回 資料

Potatotips 2015/07/14 @cattaka_net

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

Page 8: potatotips (iOS/Android開発Tips共有会) 第19回 資料

Potatotips 2015/07/14 @cattaka_net

というわけで作りました

Page 9: potatotips (iOS/Android開発Tips共有会) 第19回 資料

Potatotips 2015/07/14 @cattaka_net

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

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

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

アプリバックドアHTTP

Webブラウザ

叩く動作確認したい

メソッド

Page 10: potatotips (iOS/Android開発Tips共有会) 第19回 資料

Potatotips 2015/07/14 @cattaka_net

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

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

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

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

Page 11: potatotips (iOS/Android開発Tips共有会) 第19回 資料

Potatotips 2015/07/14 @cattaka_net

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

Page 12: potatotips (iOS/Android開発Tips共有会) 第19回 資料

Potatotips 2015/07/14 @cattaka_net

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

Page 13: potatotips (iOS/Android開発Tips共有会) 第19回 資料

Potatotips 2015/07/14 @cattaka_net

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

Page 14: potatotips (iOS/Android開発Tips共有会) 第19回 資料

Potatotips 2015/07/14 @cattaka_net

DEMO

https://youtu.be/QiGnZH0YOvs

Page 15: potatotips (iOS/Android開発Tips共有会) 第19回 資料

Potatotips 2015/07/14 @cattaka_net

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

● AndroidはServerSocketが使える

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

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

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

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

Page 16: potatotips (iOS/Android開発Tips共有会) 第19回 資料

Potatotips 2015/07/14 @cattaka_net

というtipsでした

Page 17: potatotips (iOS/Android開発Tips共有会) 第19回 資料

Potatotips 2015/07/14 @cattaka_net

MethodHttpExporterで検索

Page 18: potatotips (iOS/Android開発Tips共有会) 第19回 資料

Potatotips 2015/07/14 @cattaka_net

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

Takao Sumitomo@cattaka_net