Graphで平面を地形に変形させてみた。OpenCVの導入2018/05/16GitのブランチやHEADをサブコマンドで操作する2018/04/10Python3+OpenCV3でパッケージ認識してみましょう2018/04/10喫茶店探しを自動化したい2015/02/11(Wed)fastlaneを使ってスクリーンショット撮影を自動化iOSアドバンストテクノロジーはじめに下記記事を見て、試してみたいとなったので早速やってみます。※fastlaneってどんなもの?というのはこの記事を見て下さい。iOSで継続的デプロイメントを実現するfastlane今回紹介するのはfastlaneの中でも、比較的試しやすいsnapshotとframeitについてです。それぞれのスクリーンショットを撮ってくれます。インストールしましょう、インストールは下記だけです。snapshotただ試しに実行してみた所、xctool入れろとエラーになってたので、homebrewでインストールします。xctool続いて、そもそもスクリーンショット取るアプリ無いと話にならないので、全く面白みないですが下記のような画面を持った、アプリを作りました。1の画面をタップすると2の画面、2の画面をタップすると・・・という遷移を行うだけです。アプリを用意したので次にUIAutomationで、自動スクリプトを作ります、スクリプトの作り方は下記を参考にして下さい。テストコードの自動作成ぽちぽちと画面を切り替えるスクリプトは下記になりました、二回しか画面遷移しないのでこれだけでした。target.frontMostApp().mainWindow().buttons().firstWithName("2").tap();12target.frontMostApp().mainWindow().buttons().firstWithName("1").tap();target.frontMostApp().mainWindow().buttons().firstWithName("2").tap();次に、ターミナルでアプリのプロジェクトディレクトリに移動して、下記コマンドを実行します。initこれによって、Snapfile、snapshot-iPad.js、snapshot.js、SnapshotHelper.jsが作成されます、利用するのはSnapfileと、snapshot.jsです。snapshot.jsを開きます、これに先ほどのUIAutomationのスクリプトを入れて、スクリーンショットを取る場所、待ち時間等を記述します、今回は下記のようになりました、ページ遷移する度にスクリーンショットを撮影します。app.mainWindow();target.delay(3)captureLocalizedScreenshot("0-LandingScreen")target.frontMostApp().mainWindow().buttons().firstWithName("1").tap();target.delay(1)captureLocalizedScreenshot("1-LandingScreen")target.frontMostApp().mainWindow().buttons().firstWithName("2").tap();target.delay(1)captureLocalizedScreenshot("2-LandingScreen")次に、Snapfileをいじります、こっちは設定ファイルです、デフォルトだと、端末と言語が多いので下記のようにしました。4s"])languages(['en-US','ja-JP'])これで準備完了です、プロジェクトのディレクトリ上で下記コマンドを実行することで、撮影が開始されます。その間自分は別の作業してて問題ありません、これが終わると下記の様にスクリーンショットが作られます。(もちろんAppStoreに上げられる解像度です)ちなみにこれは、撮影が終わるとscreenshots.htmlが出来ていて、それを閲覧した時のものです。frameitこれは要するに画像を用意して、画像があるディレクトリでframeitを実行すると、iPhoneのフレームにはめた画像を作ってくれますよってものです、主にWebサイトなんかでアプリの紹介画像にしたり、実行イメージを見せたりするのに使えると思います。こちらもインストールしましょう。frameit実行してもエラーになります、何故か調べたら、私のマシンが最近変えたのもあって、imagemagickが入ってなかったのが原因でした、なのでまたまたhomebrewを使ってインストールします。frameitとやったら入りました、というわけで、先に紹介したsnapshotで撮影したスクリーンショットに対してframeitを実行してみましょう。frameit実行するとcurlでダウンロードが開始されて、5分くらいしたあとに下記メッセージが表示されます。started----------------------------------------------------ここでEnterを押すと、appleのiPhoneの枠psdが置いてあるページに飛ばされます、更に下記メッセージが表示され、~/.frameit/devices_frames/がFinderで開かれます。3」をここからダウンロードして解凍したディレクトリを下記のように格納しました。入れ終わったらEnter押すと、2秒くらいではまった画像が出来ました、2回目以降はもうテンプレートがあるので、すぐはめてくれます。最後に多少不足があって、インストールに手間取ったものの、余計な手順も必要なくできました。deliver、PEM、sign、produce、これらをまとめたfastlaneには手を付けていませんが、どれも手間をぐっと減らしてくれる便利な物ばかりそうなので、ぜひ覚えたいと思います。●この記事を書いた人yuta.hirakawaiOSとAndroidアプリのプログラマをやってます。rubyやphpを書きます。