ディスカッション (35件)
かつてWebアプリはデスクトップアプリに比べて動作が重かった時代がありましたよね?しかし今や、ネイティブアプリよりもスムーズに感じるWebアプリも登場しています。インタラクションは滑らかで、トランジションもスムーズ、全体的な体験が洗練されています。一体何が変わったのでしょうか? ブラウザの性能向上、JavaScriptの高速化、CSS機能の強化などが考えられますが、もしかすると、開発者がWeb UIパターンをより洗練させただけかもしれません。
MobbinでアプリのWeb版とネイティブ版を比較してみると、Web版の方が実際にはよりレスポンスが良く感じられることがあります。これは未来の兆候なのでしょうか?それとも、ネイティブアプリが常に優位に立てる根本的な制約がまだ存在するのでしょうか?
正直、JSエンジンが速くなったり、ブラウザがGPUで加速されたり、開発者がUIパターンにめっちゃ詳しくなったり、色んな要素が混ざってるんだよね。それにReact/Vueとか最新CSSが加わって、ウェブアプリがもっさりしたページじゃなくて、ちゃんとしたソフトウェアって感じになったんだ。OSの深い部分ではまだネイティブが強いけど、ほとんどの用途では差はほぼなくなったんじゃないかな。
Webアプリはまだ起動時間が遅い。ネイティブアプリはすぐに開くけど、Webアプリはまだ1、2秒かかる。
そうだといいんだけど、デスクトップアプリって起動時に数秒かかるスプラッシュスクリーンが表示されることが多いんだよね。メモ帳みたいなシンプルなアプリは一瞬で起動するけど、複雑なアプリはローダーのバナーで隠してるだけ。
まあ、そうだね。でも、それはバックグラウンドで大量のデータをロードする必要があるアプリの話でしょ。それでもWebアプリよりはマシ。
> 複雑なアプリはローダーバナーの裏に隠れてるだけ。
そんな必要全然ないのにね。MacのBetter Touch ToolsとかAndroidのTaskerは、どっちもめちゃくちゃ複雑なアプリだけど、一瞬で起動するじゃん。その一方で、クソみたいなオフラインのHello Worldウェブアプリが、ロードに最低2秒かかるんだよ。一瞬でロードされるウェブアプリを見せてくれよ。絶対無理だと思うけど。
何が問題なのかはっきりとはわからないけど、ブラウザのせいだと思う。Electronアプリが肥大化するのも同じ理由でしょ。
えーっと、それについてはちょっと自信ないな。ロード時間が3〜6秒かかるネイティブアプリ持ってるし。
ウェブアプリは良くなったけど、デスクトップアプリは悪くなったよね。マシンが速くなったから、デスクトップの開発者が怠けて、効率的なソフトウェアを書くのを気にしなくなったんだよ。
そうは思わないな(Electronで書かれたもの全部って意味じゃないなら)。そう感じるのはiPhoneのせいだと思う。あれが出た時に、「プログラム」から「アプリ」へと文化的に移行したんだ。
アプリは1、2回タップすればすぐ使える。プログラムは複数ページの設定手順が必要で、それでもうまく動かないこともあった。つまり、UXが段違いに良くて、それがユーザーが求めてたものだったんだ。それにモバイルネットワークの普及とウェブブラウザの超進化が加わった。あとは技術が技術らしく進化しただけだよ。
30年前のExcelが、今のExcelよりずっと速くロードされるってことに気づけば、君の主張は的外れだってわかるよ。昔は66MHzのシングルコアだったのが、今は8コア4GHzのマシン、RAMは16MBから16GB、IDE HDDは33MB/sだったのが、NVMeは5GB/sだよ。
開発者は余ったパワーのせいでデスクトップアプリで手を抜いて、効率的なソフトウェアを作るのをほとんど気にしなくなったんだ。
ビジネスソフト、ソーシャルメディア、コンテンツとか、多くの種類のアプリにとって、高品質なウェブアプリは間違いなく未来だよ。Progressive Web Apps (PWA) が、オフライン機能、プッシュ通知、ホーム画面への「インストール」機能みたいなネイティブっぽい機能を追加して、最後の溝を埋めてるんだ。
ハイエンドなモバイルゲーム、プロ向けのビデオ編集、複雑な3Dレンダリングとかは、Metal (Apple) とか Vulkan (Android) みたいなネイティブAPIが提供するGPUへの直接的なローレベルアクセスが、WebGLとかWebGPUみたいなウェブベースの代替手段よりまだ優れてるけどね。
ビジュアルソフトウェアとWebGPUに関する補足:
WebGPUは非常に優れていて、RustコミュニティではWGPU(基本的にブラウザ外で使用するWebGPU)が主要なグラフィックスライブラリの一つであり、多くのUIプラットフォームのベースラインとなっている。Metal / Vulcan / DirectXなど、プラットフォームに必要なものの上に構築され、オーバーヘッドが最小限に抑えられるから。
個人的には、WebGPUを使わない主な理由、またはプロフェッショナルなアプリがまだWebに移行していない理由は、WASMからWebGPUにデータを転送するために、まだ「遅い」JSブリッジが必要なこと。WebGPUはGPUが持つすべての機能(AIアクセラレータ、CUDAなど)をサポートしていないこと。そして、Photoshop自体にはWeb版があるけど、プラグインはまだWeb上にないと思う。なぜなら、プラグインはPhotoshop APIを経由するのではなく、外部アクセスを自分で処理すると常に想定されていたから。
新しいタブでリンクが開く? 特定のページをブックマークできる? もしダメなら、サイトの方がマシだね。
(これらはウェブアプリでよくあるアンチパターンだよ)
スマホにアプリをインストールするのが昔から嫌いなんだよね。どうしても必要な時(例えば銀行とか)しかやらない。
ウェブアプリがあるなら、アプリストアからアプリをダウンロードするより、スマホのブラウザを開いてログインする方がずっといい。
個人的には、アプリストアがなくなって、すべてがブラウザでできるようになる未来を願ってる。
ただのわがままかな。
同じく。最近のスマホはブラウザで直接スムーズに動くくらいパワフルだよね。アプリストアを使うのが嫌い。
企業がアプリを通じてコントロールできる範囲が大きいから、すぐにはなくならないと思うな。ブラウザが厳しく管理されてた時代(拡張機能なしとか)に戻らない限り、企業が進んでブラウザに戻るとは思えない。
俺も同じ意見で、できる限りブラウザを優先してるよ。
どうして?プライバシーの問題?
俺はアプリ(よく使うやつ)の方がWeb版より便利だと思うんだけど。
個人的には、ブラウザでできることなら、一度しか使わないサービスのために150〜500MBもある最適化されてないアプリをダウンロードするよりマシだわ。
だよねー。でもローカルにデータを保存する機能がもっと改善されないと。
何百ものログイン情報、設定、ショッピングカートの中身とかが、ブラウザのせいで消えたりクラッシュしたりしたら…全部パーだよ。
でも夢があるんだ。
Web技術ベースのOSが欲しい。AndroidとiOSのアプリをネイティブに扱えて、URLと連携した基本的なデータシステムを持ってるやつ。セキュリティとか、周辺機器へのアクセス、データ保存とか、OSに必要なものが全部揃ってるような。ブラウザごとに挙動が違うとか、もう勘弁。OS全体がW3C標準に準拠してて、プラグインシステムがあれば、ファイルのダウンロードとか、input type=searchの使用とか、ログインとかのイベントをフックできるAPIが使えるし、OSのCSSテーマを上書きしたりもできる。npm、pnpm、yarnとかもネイティブサポート。
そうすれば、Webアプリをネイティブアプリにするんじゃなくて、ネイティブアプリをWebアプリにする時代が来るかも。
WebAssemblyがあれば、OSのパフォーマンスも気にしなくて済むし(Rustで書けばさらに良いかもね /s)。
技術は全部揃ってるのに、GoogleとAppleが利権を手放さないから、絶対に実現しないんだろうな。
今は境界線がめっちゃ曖昧になってるよね。デバイスが速くなるにつれて、_労力1時間あたりの_パフォーマンスの差が小さくなってるんだ。
ウェブアプリは今やデスクトップでも使われてるし。WindowsのスタートメニューにはReactのコンテンツが含まれてるよ。
いや、そんなこと覚えてないな。もっさりしてるのは当たり前で、ネイティブGUIはずっとそうだったよ。Mac OSでは違ったのかもしれないけど、まずありえないと思う。理論的には、Web、ネイティブ、Flutter、ゲームエンジンとか、何を使っても素晴らしいGUIを作れるよ。ただ、Web技術を使う方が普通は簡単なんだ。
ブラウザがレベルアップして、開発者がやっと良いUXを理解した感じだよね。今じゃネイティブアプリの半分よりWebアプリの方がスムーズに動くし。
AppleがやっとWebアプリに意味のある標準を適用することにした(または、ある程度強制された)。なぜなら、一部の機能がうまく動作せず、回避策が必要だったから。そうなると、それらの機能を本当に使いたい場合は、Androidでも使えるようにアプリを2つのバージョンで作る必要があった。ネイティブアプリではなくWebアプリを使う意味がなくなっちゃうよね。
タップの遅延がなくなったみたいだね。あの「機能」のせいで、Webアプリの操作感がめちゃくちゃ悪くなってたんだよ。
正直、いろんな要素が組み合わさってると思う。ブラウザがめちゃくちゃ速くなったし、CSSとJSが進化してGPUアクセラレーションアニメーションが可能になったり、Web Workersや非同期レンダリングも使えるようになった。開発者もネイティブのパターンをコピーするんじゃなくて、Web向けのデザインを学んだし。Next.js、Svelte、ReactのConcurrent featuresみたいなフレームワークも、インタラクションをデフォルトでスムーズにしてくれる。とは言え、OSレベルでのより深い統合や生のパフォーマンスでは、まだネイティブアプリが勝るけど、ほとんどのユースケースでは、Webアプリはついに「十分」なレベルに達して、違いが気にならなくなったって感じかな。
バカで若い人たちが「ウェブサイト」の代わりに「ウェブアプリ」と呼び始めたとき。
それのどこがバカげてるの?
基本的な読み取り専用のWebサイトや、パンフレットみたいなWebサイトとは、かなり明確に区別できると思うけど。
目的も用途も違うじゃん。
"brochureware(ブロシュアウェア)"サイトにはもう"brochureware"って言葉があるし、訪問者から見て"read only(読み取り専用)"のサイトだって、コンテンツを生成・修正する何らかの"app(アプリ)"コンポーネントがあるはずじゃん。WordPressは"read only content(読み取り専用コンテンツ)"を生成するけど、管理者にとってはやっぱり"an app(アプリ)"なんだよね。
ただのウェブサイトでしょ。区別する意味がマジでない。
MS Word onlineとかOutlook onlineを"web apps(ウェブアプリ)"って呼ぶのがバカげてるって思うってこと?
ウェブサイトって呼ぶべきだってこと?
ありえない。ウェブサイトをElectronと比較するんじゃなくて、完全にネイティブなものと比較するべきだ。ウェブテクノロジーを使わず、その方法を知ってる人が書いたやつと。
最後の点が重要。ゲームボーイのCPU/RAMスペックで動くGUIテキストエディタもあれば、起動するだけで16GBのRAMとGPUアクセラレーションが必要なものもある。
(アクセシビリティ、テーマ、その他のカスタマイズ、ローカル環境への統合などについては触れないでおこう…)
これは未来なのか、それともネイティブアプリの方が常に優れている根本的な限界があるのか?
何か質問したいのか、それともプロパガンダ記事を作りたいだけなのか?もちろん、Webには根本的な限界があるよ。
正直、数年前は「Webアプリ」って言葉に全然納得してなかったんだよね。ロード時間が無限に続く、低パフォーマンスなWebサイトってイメージしかなかったから。
でも、Canvaみたいな(デスクトップソフトの競合)大型Webアプリもあるし、PCソフトの強力なライバルとして登場してるツールの多くが、ただのWebアプリだったりする。
この背景にある理由を知りたいな。
CanvaとかFigmaって、どうしてあんなにWebアプリが速いんだろうっていつも不思議に思うわ。
ここ10年くらいハイブリッドアプリとPWAの開発をたくさんやってきたけど、マジで改善されてるよね。
2015年くらいは、小さなアプリ、ポイントアプリ、リストアプリ、業界特化型アプリ(フォーム入力とか、NFCやQRコードの読み取りとかのシンプルなものが多い)を作ってた。
ハイブリッドアプリは、ネイティブアプリやReact Native/Flutterでできることの多くはまだできないけど、かなり近づいてきてるし、専門のデベロッパーを雇うより圧倒的に安いから、「自分のアプリに必要な機能で、本当にネイティブツールが必要なものって何?」って自問自答する必要があるよね。
ネイティブアプリの方が悪くなってる。
WebAssemblyとWebGLも貢献してるよね。それに、ネイティブアプリによくElectronが使われるようになったのも大きい。