以下、スマホアプリとWebViewの歴史(2011年から2024年のスパンで)
- ガワネイティブという手法
- ガワだけでネイティブで中身はWebViewで作るという手法
- スマホWebで公開していたものをそのままアプリにするのには楽な方法だった
- あまりにスカスカだとAppleの審査が落ちた
- Phonegap(現Cordova)などで楽ちんに作れる
- ゲームはWebViewでは厳しい
- Flashが使えなくなったことでブラウザゲームは死んだ
- 「それHTML5でできるよ」とFlash排除の判断をなぜか後押しする先進的なユーザもいたが、実際にはHTML5ゲームでできることはかなり限られていた
- Cocos2dxやUnityがスマホゲームのフレームワークとしてのスタンダードになった
- ただし、ニュースアプリなどのの文字のレンダリングが多いものは、ゲームフレームワークではどうにもならない
- 非ゲームのマルチOSフレームワーク
- WebViewのいいところは主要機能がAndroidとiOSで共通で作れるというところ
- そこでWebViewを使わない形で次々にマルチOSのフレームワークが登場
- Xamarin
- ReactNative
- Flutter
- マルチOSだからといって一個のソースでいいかというとそうでもない
- 新型コロナの感染通知アプリのCOCOAはXamarinで作られていたが、肝心のOS依存の分岐があまかったことで大きなバグを生んだ(実際にはテストしづらい環境が問題ではあった)
- 何よりも、「画像とその周りに文字を流し込む」という機能はブラウザのレンダリングエンジンがめちゃくちゃ高性能
- ニュース機能の画面などは結局どのネイティブフレームワークで作ってもWebViewになりがち
- WebViewのやなところの「タップが遅い」
- WebViewの基本的な動きは「タップの後のダブルタップをまつ」というのがデフォルトの動きだった
- これだけのことでWebViewはとにかくもっさりしていた
- 表示した後に全てのアンカーに対して「ダブルタップのイベントを殺す」ということをやればいいけど、その初期化にも時間がとられるが厄介だった
- 当初まだfastclickというjsでしのいでいた
- 当然いろいろ進化してダブルタップによるズーム機能を殺すことをブラウザ側が対応しはじめた
- WebViewでも十分アプリとして快適に使えるようにもなった
- 外部環境として「徹底したCookie排除」
- AppeleはとにかくCoookieを排除する姿勢を一貫してとおしてる
- ログインせずに前回の情報を記憶しておいてほしいというシンプルな作りをブラウザベースで作るのが難しくなってる
- 単なるWebで良かったものもアプリにせざるを得ない
- サクッとWebViewで作りたいニーズもでてきてる
- WebViewアプリの代替物としてのPWAも追いやられてる
- PWAという手法もあるがこちらもAppeleとしては消極的
- EU地域ではAppeleがPWAそのものを廃止
- もっとWebViewを認めてあげてもいいんじゃないでしょうか
- 過去の歴史では「WebUI」が常に戦火に負われながら逃げ惑ってきた
- 実はみんなSPAの腕前も上がってきたので、WebViewでアプリっぽい動きがどんどんこなれてたんじゃないでしょうか
- 「ReactNativeでスマホアプリ作っていました!」(でも大半はWebViewなんだよなぁ)みたいな「後ろめたさ」はある
- トラフィックをみていると「あれ?大半がHTMLなんすけど?」ということは結構ある
- もうみんな堂々と「WebViewでいいよね」と言い切ってはどうでしょうか