更新できなければ淘汰されるiOSアプリ

最近の事情

Xcode11でのビルドが必須

 2020年4月からXcode11でのビルドする必要がある。必然的にiOS13で変更になったUIの挙動に対応した状態にしておかなければ、意図しない挙動になっている可能性がある。特にダークモードとモーダル、UIのパーツ見た目の変化は申請前に確認し直しておいた方が良い。

 Launch ScreenをStoryboardで行う必要もある。 https://developer.apple.com/jp/news/?id=09102019adeveloper.apple.com

マルチタスク対応

 没入型の体験を提供するアプリでない限り、iPadではマルチタスクに対応していない場合は2020年4月からアプリの申請が通らなくなる。

 「没入型の体験を提供する」が何を持って、提供していると言えるかは動画内で語られてはいないが、主にゲームを主にターゲットにしていると思われる。 iPad専用アプリの場合は程度大きい画面サイズを想定していることがあるが、今後はそうも行かなくなる。 あらゆるサイズを想定したレイアウトを組む必要がある。

 同時にiPhoneサイズにも対応するのが良いだろう。

https://developer.apple.com/videos/play/wwdc2019/224/developer.apple.com

Google Analyticsの統合

FabricはFirebaseに統合されることに伴って、 Google Analyticsは廃止される。早くFirebaseまたは代わりのサービスに移行する必要がある。

12ヶ月の猶予ということから2020年10月ごろには完全にデータが削除されると予想される。

Google アナリティクス開発者サービス SDK の終了 - アナリティクス ヘルプ

Fabricの統合

FabricはFirebaseに統合されることに伴って、 Fabricは2020年3月31日に廃止される。Firebaseにアプリを移行する必要がある。

Fabric Roadmap – Fabric

Apple Push Notification Serviceのアップデート

 2020年11月以降に古いプッシュ通知の方法が使えなくなる。新しいプッシュ通知の方法を使うように切り替える必要がある。 https://developer.apple.com/jp/news/developer.apple.com

UIWebViewの完全廃止

 UIWebViewはiOS8以降に非推奨になっていたが2020年4月移行は新規アプリの申請を終了し、12月にはアップデートも終了する。WKWebViewに移行しなければいけない。依存しているライブラリに組み込まれている可能性があるので、今一度確認した方がいいだろう。iOS15では完全に使えずに実行時にクラッシュになるかもしれない。 https://developer.apple.com/jp/news/?id=12232019bdeveloper.apple.com

UIAlertView

 UIAlertViewはiOS8以降に非推奨となっている。申請時に注意されたという話も聞くこともありUIWebViewと同様に禁止になる日もそう遠くない。

Swiftが基本

 Swiftが2014年に発表され5年経過した。新規に開発アプリや追加機能はSwift以外にありえない状況になった。Objective-Cは淘汰され、既存のアプリはSwiftに移行しなければ採用はでき辛くなって行っている。Objetive-CからSwiftに移行するにあたってもそれができるエンジニアがいなければ移行できないし、予算と時間が必要になる。長い目で見れば今すぐにSwiftに移行した方が良い。そうでなければ、アプリのアップデートを諦めて低予算運用に切り替えた方が良い。

ダークモード対応

 iOS13以降ではダークモードが使えるようになりました。今のところ、ダークモード非対応の不利益はおりません。おそらく、2,3年のうちにアップデート時に必須になる可能性がある。ダークモードだけでなく3つ目4つ目のカラーモードを設定できる想定で対応を行なった方が良いだろう。 https://developer.apple.com/jp/news/?id=0829019adeveloper.apple.com

SwiftUI

 今のところ移行するノウハウすらない状態。  いつか移行するために情報収集や移行するためのコードのリファクタリングを行なっておうた方がいいかもしれない。

過去にあった淘汰の歴史

iPhone5対応等のディスプレイサイズの増加

 iPhone4S までは3.5インチとiPad 9.7インチのディスプレイサイズしか存在していなかった。「Androidはあらゆるディスプレイサイズがあって大変だなぁ」なんて呑気に話していた物だった。iPhone5が発売されて、ほどなくして4インチの画面サイズのサポートが必須になった。縦480ポイントであることを前提にしたレイアウトの組み方をしていたアプリは改修を余儀なくされた。当時はオートレイアウトもなくViewの位置を左上からの位置を計算を行って配置を行っていたため、それなりに大変だった。

 iPhone6や6+が登場してiPhone系の端末を4つのサイズをサポートすることになった。この頃にはオートレイアウトができており、オートレイアウトへの移行が必要に迫られることになになった。その後iPadでもiPad Proの登場やマルチタスク対応があった。今後は画面サイズが動的に変更され、あらゆるサイズが存在しうることを前提として開発を行っていく必要がある。

arm64対応必須

 arm64に対応していないアプリはストアから削除されることになった。対応としてはただ追加するば終わりという物だったため更新のあるアプリはほとんど何もすることもなくアップデートしれば終わりではあった。ほとんど更新されていなかったアプリがごっそりと消えた。amr64e対応必須はありえる。

デザインの変更

 iOS7にスキューモーフィズムからフラットデザイン変更があった。iOSでは時々多いくデザインが変更されていくため、それに合わせて修正を行っていく必要がある。

まとめ

 iOSアプリは新しいアプリを作ったら1年以内に儲かる目処を立てて更新を行っていく必要がある。