技術

SwiftでiOSアプリの更新(アップデート)通知を最速で簡単に自作してみた

どうも、フリーランスのITエンジニア兼ブロガー兼投資家のKerubitoです。

アプリ開発者なら必ず通る更新通知。

こういうやつですね。

アプリの更新通知

アプリを運用・保守していくには必須の機能になるかと。

Swiftで自作してみました。

ライブラリもいくつかあるんですが、そんなに大したことをしない割にはサイズが大きかったり、不具合の報告が上がっていたり。

昔は私もライブラリを使っていたんですが、自作のほうが融通もききます。

では、ぱぱっとやってみましょう。

環境は以下の通りです。

・Swiftバージョン:5
・Xcodeバージョン:12.4

AppStoreに最新バージョンがあれば通知する

通知するメイン処理です。

AppStoreの最新バージョンを取得

アプリのバージョンを取得

両者を比較し、AppStoreに最新バージョンがあれば、メッセージを表示する

といった流れです。

AppStoreの最新バージョンを取得するにはHTTP通信を行います。

URLは「https://itunes.apple.com/jp/lookup?id=」で、アプリのIDを指定します。

アプリのIDはiTunesConnectのアプリの情報から調べられます。

アプリのバージョンはBundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString")で取得できます。

アラートを表示する

アラートを表示します。

「更新」、「あとで」という選択肢を用意。

「更新」をタップするとAppStoreへと遷移します。

AppStoreのURLは「itms-apps://itunes.apple.com/app/id」で最後に上と同じく、アプリのIDを付与します。

呼び出してみる

呼び出し部分です。

SwiftUIで実装しており、ContentView.swiftの画面描画時に表示してみました。

UpgradeNotice.shared.fire()で呼び出しているだけです。

実行すると、こんな画面が出てきます。

アプリの更新通知

カスタマイズし放題

最低限の機能はこれでいいかと。

ただ、実際には「次のバージョンまでスキップさせたい」や「メッセージの表示は1日1回」などカスタマイズが必要になってくるでしょう。

自作ならいくらでもできます(笑

あと、エラーハンドリングなんもしてなかったり、コードも汚いのでいい感じにして使ってください。

ちょっと雑に作ってしまいましたが、GitHubからソースをダウンロードできます。

https://github.com/Kerubito0/UpgradeNotice

以上、楽しい開発ライフを!

-技術

© 2021 Kerubitoのブログ