頼むからAppleプラットフォーム上でUIツールキットを再実装しないでくれ (2021-09-29)
文脈:
Summing up here, native apps are only better than web apps on iOS because a) Apple prevents other browser vendors from using their preferred browser engines, and b) Apple’s WebKit has not kept pace with the likes of Chromium in terms of application functionality. So the fact that web apps aren’t able to fully compete with iOS apps is an Apple problem, not a web problem.
ここでまとめると、iOSにおいてネイティブアプリがWebアプリよりも優れているのは、a) Appleが他のブラウザベンダが自分たちの好みのブラウザエンジンを使えないようにしていること、b) AppleのWebKitがアプリケーションの機能面でChromiumなどに追いついていないこと、の2点に尽きます。つまり、WebアプリがiOSアプリと完全に競合できないのは、Webの問題ではなく、Appleの問題なのです。
WebKit がまともになるか Blink や Gecko が iOS 上で動くようになったらWebアプリがネイティブアプリと同等のレベルに登ってこれるかというと、そんなわけがない。
確かに WebKit の PWA 対応はかなりひどいものだが (ここ2週間ほど iOS で Twitter を見るときは半分くらい PWA 版を使っているので WebKit の PWA 対応のひどさはよくわかる)、Apple プラットフォーム上でネイティブアプリを真にネイティブアプリたらしめているものは UIKit や AppKit であり、いくらWebブラウザがまともになろうと UIKit や AppKit によるパワーなしではネイティブアプリと同等レベルのUXを提供できないし、それができない限りはネイティブアプリに勝てるわけがない。このことは Flutter の Cupertino Widget や macOS 版 Qt とか Java の Swing のひどさを見ればわかる。
(ただし基本的にプラットフォームのUIを全部無視して世界観から独自のUIを作っているゲームに関してはこの限りではない。たとえばシャニマスのようなゲームはWebKitがまともになったらもっといい体験ができるようになるだろう)
要するに、Apple を越えるのは非常に難しいし99.99%の確率でひどいものができるので、頼むからAppleプラットフォーム上でUIツールキットを再実装しないでくれ(それがDOMであってもOpenGLであってもMetalであっても何であっても)、素直に UIKit や AppKit でアプリを作ってくれ、という話でした。おしまい。