SlideShare a Scribd company logo
Frank-Cucumber
のこととか
Toshiyuki Suzumura	

@suzumura_ss

1
 すずむら としゆき
 (てらした としゆき)
• リコーITソリューションズ株式会社	

• Rubyで分散ストレージ書いたり	

• openGL/ES2やStage3Dで3Dグラフィクス


…のフリをしてGLSLやAGALで画像処理したり	

• その為のツールをRubyで書いたり
2
Frank-Cucumber
• https://github.com/moredip/Frank/	

• iOSアプリケーション用テストフレームワーク	

• Ruby+ObjCで書かれている	

• テストコードはRubyで書く	

• CucumberとあるがRSpecでも書ける
3
Frank-Cucumberの中のこと
• テストビルドのiOSアプリにhttpdを組み込む	

• アプリ操作はhttpリクエストとして処理

iPhone

Mac

App

Test

Frank	

Server

Frank	

Helper

http
4
TCP/IPが必要
• httpで通信するのでTCP/IP接続が必要	

• 実機の場合はWiFIでMacと通信できるようにしておく

iPhone

Mac

App

Test

Frank	

Server

Frank	

Helper

WiFI
5
とあるカメラとそのアプリ
• iOSデバイスとカメラをAdHoc-WiFIで繋ぐ	

• iOSデバイスとMacがWiFIで通信できない

iPhone
App
WiFI/AdHoc

Mac
Test

Frank	

Server

Frank	

Helper

6

WiFI
ケーブルで通信したい
• XCodeはやっているので多分できる	

• が、資料がない	

• 実機のストレージにアクセスするソフトはある	

• iExplorerとか	

• Ubuntuのgvfsとか
7
アイデア
httpリクエストをファイルIOに
• Macからケーブル経由でファイルを書く	

• iOSアプリでファイルを監視して	

• 書き込まれたらhtttp://localhost:37265/
• 結果をファイルに書く	

• Macで結果のファイルを読む
8

へリクエスト
図にするとこんな感じ
iPhone
App
WiFI	

/AdHoc

Mac
Test

Frank	

Server

Frank	

Helper

Filehttp	

proxy

httpFile	

proxy
Cable

9

***
***
の部分の候補

• iExplorer	

• OSXでiOSデバイスのストレージへアクセスする


アプリケーション	

• マウントする機能もある	

• シェアウエア	

• マウントするのにGUI操作が必要(っぽい)
10
***
の部分の候補

• iFuse	

• LinuxでiOSデバイスをマウントする


fuseベースのファイルシステム	

• https://github.com/libimobiledevice/ifuse	

• homebrewにもある

11
iFuseをOSXで使ってみた
•

のSEGV	


• マウントすると必ず落ちる	

• 幾つかのfuseのバージョンを試すも、


fuseの中で落ちるのでちょっと手に負えない

12
iFuseやgvfsのソースを見てみた
• libimobiledevice

なるものを叩いている	


• https://github.com/libimobiledevice	

• libimobiledeviceとfuse/gvfsがやり取りすることで


実装されている

13
実装 - ruby-io-afc
• https://github.com/suzumura-ss/ruby-io-afc	

• Rubyからlibimobiledeviceを叩いて


iOSデバイスのストレージへアクセスする

14
実装 - frank_afc_proxy
• https://github.com/suzumura-ss/frank_afc_proxy	

• Macで動かすhttpfile

proxy	


• iOSアプリに組み込むfilehttp

15

proxy
こうできた
iPhone
App
WiFI	

/AdHoc

Mac
Test

Frank	

Server

Frank	

Helper

Filehttp	

proxy

httpFile	

proxy
Cable

16

io-afc
おしまい

More Related Content

PDF
WindowsでもVagrantとChefでLaravelのローカル環境を(自分で)つくりたい!
PDF
laravel websocket(use redis pubsub) [Laravel meetup tokyo]
PDF
ROS2.0時代に備えたc++11/14
PDF
Phpのレガシーコードをrubyで焼き変えてみた
PDF
Vimとctagsでコードリーディング 公開用
PDF
Rdkitの紹介
PDF
Mishimasyk6 iwatobipen
PDF
Mishimasyk 3 20140705
WindowsでもVagrantとChefでLaravelのローカル環境を(自分で)つくりたい!
laravel websocket(use redis pubsub) [Laravel meetup tokyo]
ROS2.0時代に備えたc++11/14
Phpのレガシーコードをrubyで焼き変えてみた
Vimとctagsでコードリーディング 公開用
Rdkitの紹介
Mishimasyk6 iwatobipen
Mishimasyk 3 20140705

