概要
iOS のストアレビューを取得する Bitrise ステップを作りました。
Bitrise は追加コスト無しでいくらでも定期実行タスクを設定できます。
ストアレビューの取得は定期実行タスクとしては価値があり、そこまで難しくもないので作ってみました。
技術
Bitrise の独自ステップの作成
Bitrise の独自ステップの作り方はほぼ公式ドキュメントを見ればわかります。
独自ステップは Go か Bash で作成することができます。
今回はストアレビューをXMLとして取得してパースするのに多少の構造化されたコードを書きたかったので Go を使いました。
Go は初めてでしたが、 公式のステップリポジトリ には多くの参考になるコードがあります。
参考にすると書きやすいです。
iOS のストアレビューの取得
App Store の XML を取得する URL を利用しました。
appUrl := "https://itunes.apple.com/jp/rss/customerreviews/page=1/id=" + appId + "/sortby=mostrecent/xml?urlDesc=/customerreviews/id=" + appId + "/sortBy=mostRecent/json"
公式な API ではないので、予告なく変更される可能性はあります。
Go で XML をパースする
Go は標準ライブラリ("encoding/xml"
)で XML を簡単にパースすることができました。
XMLの階層構造を直感的に取り扱えたり、不要な要素は struct で列挙しなくてもよかったりします。
Bash で書くよりもわかりやすくなったと感じます。
例えば、以下のような XML と struct を対応させることができます。
<entry>
<title>タイトル</title>
<content>コンテンツ1</content>
<content>コンテンツ2</content>
<author>
<name>レビュワー名</name>
</author>
</entry>
type Entry struct {
XMLNAME xml.Name `xml:"entry"`
Title string `xml:"title"`
Content []Content `xml:"content"`
Author string `xml:"author>name"`
}
作ったステップの使い方
独自ステップを利用する
独自に作成したステップを利用するには、 bitrise.yml に以下のような記載をする必要があります。
steps:
- git::https://github.com/hmiyado/bitrise-step-ios-store-review.git@main:
これさえ書けば、ステップで利用するパラメータなどはWebのGUI上でも設定できるようになります。
普段GUIでワークフローを管理しているという方でも、一手間で独自ステップを利用できます。
今回作成したステップの運用方法
今回は Bitrise の定期実行機能を利用することを前提に、DB等を持たない設計にしました。
Bitrise 側で1日ごとにストアレビューを確認するように設定したら、過去1日間のレビューを Slack に投稿します。
私が関わっているプロダクトでも1日ごとのレビュー取得設定を行いました。
感想
Bitrise はワークフローの同時並列数に対する課金です。
これを有効活用するためには空いている時間でいかに仕事をしてもらうか、というのが大事です。
今回はその一環でストアレビューを取得するようにしてみました。
そのうち、 Android のストアレビュー取得にもチャレンジしてみたいです。