【 生成AI × アプリ再リリース】公開終了していたiOSアプリを生成AIを用いて再リリースしました

2020年10月以降、更新が止まっていたiOSアプリ「英語上手海外旅行編」を、現行のiOS環境で再び提供できる状態にしました。

本記事では、生成AIを活用した既存アプリの再リリースの事例を紹介します。

1. なぜ生成AIを用いたのか

今回の再リリースでは、既存アプリをゼロから作り直すのではなく、必要な箇所だけを改修する方針を採用しました。そのため、既存コードの中から「現在の環境で問題となる箇所を正確に特定し、影響範囲を限定して修正すること」が重要になります。

事前調査の結果、アプリ自体は現在の開発環境でも問題なくビルドでき、大規模な作り直しは必要ないことが分かりました。主な課題は、公開当時から変化したiOSの仕様や現在の開発環境への対応でした。

そこで、既存コードの調査や修正箇所の特定を効率化するために生成AIを活用しました。生成AIに既存コードやエラー内容を確認させることで、現在の環境では利用できない処理や、修正が必要な箇所を洗い出し、対応方法を検討しました。

ゼロから作り直す場合、既存コンテンツの移植だけでなく、これまで成立していた画面遷移や操作感を再現する必要があります。その分、開発工数が増え、新たな不具合が発生するリスクも高くなります。

一方、今回のように既存アプリの大部分がそのまま利用できる場合には、問題となる箇所を特定し、必要な範囲だけを修正する方が合理的です。

生成AIを調査・改修の支援に利用することで、既存のコンテンツや操作性を維持しながら、修正範囲を必要最小限に抑え、開発コストとリスクの両方を抑えた再リリースを目指しました。

2. 生成AIを活用したこと、人間が判断したこと

今回の改修では、生成AIに「調査と修正を繰り返す役割」を担わせました。

具体的には、警告や不具合の原因候補を洗い出し、関連するコードや設定を探索したうえで、現在推奨されているAPIや実装方法を確認し、修正案の提示からコードの修正までを行いました。

一方で、生成AIが提示した修正をそのまま採用するのではなく、最終的な判断は人間が行いました。主に確認したのは、次の点です。

APIの変更によって、表示や操作、画面遷移が変わっていないか

修正後も、従来と同じ挙動が維持されているか

ストアで再公開するための要件を満たしているか

生成AIは、大量のコードの中から関連箇所を探し、原因の仮説を立て、修正案を短時間で繰り返し検討する作業に向いています。

一方で、「以前と同じ利用体験を維持できているか」「この変更を採用してよいか」「どこまで修正すれば十分か」といった判断には、アプリの目的や利用方法を理解した人間の確認が必要です。

このように、生成AIを調査・実装、人間を確認・判断という役割に分けることで、アプリ全体を作り直すことなく、影響範囲を確認しながら小さな単位で改修を進めました。

3. 生成AIで発生した具体的な課題

A. Web表示のレイアウト

アプリ内のWeb表示には、現在では非推奨となった古い仕組みが使用されていました。そのため、現在のiOS環境に対応したWeb表示コンポーネントへの移行を行いました。

ただし、APIを新しいものへ置き換えるだけでは、従来と同じ表示にはなりませんでした。

移行後には、ローカルのCSSが正しく読み込まれない、エピソード本文の文字が以前より小さく表示されるといった問題が発生しました。

プログラムとして正しく動作していても、文字が読みづらくなれば、利用者にとっては以前より使いにくいアプリになってしまいます。

そこで、コンテンツの読み込み方法やCSSの適用方法を確認し、従来の見た目や可読性を維持できるよう調整しました。

ここで重要だったのが、生成AIによるコード上の確認だけで完了としなかったことです。生成AIは関連するコードを探索し、原因の候補や修正方法を提示できますが、実際の画面を見たときの文字の大きさや読みやすさまで、コードだけから完全に判断できるわけではありません。

そのため、修正後は人間が実際の画面を確認し、従来の表示と比較しながら、問題が解消されているかを判断しました。

B. 音声再生について

「英語上手海外旅行編」のような音声を利用するアプリでは、単に音声が再生できるだけでは十分ではありません。

今回の改修では、音声の割り込み後に、実際の再生状態と画面表示が一致しなくなる問題が確認されました。

例えば、実際には音声が停止しているにもかかわらず、画面上では再生中として表示されている状態です。

利用者は画面のボタン表示を見て次の操作を判断するため、このような状態のずれは小さな問題に見えても、操作性や学習体験に直接影響します。

そこで、音声再生の状態と画面表示を連動させ、電話や他アプリによる割り込みが発生した場合でも、実際の再生状態と画面表示が一致するように修正しました。

この問題についても、生成AIによるコードの解析だけでは十分ではありませんでした。コード上では再生状態を正しく制御しているように見えても、電話による割り込みやバックグラウンドからの復帰など、実際の利用状況でどのように動作するかは、アプリを操作して確認する必要があります。

生成AIには原因の調査や修正案の作成を任せ、人間は実際にアプリを操作しながら、音声と画面表示が正しく連動しているかを確認しました。

4. まとめ

今回の再リリースでは、既存アプリをゼロから作り直すのではなく、現在のiOS環境で問題となる箇所を特定し、必要な範囲だけを改修する方針を採用しました。

その中で生成AIは、古いAPIや関連コードの探索、不具合原因の整理、修正案の提示、コード修正といった作業に活用しました。広いコードベースから必要な情報を探し、修正までの試行錯誤を短時間で繰り返せる点は、既存アプリの改修において大きな効果がありました。

一方で、生成AIだけで改修を完結させることはできませんでした。Web表示の文字サイズや可読性、音声再生と画面表示の整合性など、実際にアプリを操作しなければ確認できない問題も発生しました。

そのため、生成AIに調査と修正を任せ、人間が実際の画面や操作を確認し、その結果をもとに再度修正するという流れを繰り返しました。

今回の取り組みから、生成AIは既存アプリの改修を効率化する強力な手段である一方、最終的な品質を担保するためには、人間による実機確認や利用者視点での判断が欠かせないことが分かりました。

生成AIと人間の役割を適切に分けることで、既存のコンテンツや操作性を維持しながら、開発コストとリスクを抑えた再リリースを進めることができました。

今回のように、古いシステムやアプリについても、生成AIを活用することで、従来より少ない工数で調査・改修できる可能性があります。今後も既存資産を活かしながら、生成AIを実務に取り入れていきます。

今回リリースしたアプリはこちら

既存システム・アプリの改修や、生成AIを活用した開発についてもご相談いただけます。

お見積り・お問い合わせはこちら