hamburger

主に日記

フロントエンド開発の難しさ

ユーザがインストールするネイティブアプリの場合、利用バージョンの最新化はユーザに委ねられる。なので何か対策をしないと利用しているWebAPIのインターフェースを変えるときなどに最新版のソースコード以外のバージョンも考慮することが求められる。もちろんAPIインターフェースの変更ではなく別バージョンのAPIにすべきであるという話もあると思うが、変更するたびにエンドポイントを増やすわけにも行かないので要はバランス。

最新版のソースコードからは無くなっている挙動に対する後方互換性を維持するために色々工夫が必要になると、考慮すべき事情が増えて意思決定時の確認項目が増える。

アップデートしないとアプリを利用できないようにする強制アップデート機能を設けているアプリがあり、障害対応や古すぎるバージョンをなくしてプロダクトコードの健康を保つためにその機能を使うことがある。ただ強制アップデートは利用したい時にユーザがアプリ起動できないことがあるため、極力その仕組を使わない力学が働きやすい。

その結果何が起こるかと言うと、古くからソースコードを触っていたり、一般的な地雷を熟知しているベテラン出ない限りそのリスクを回避するためのコストが非常に高くなり、開発の難易度が上がってしまう。もちろん過去バージョンのソースコードを持ってきてみれば可能は可能だけどすべて見るのは現実的ではない。最新版を見ている限り見えないリスクを回避し続けるのはほぼ無理ゲー。

フロントエンドの開発はユーザ環境に依存することが難しい所で、ネイティブアプリだとそこにアプリバージョンの分岐も入るので更に難易度が上がる。モバイルアプリ開発で最新技術だけ知ってても現場で厳しいと思ってしまう原因の一つは、そういうスキルを身につけるための運用経験も必須であるという風に考えているからじゃないかと思った。