モバイルアプリ · 中級

アプリのバージョンと後方互換性

一行でいうと: ユーザーは何ヶ月も古いバージョンを持っている——サーバーはそれらをサポートし、いつ止めるかを知る必要がある。

現実

自動更新が有効でも、バージョン分布は何ヶ月にも広がる。サーバーインターフェースへの破壊的変更は、理由がわからずに実際のユーザーを落とす。

なので:拡張する、変更しない。フィールドを追加し、削除しない;パスを追加し、既存のものの動作を変更しない。

制御メカニズム

インターフェースバージョン。各リクエストで宣言して、誰が話しているかを知る。

強制アップグレード。サポートされなくなったバージョンをブロックする画面。効率的で、最初の日からそこになければならない——古いバージョンに後付けはできない。

機能スイッチ。バージョンとユーザー割合ごとに機能をリモートでオン・オフする。

サポートをいつ止めるか

データで決め、感覚でなく:アクティブ使用の1%未満があるバージョンで、アプリ内の事前通知の後。ポリシーを文書化して、各リリースで再交渉しないようにする。

さらに深く

各サーバーリリースで現在のインターフェースに対して最後にサポートされた二つのバージョンの統合テストを実行する。自動的にテストされない後方互換性は静かに壊れ、ストアのレビューでのみ現れる。