What's hot (20)

PDF
なんとかStormに負けたくないEmacs初級篇
PDF
5分でわかる静的解析入門
PDF
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
PDF
KotlinでROSノードを書いてみた
PDF
PDF
Goで書くNeoVimプラグイン - OpenAppLab Aizu LT feat. CyberAgent
PDF
Seccamp 2016 チューター成果報告
PDF
Php非同期の技法
PDF
20150228_渋谷Webエンジニア朝会LT資料
PDF
vimプラグインでよりよい(ry
PDF
20180623 第5回python勉強会@仙台 発表資料
PPTX
開発環境アンケートまとめ(Ginza.rb 第13回)
PDF
Rubinius Under a Microscope
PDF
composer-scriptsについて
PDF
OFF4G Hokkaido LT
ODP
TwitterのStreaming ApiをPhpから使う
PDF
Rubyの実装をRubiniusで便利
PDF
Unityで関数型言語ぽく書く 如法会#1
PDF
Pythonの非同期処理を始める前に
PDF
Postgre sql9.3新機能 (OSC hiroshima 2013)
なんとかStormに負けたくないEmacs初級篇
5分でわかる静的解析入門
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
KotlinでROSノードを書いてみた
Goで書くNeoVimプラグイン - OpenAppLab Aizu LT feat. CyberAgent
Seccamp 2016 チューター成果報告
Php非同期の技法
20150228_渋谷Webエンジニア朝会LT資料
vimプラグインでよりよい(ry
20180623 第5回python勉強会@仙台 発表資料
開発環境アンケートまとめ(Ginza.rb 第13回)
Rubinius Under a Microscope
composer-scriptsについて
OFF4G Hokkaido LT
TwitterのStreaming ApiをPhpから使う
Rubyの実装をRubiniusで便利
Unityで関数型言語ぽく書く 如法会#1
Pythonの非同期処理を始める前に
Postgre sql9.3新機能 (OSC hiroshima 2013)
Ad

Similar to Frank-afcproxy (20)

PDF
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
PDF
苫小牧高専 ソフトウェアテクノロジー部 Rubyで遊ぼう 1
PDF
gRPC入門
KEY
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
PDF
Introduction to guard + rspec
PDF
RubyConfの話の続きのおはなし
KEY
Coq for Moblie Phone @ ML名古屋
PPTX
TypeScriptで作る型安全FirefoxOSアプリ
PDF
OSSで楽に作るGo言語クライアントツール
PDF
Groovy Grails eXchage 2014 報告
PPT
appengine活用事例資料@TDDBC札幌2.1
PPTX
Emscriptenと不思議のダンジョン
PDF
言語処理するのに Python でいいの? #PyDataTokyo
PDF
サーバサイドコース Sinatra + SPARQL 編
PDF
邪道Jenkins
PPT
Mrubyの始め方
PDF
JobScheduler Code Reading
PDF
Hyper → Highspeed → Development
PPTX
オープンセミナー香川2012 LT
PDF
今日から始めるGopher - スタートGo #0 @GDG名古屋
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
苫小牧高専 ソフトウェアテクノロジー部 Rubyで遊ぼう 1
gRPC入門
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
Introduction to guard + rspec
RubyConfの話の続きのおはなし
Coq for Moblie Phone @ ML名古屋
TypeScriptで作る型安全FirefoxOSアプリ
OSSで楽に作るGo言語クライアントツール
Groovy Grails eXchage 2014 報告
appengine活用事例資料@TDDBC札幌2.1
Emscriptenと不思議のダンジョン
言語処理するのに Python でいいの? #PyDataTokyo
サーバサイドコース Sinatra + SPARQL 編
邪道Jenkins
Mrubyの始め方
JobScheduler Code Reading
Hyper → Highspeed → Development
オープンセミナー香川2012 LT
今日から始めるGopher - スタートGo #0 @GDG名古屋
Ad

Frank-afcproxy