忙しい人向けのfastlane for Androidまとめ

1年くらい前から fastlaneiOS界隈で流行ってますよね。 fastlaneはAndroid開発でも使えると聞いたことがあったので、現状について少しだけ調べてみました。 (2-3時間調べただけで実際に使ったわけではないです)

3行まとめ

  • fastlaneはビルドツール
  • gradleと役割が被るので、Android開発では立場が難しい
  • google playへのアップロード機能(supply)だけ使うのはよさそう

概要

まずfastlaneが何なのかという話ですが、まとめでも書いたようにruby製のビルドツールです。
ビルドツールと言ってもアプリのビルドなどはgradle経由で行うことになります。個人的にはyet another rakeという印象を持ちました。 fastlaneではFastfileというファイルに処理を記述します。 laneというのがタスクの単位です。この中でアクションとよばれる小さな処理(例えば署名やlintの実行,アプリのビルドなど) を組み合わせて煩雑なビルドプロセスなどを見かけ上シンプルにします。 詳しい使い方はREADMEに書かれています。 https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Android.md

fastlane_version "1.83.0"

default_platform :android

platform :android do
  before_all do
    # ENV["SLACK_URL"] = "https://hooks.slack.com/services/..."
  end

  desc "Runs all the tests"
  lane :test do
    gradle(task: "test")
  end

  desc "Deploy a new version to the Google Play"
  lane :deploy do
    gradle(task: "assembleRelease")
    supply
  end

Android向けに提供されている機能は現時点で、supplyとscreengrabです。(iOS/Android共通の機能は他にもありそう) supplyはgoogle playへのリリースをコマンドラインで行うツールで、screengrabはespresso内でスクリーンショットを保存するjavaのライブラリです。 こちらも詳しくはREADMEを参照して下さい。 https://github.com/fastlane/fastlane/tree/master/supply#readme https://github.com/fastlane/fastlane/tree/master/screengrab#readme

fastlaneをAndroid開発で導入すべきか?

僕はいらないかなと思いました。 まとめに書いたようにAndroid開発ではgradleというビルドツールが既にあるので、ビルドツールとしてのfastlaneのありがたみはiOS開発に比べて低いです。 fastlaneのAndroid対応したっぽい人もissueで、 「Android開発におけるfastlane相当のものは既にgradleが確立している。あなたが本当に欲しいのはfastlaneそのものではなく、deliver(ios版のsupply)やsnapshot(ios版のscreengrab)じゃないのか」 みたいなことを言ってた気がします。
supplyは単体で利用することも出来て、便利そうな上に使い方も簡単そうなので近いうちに使ってみたいですね。
取り留めない感じですが以上です。

参考リンク