Sirenを使って iOSアプリに強制アップデート実装するよ
ハロー、こんにちは @hazumu です。 iOS App作ってますか?
アプリをの開発に置いてサーバー側のAPIとアプリのバージョンを合わせるのって結構だるいですよね。
そんなときはAPIのバージョンをたくさん用意するのも面倒なのでアプリ側に強制アップデートを導入するケースって多いのではないでしょうか??
とはいえ、中小規模のアプリで「強制アップデートの実装なんかに時間はかけたくない。。」って気もします。
今回はそんなニーズにお答えするライブラリを紹介します。
Siren
いま開発しているアプリではSirenというライブラリを導入しています。
語源は、救急車の上についているサイレンなんですかね?それともギリシャ神話のセイレーン??そこはよくわかりません。
何ができるか?
Sirenは数行記述するだけで、アプリ起動時にiTunes StoreのAPIをlookupして現在のbundleにかかれているバージョンがiTunsストアで配信されているバージョンより古い場合にアップデートのアラートを出してくれます。
アラートのパターンは3パターンで。
- 強制アップデート
- 強制アップデート or 次に開いたときにする
- 強制アップデート or 次に開いたときにする or スキップする
というのが選べます。
強制アップデートを選んだ場合に表示されるのはこんなメッセージ。
多言語化対応もしてありもちろん日本語でアラートを表示できます。
そして、更新ボンタンをタップするとiTuns Store に遷移します。
実装方法
実装は簡単で、AppDelegateに以下のコードを記述するだけ。 これだけであら不思議強制アップデートの実装が終わっちゃいます。
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { // 強制アップデート let siren = Siren.shared siren.forceLanguageLocalization = SirenLanguageType.Japanese // 日本語 siren.alertType = .force // 強制アップデートしか選択肢が無いオプション siren.checkVersion(checkType: .immediately) // .Daily or .Weekly とかチェック頻度を設定できる return true }
余談
アプリのバージョンってどこから引いてきてるんだろうって思い、Sirenの内部実装を読んでわかったのですがiTunes StoreってbundleIdを元にアプリのバージョンを引いてくるURLを提供してるのですね。そっからスクリーンキャプチャとかバージョンとか説明を引いてこれるっぽいです。
https://itunes.apple.com/lookup?bundleId=
まとめ
強制アップデートとかはさくっと入れてユーザーの利用価値を向上できるところに時間をさいていきまっしょい!
季節も暖かくなってきましたし、夜は短し歩けよ乙女!!!(๑˃̵ᴗ˂̵)وオラッオラッ!!