メインコンテンツへスキップ

Electron製MacアプリをRustで書き換え!

·3 分
2025/05 Electron Rust Mac アプリ開発 プログラミング

Electron製MacアプリをRustで書き換え!

引用元:https://news.ycombinator.com/item?id=44118023

yojo 2025/05/28 17:13:59

最近ね、逆のことしたんだよ(Tauriで始めてElectronに移行)。プラットフォームによって使ってるWebViewのレンダリングが違ってイライラしたからなんだよね...移行してからクロスプラットフォームでUIバグに遭遇した?
あんたのUIの要件はかなりシンプルで、計算が複雑みたいだから、QAの追加コストを考えても割に合うんだろうね...ただ、俺の経験が珍しかったのか、それともレンダリングの違いって俺が感じたほどよくあることなのか、気になってさ。
あと、Tauri 2.0を使ったの?それとも1.0?V1の途中で2.0の最初の安定版が出たんだけど、移行が悪夢でドキュメントがひどかったんだよ...ドキュメントは整備されたのかな?

mort96 2025/05/28 17:36:10

Tauriでのレンダリングの違いへの対応って、普通のWebアプリ作る時より難しくないんじゃないの?

logankeenan 2025/05/28 17:39:37

Electronはアプリにchromeをバンドルするから、一つのレンダリングエンジンだけ扱えばいいんだよ.Tauriはアプリをインストールしたシステム上のデフォルトブラウザを使うんだ

mort96 2025/05/28 17:45:52

知ってるよ.俺が言いたいのは、Tauriは普通のWebアプリ開発よりも物事を難しくしてるわけじゃないってこと.クロスブラウザで動くWebアプリを作るのって別に新しくて怖いことじゃないでしょ

katrinarodri 2025/05/28 17:30:41

実はまだTauri版ではクロスプラットフォーム対応を展開してないんだよ.だからこれからどうなるか様子見だね.幸い、俺たちのUIの要件はシンプルなんだ.Tauriでどんなレンダリングの違いを見たの?一番良かった/悪かったプラットフォームはあった?次はWindowsもサポートしたいと思っててさ.
Electron版のアプリでは、Intelチップ搭載のMacでバンドルしたバイナリを実行するのに問題があったんだ.それで頭を悩ませたから、Tauriで再構築するにあたっては、他のプラットフォームをサポートする前にまず一つのプラットフォーム(Appleチップ搭載のMac)に集中しようって決めたんだ.
Tauri 1.4を使ったんだけど、今のところ問題ないよ.2.0への移行のドキュメントをチェックして、どんな感じか見てみる必要があるね.

yojo 2025/05/28 18:01:07

新しくも怖くもないけど、”俺のマシンで動けばどこでも動く”に頼るよりは、時間やお金がずっとかかるんだ.
俺は大規模な消費者向けWebアプリで働いたことがあるけど、そこには専任のQAチーム(や外部の協力会社)がいて、複数のプラットフォームやブラウザバージョンで視覚的回帰テストを実行してたんだ.ソロ開発者としては、趣味プロジェクトでそんなチームになる気は全然ないね.だから俺にとってTauriとのトレードオフは、”明らかなUIバグを出荷するのを許容する”か、”肥大化したバイナリを出荷するのを許容する”かだったんだ.
フォーラムで読んだアネクドートによると、200MB余計にかかることに対して大騒ぎするのはHNの読者くらいらしいし、俺のアプリは彼らをターゲットにしてないんだよ.

Klonoar 2025/05/28 17:38:41

いや、WebkitGTKは問題児で有名だよ.

echelon 2025/05/28 20:01:38

> 最近ね、逆のことしたんだよ(Tauriで始めてElectronに移行).プラットフォームによって使ってるWebViewのレンダリングが違ってイライラしたからなんだよね...
これが俺たちのTauriに関する一番の不満なんだ.OS提供のシステムWebViewは、開発の基盤として安定してて、再現性があって、一貫性があるプラットフォームじゃないんだよ.
Tauriは、アプリにブラウザランタイムをバンドルしないことをプラットフォームの主要なセールスポイントにした.代わりに、オペレーティングシステムのブラウザランタイムを使うことになった.各OSで違うランタイムだ.
紙の上では良さそうだけど、それが俺たちにとっては大きな頭痛の種になった.SafariやEdgeはすごく気難しくて非標準的な挙動をするし、それが最悪なんだ.ブラウザ機能が頻繁に壊れる.タイトなシステムサンドボックスとCORSの挙動(ブラウザごとに違う)の間で、とにかく奇妙な方法で動作してるのに、微妙な違いが積もり積もって死に至るんだ.そしてそれが止まらないように見える.これらはCSSのパディングみたいな小さな問題じゃなくて、本格的なアプリの挙動の破壊なんだ.”caniuse.com”でさえ、組み込みWebViewとの互換性マトリックスについては間違ってる.(※以下、テストの手間、Rustは良いけどシステムWebViewは悪い決定、Chromeをバンドルしたい、容量より時間が大事、開発者は読んでほしい、コミュニティ全体の意見だ、という内容が続くが200字以内のため要約)
俺たちはRustに惹かれてTauriを選んだけど、システムブラウザランタイムは本当にひどい決定だった.
Tauri開発者たちはこの不満を聞いてるけど、残念ながら彼らの解決策はServoのサポートをロードマップに入れることだ.それは1000%間違った修正だ.Servoはまだ製品レベルのプラットフォームじゃない.俺たちはただChromeが欲しいだけなんだ.
アプリに最新のchromeをバンドルさせてくれよ.小さいプログラムやインストーラーサイズで誰かの頭痛を救ってるわけじゃない.ゲームはすでに巨大だし、みんな許容してる.たくさんのソフトウェアが大きい.それは受け入れられてるし、大丈夫、普通なんだ.俺たちにはたくさんのスペースがあるけど、たくさんの時間はない.それが本当のトレードオフだ.
俺はRustを使いたい.Chromeを使いたいんだ.
Tauri開発者がこれを読んでくれることを願ってる.これは俺一人からの意見じゃない.コミュニティ全体のコンセンサスだ.
組み込みWebViewはTauriのセールスポイントじゃない.Rustなんだ.

krisknez 2025/05/28 17:28:56

俺はWeb開発者で、TauriやElectronはまだあまり使ったことがないんだ.
なぜプラットフォーム間でレンダリングの違いがそんなに問題になるのか疑問に思ってるんだよね?Webアプリを構築する時も同じ課題に直面するから、そんなに変わらないんじゃないかと思ってたんだ.

mort96 2025/05/28 17:46:51

Tauriが使うWebkitGTKって、WebアプリのユーザーのWebブラウザが使うWebkitGTKより悪いものなの?

porridgeraisin 2025/05/28 18:00:44

いや、でも誰も(一次近似で)Gnome webなんて使ってないっしょ。WebKitGTKのせいで大半のJavaScriptウェブアプリはあのブラウザで動かないと思うよ。人気のGnomeディストリビューションは全部Firefoxが最初から入ってるから、「とりあえずデフォルト使っとこ」って人もGnome webは使わないだろうね。

pjmlp 2025/05/28 19:31:05

ぶっちゃけChromeOSプラットフォームだけ残ればWebはずっと良くなるんじゃない? 標準とか複数ベンダーとか、誰が要るんだよって話。

charcircuit 2025/05/28 21:25:17

開発者にとっては支配的なオープンソースブラウザエンジンがある方が断然楽だよ。オープンソースってこういう標準とか複数ベンダーの必要性を減らしてくれるんだよね。Linuxがどうやって大量のUNIXを置き換えたか見てみなよ。みんなで一つのプロジェクトに貢献できて、必要に応じてカスタマイズできるってのは成功したモデルだってことだよ。

Capricorn2481 2025/05/28 18:07:41

「追加の200MBに騒ぐのはHN読者だけ」って意見あるけど、ユーザーはElectronアプリ多数でRAMが常にパンパンなことに気づく? Electronの批判は単にバイナリが大きいだけでなく、みんなが過剰にRAM使うアプリ作ってることなんだよ。

CommonGuy 2025/05/28 18:17:36

Kreya.appでシステムWebViewを使ってるよ(Tauriじゃなくてカスタム実装だけどね)。プラットフォームの違いはめったに問題にならないな…。Polyfillsでほとんど解決するし、Linuxで自動のエンドツーエンドテストを走らせてるから大半の問題はこれで捕まる。個人的には一番難しいのは、特にLinuxとmacOSで、ユーザーのWebViewバージョンがどれくらい古いかを把握することだと思う。WindowsはWebView2の実装でうまくやってるね。

pjmlp 2025/05/29 04:45:03

BSDの人たちがどう思ってるか聞いてみなよ。単一文化は最高さ、ただしそれが俺たちが賭けたやつならね。

yojo 2025/05/28 17:47:06

Electronの売りは、開発に使ったChromeのバージョンがアプリと一緒に配布されること。自分のマシンで正しく見えれば、実行する誰のでも正しく見えるってわけだ。これはWeb開発みたいに、どのブラウザやバージョンをテスト・サポートするか決めるよりずっと楽だよね。
TauriはChromeをアプリにバンドルしないからバンドルサイズはすごく小さくなる。でもそのトレードオフとして、デフォルトのWebViewブラウザでレンダリングすることになる。MacだとSafari(macOSのバージョンによる)、Windowsだと最近のEdgeだね。Tauriにはこれを細かく説明したいいページがあるよ: https://v2.tauri.app/reference/webview-versions/
これはつまり、新しいOSが出るとアプリの見え方が変わる可能性があって、ユーザーはアプリをアップデートしなくてもUIバグが出るってことだね。

charcircuit 2025/05/29 05:26:08

まあ、オープンソースだったおかげで、ニッチなOSでも互換レイヤーとかLinuxドライバー経由でLinuxソフトを動かせるようになって、むしろ良くなったってわけだね。

yojo 2025/05/28 18:13:56

それは確かにそうだね。私のアプリ(そして多分元の記事のアプリも)は、それがユーザーの現在の焦点かつ優先事項であって、タスクが終わったら終了されるものだと想定して作られてる。こういう主要なアプリのために結構な量のRAMを要求することについては悪くないと思ってるけど、もしバックグラウンドツールとか小さなユーティリティを出荷するなら考え方は違うだろうね。

oblio 2025/05/28 18:54:36

でもさ、Tauri使ってるならウェブアプリは自分でコントロールできるんでしょ。ってことはWebkitGTKでもテストする必要があるってこと? それが追加の負担ってことなの?

pjmlp 2025/05/29 06:58:06

Microsoftって結局正しかったんだね,訴訟とかマジ金の無駄じゃん,モノカルチャー最高!
ゲーム開発者がWindowsばっか気にしてるのも同じでしょ,Protonはオープンソースだし別にいいじゃん,気にする必要なくなくない?

Klonoar 2025/05/28 18:54:34

Tauriも全部でうまくいくわけじゃないよ.LinuxのWebkitGTKはパフォーマンス問題あるししょぼい.Slackの開発者がWebviewからChromiumに移った話みたいに,多くのチームが通った道だしElectronがあるのにも理由があるんだよ.(Tauriが皆の言う”聖杯”みたいじゃないってことね)

mort96 2025/05/28 19:38:30

特にmacOSはアプリを”終了”しない前提で作られてるんだよね.ウィンドウ閉じても裏で動いてる.cmd+qとかで終了しないと.
使い終わったら終了しろって要求するのはUXとして良くない.アイドルでRAM食うElectronも,裏でCPU食うRust UIフレームワークも,多くが抱える問題だね.

porridgeraisin 2025/05/28 20:06:25

WebkitGTKにデプロイしたことあんの?
WebRTCサポートしてないからビデオ会議アプリ”テスト”できるといいね!エラーページテストにはなるかもだけど.
これ以外にも機能不足,バグ,ヤバいパフォーマンスの例はたくさん.通知なし,:hasなし,TLAなし.(Epiphany開発者を責めてるわけじゃないけどね)

cosmic_cheese 2025/05/28 19:32:35

unpopular takeだと思うけど,自分でテストできないプラットフォーム向けのバイナリ出すの,マジ疑問.理解できない複雑さとか,デバッグ能力の限界とか考えると,ユーザーは不満だろうし有料アプリなら購入に繋がりにくいし解約されやすいでしょ.唯一のメリットはマーケティングページにアイコンが増えるくらい.

M4v3R 2025/05/28 19:11:32

Tauri 2.0に移行すれば,もしかしたらパフォーマンス面でもっとメリットあるかもよ.特に大量のデータを動かすときに,JS-Rust bridgeがめっちゃ強化されたからね.

charcircuit 2025/05/29 07:43:12

>モノカルチャー最高
ブラウザこそがプロダクト.OSSエンジンは新規参入障壁下げる.
>ゲーム開発者がWindowsばっか気にしてんのも一緒,Protonオープンソースだし別にいいじゃん
だからValveは開発者にWindowsターゲット&Proton推奨.単一プラットフォームの価値はデカい.前はLinuxにひどいポート作ってたしね.
Electron/Tauriは主導実装がクローズドで高機能な点で状況が違うけどね.

wtallis 2025/05/28 20:50:14

単純な事実として,同じUIを複数のOSで出すのはいくつかのOS(もしかしたら全部?)にとっては明らかに間違ってるんだよ.
WebベースのクロスプラットフォームUIツールキットは,基本的なUI慣習さえ間違えるからね.

ameliaquining 2025/05/28 19:08:44

UI一貫性のためだけにWebアプリじゃなくてElectronアプリ出すこと,わざわざ選ぶ人っている?
俺が見たElectronアプリの大半は,公開されてるWebアプリとコード共有してるか(結局クロスブラウザテストは必要),Webじゃできない機能(ファイルシステム権限とか)のためなんだよ.

Sytten 2025/05/28 22:25:26

逆に,うちみたいに複雑なWebアプリだとマジで大きな問題なんだよ.
8年も前のMacのWebviewでユーザーバグ対応するの,マジしんどかったし.LinuxのWebkitGTKのパフォーマンスもヤバいしね.

もっとコメントを表示(1)
Aeolun 2025/05/28 23:18:13

俺の代わりに決めつけないでくれよ。俺はアプリが少し違ってても1GBもない方が全然良いね。Tauri使ってる大半の人は君みたいな問題抱えてないと思うよ。そもそもなんでそんな問題になったのか分からんし。システムWebView使うってサイトにデカデカと書いてあるじゃん。フォークの飾りを見て使っといて、先が尖ってるからスプーンにしろって文句言ってるようなもんだよ。

platevoltage 2025/05/28 19:53:20

俺も似たことやったよ。Electronで簡単なwebcam viewer作ったら500MBになっちゃって、App Store出すのにこれは無いなって。Tauri V2に移植したら15MBまで減ったぜ。

smusamashah 2025/05/28 21:59:26

TauriとElectronって何が違うの?どっちも描画にブラウザ使うけど、Electronはブラウザ丸ごと入れてて、Tauriはシステムにあるやつ使うって理解で合ってる?

SpaceL10n 2025/05/28 22:13:03

違いは君の言う通り。それに加えてTauriはバックエンドがRust、ElectronはNode.js。Electronは成熟しててコミュニティもでかいけどTauriも勢い増してるよ。メモリ安全性とかサイズ、パフォーマンス気にするならTauriが良い選択肢だね。Electronも悪くないけど、新しいのいっぱい出てくるのは理由があるんだ。

whywhywhywhy 2025/05/29 14:22:12

一番大きな違いは、ElectronはChromeをまるっと同梱してるからMacとかWindowsとかLinuxで見た目のズレがほとんどないこと。その代わり数百MB増えるけどね。TauriはOSのエンジン使うから、WindowsならEdge、MacならSafariのWebKitとかになって、表示とか機能で違いが出る可能性あるよ。

amelius 2025/05/28 22:54:56

” If memory safety
TauriってWebKitのラッパーでしょ?WebKitってほぼC++で書かれてるんじゃなかったっけ?

kevincox 2025/05/28 23:28:04

そうだよ、でもWebKitは君のアプリコードよりずっとテストされて、fuzzテストもされて、研究もされて、実戦で鍛えられてるんだ。だから全体で見れば安定性とかセキュリティのリスクはそんな高くない。全部メモリ安全だったら最高だけど、それが君自身のコードをメモリ安全な言語で書かない理由にはならないよね。

Aeolun 2025/05/28 23:07:45

自分のRustコードとすごく簡単に繋げられるから、本当に大事な部分(自分のコード)はメモリ安全になるよ。

bloomca 2025/05/28 23:40:55

TauriはネイティブのWebView(古いOSだと古い可能性あり)を使って、ネイティブコードにコンパイルされる。ElectronはChromium(HTML/CSS+V8)とNode.jsをまるっと入れてる。Node.js使わないで、コンパイル言語(Rustは低レベルすぎるかもだけど)使うElectronがあったら、もっと良かったのになぁ。

platevoltage 2025/05/28 23:39:32

マジそれな。ElectronはアプリごとにChromium入れてるけど、TauriはOSのネイティブWebViewを使うんだ。Electronの方がずっと成熟してるけど、Tauriも良くなってるよ。

correa_brian 2025/05/28 19:58:24

めっちゃいいね。ナイスな作業じゃん。アプリの名前なんていうの?今週App Storeに申請する作業やってんだよね。

platevoltage 2025/05/28 20:04:19

アプリ名はMicroscopic Viewにしたよ。ウェブサイトも作ったんだ。https://microscopic-view.jgarrettcorbin.com
申請プロセスに手こずって他のプロジェクトに追われてまだストアには出てないんだけど、もしよかったらビルド送るよ。

djfergus 2025/05/28 22:14:17

これが低スペックなAndroid向けに最適化されたらいいな〜古いタブレットってタダ同然なのにネット見るのさえ厳しいし。
あと、安くて使える顕微鏡のおすすめ教えてくんない?AliExpressで色々試したけど全部詐欺かゴミだったんだ。

platevoltage 2025/05/28 23:41:31

https://plugable.com/products/usb2-micro-250x/これが俺が使ってるやつ。値段の割にめっちゃ良い。普通のウェブカメラみたいに使えるんだ。主にマイクロはんだ付けに使ってるから用途が違うかもしれないけど、値段考えたら超良いよ。Amazonに公式ストアあったはず。

itsibitzi 2025/05/29 12:28:47

興味あるんだけど、どうやって動画データをfrontendにストリームしたの?

platevoltage 2025/05/29 17:58:29

標準のWeb APIにあるMediaStreamを使ったよ。https://developer.mozilla.org/en-US/docs/Web/API/MediaStream

zalebz 2025/05/28 17:36:43

俺もチームもMacユーザーじゃないしRustへの書き換えも考えてないんだけど…でもこの記事、めっちゃ感謝してるよ。
これが”Show HN”に期待することなんだよね、現実の問題を解決するために必要な技術的なトレードオフを分かりやすくまとめたやつ。経験を共有してくれてありがとう!

katrinarodri 2025/05/28 17:43:40

経験を共有できて嬉しいよ。長い間議論してたことなんだ。すでにまあまあ動いてるものを再構築するのは大変だけど、この場合は結果に満足してるよ。

sillyboi 2025/05/28 19:02:05

Tauri、Flutter、Electron、React Nativeとか、最新クロスプラットフォームフレームワークの比較ベンチマークが見たいな。バンドルサイズ、メモリ、起動時間とかの指標で。特にTauriはプラットフォームでWebViewの挙動違うから、その互換性マトリクスもあると開発者が選びやすくなると思うんだ。

taroth 2025/05/28 20:53:04

2週間前に更新された良い比較ベンチマークあるよ!→ https://github.com/Elanis/web-to-desktop-framework-compariso
ランタイムではElectronも結構戦えてるね。みんなディスクよりメモリ気にすべきだと思うんだ。メモリ使用量(シングルウィンドウ、リリースビルド)のデータも一部抜粋するね。
Win: Electron ≈93MB, Tauri ≈154MB
Mac: NodeGui ≈84MB, Tauri ≈86MB
Linux: Tauri ≈16MB, Electron ≈70MB
LinuxのTauriやばすぎ!

FINDarkside 2025/05/29 00:45:33

ベンチマークにはTauriがLinuxで起動に25秒、Windowsで空っぽアプリのビルドに4分以上かかると書いてあるね。この数字が本当に合ってるのかどうかは分かんないけど。

KronisLV 2025/05/29 08:07:30

数ヶ月前、WindowsでWailsとTauriを試してみたんだ。確かにRustオプションでのビルドはありえないくらい時間かかったけど、Goだとずっと速かったよ。理由は分かんないけど、Wailsもだいたい同じことできたし、それが理由でTauriはやめちゃったんだ。

Abishek_Muthian 2025/05/29 12:02:03

作ったWAILSアプリ、公開できたの?一番苦労した点は何だった?

KronisLV 2025/05/29 16:59:59

あれは社内アプリで、CLIツール設定GUIだったんだ。VueでローカルSPAを作って、配布サイズが小さいのが助かったよ。Goコードとの連携も快適だったな。一番苦労したのはオンラインで情報が少ないこと。Electronがみんな使ってて情報が多いからね。

Abishek_Muthian 2025/05/30 03:51:30

それ、WAILSアプリには最高の使い方みたいだね、よく作ったね!

samtheprogram 2025/05/29 06:25:56

これこれ。Casey Muratoriがネットの変な人が作ったベンチマークは信用するなって言ってたのを思い出したよ。Tauriアプリが起動に25秒かかるなんて絶対ありえないね。だってLinuxでTauri触ったことあるもん。これは全然桁が違う話だよ。

Abishek_Muthian 2025/05/29 11:59:09

TauriがLinuxだとすごい良くて、Electronが最悪なのは、それぞれ最適化されてるか、されてないかってのが理由なのかなって思うね。

rubymamis 2025/05/29 06:27:48

ブロックエディタ(NotionはElectron、AppflowyはFlutterとか)を、ブログ記事[1]で同じような条件で自分で作ったQt C++&QMLのブロックエディタと比べたことがあるんだ。読んだら面白いかもよ。[1] https://rubymamistvalove.com/block-editor

pier25 2025/05/28 18:20:38

前の会社ではデカくなったElectronアプリをメンテしてたんだ。Squirrelでの更新が大変で。
それでGUIはInferno製のSPAにして、C#とSwiftで書いたネイティブアプリからwebviewで表示するように構成を変えたんだ。そしたらサイズとメモリが90%くらい減ったよ。配布もストアにしたし、マジで良い決断だったな。

brulard 2025/05/28 18:51:31

ネイティブストアでの配布と更新を褒めるなんて珍しいね
承認とか配信の遅れが普通なのに
Squirrelって知らないけど、ネイティブに変えて何が良くなったの?

もっとコメントを表示(2)
pier25 2025/05/28 19:17:38

Apple対応は大変だけど、更新問題が全部解決したのはデカかった
自分たちにリソースが無かったからね
無料アプリだったからストア経由とかSquirrel使ったけど、メイン製品ならもっと良い方法にした
2018年当時はSquirrelにサーバーが必要で、macOSではマシだったけどWindowsはひどかった
exeが変なフォルダに入って、リンク消すと見つけられないとか

pier25 2025/05/28 19:24:23

WebViewで作るのは超簡単だったよ
その後、OSに統合する新しい機能も追加したんだ
2018年のことだから記憶がちょっと曖昧なんだけど、全体で2〜3週間くらいの作業だったかな
SquirrelとかElectronに費やした時間よりは間違いなく短かったと思うよ…

jdprgm 2025/05/28 18:22:44

LPのTryが購入ページなのは変、トライアル必要だよ
99ドルは高いかも
LPに性能情報がないのが気になる
詳細求む
Electronがボトルネックで処理時間激減したの衝撃
CLIP
ffmpeg連携だけでは
自分は似たElectronツールで性能問題なかった
なぜMac Only
Electron
Tauriはクロスプラットフォームなのに
最近Swift触ったけど良かったよ
アクティブユーザーすごい、マーケティングどうやったの

correa_brian 2025/05/28 18:44:36

フィードバックありがとう
トライアルは今後やるかも
似たツール作ったっていいね、リリースしなかった理由は
需要あれば数ヶ月でWindows
Linux版出すよ
ユーザーはHN
reddit
linkedinでのローンチと口コミがほとんど
Electronと動画処理性能について、workerの使い方が悪かったかも
Rust移行でシーン検出やffmpegのGPU加速、バッチ処理もやって改善したけど、バッチ処理はクラッシュもした

JohannMac 2025/05/28 17:06:47

Macアプリを目指してたなら、Rust
TauriじゃなくてSwift
SwiftUIにしなかったのはどうして
ちょっと気になっただけ

correa_brian 2025/05/28 17:09:01

見てくれてありがとう
Desktop Docsはクロスプラットフォームにするのが目標なんだ
Windowsサポートのリクエストがたくさん来てるから、これから出すWindows版のためにRustを選んだんだよ

amendegree 2025/05/28 18:18:40

まだ実用的じゃないかもしれないけど、Arc browserのチームがどこでもSwiftを使いたいからWindows向けのランタイムを開発してたはずだよ

StewardMcOy 2025/05/29 02:59:16

前にちょっと見てみたんだけど、結局MacではSwiftUIとかAppkit、WindowsではWinUIって感じで、2つのUIを違うフレームワークで書く必要があるんだよね
SwiftでWinUIのコードを書けるようになっただけなんだ

amendegree 2025/05/29 06:07:07

Appkitをwindows APIに移植するのって大変だろうから、まあわかるけど、クロスプラットフォーム開発って意味では大したメリットじゃないよね。ブラウザみたいなの作るならどうせ超低レベルなことやるし、そういうクロスプラットフォーム用の便利機能もあんま役に立たないだろうね。

rstupek 2025/05/28 17:11:32

Windows版のテストもう始めた?OSごとにTauriが使うブラウザの違いで何か問題見つかった?

correa_brian 2025/05/28 17:24:36

Windows版のテストはまだ始めてないんだ。君はWindows使ってるの?そのバージョン出すときに教えてあげるよ。

burnte 2025/05/28 17:10:02

アプリめっちゃ良さそう!Windows使ってるから見るのが待ちきれないよ!

correa_brian 2025/05/28 17:21:03

サンキュー!そのバージョンに興味あったらメールちょうだいね: hello [at] desktopdocs dot com。準備できたらアップデート送るよ!

mark_l_watson 2025/05/28 17:10:12

俺も同じ質問したかったんだ。Swiftってなかなか良い言語だし、Rustのメリットもたくさん提供してるみたいだね。別のコメントした人が聞いてたけど、俺もCLIPsの統合の詳細に興味あるな。あと、アプリを移植する必要があった理由についての話、すごくいいね。

correa_brian 2025/05/28 17:12:13

サンキュー!別のコメントで言ったけどさ、RustのOrt crate使ってて、onnxruntimeをアプリにバンドルしてるんだ。Swiftも間違いなく検討したし、最後に使ってからかなり良くなったのは知ってるんだけど、SwiftじゃなくてRustにしたのはクロスプラットフォームのサポートがあったからなんだよね。移植に関して言えば、新しいバージョンの方がずっとメンテしやすくて満足してるよ。

ptsd_dalmatian 2025/05/28 17:13:31

俺も興味あるな。デスクトップアプリ作ろうと思ってて、Swiftは長いこと使ってないし、Rustもまだ初心者なんだ。Tauriはすごく期待できそう。Electronアプリは本当に嫌いなんだよね。爆速のマシンでも起動がめっちゃ遅いんだもん。何か知見があったら教えて!

correa_brian 2025/05/28 17:23:28

Electronを経験してから、もっと早く得意分野(JS)から離れとけばよかったなって思うよ。Electronはとにかく最適化が必要で、すぐに必要ないものをロードしないようにimportsをマジでタイトにしなきゃいけないんだ。Tauriだとバンドルサイズ小さいし超高速だから、努力する価値は十分あるね。

abvdasker 2025/05/29 05:53:51

正直気になったんだけどさ、もっとシンプルな組み込み型ソリューションのSQLiteじゃなくて、なんでRedisみたいなサービスを選んだの?個人的にはRedisって分散型ソリューションの方が向いてる気がするんだけど、デスクトップアプリ作ったことないから、たぶんよくわかってないだけかも。

sturges 2025/05/28 18:49:36

チームの効率上げるためのツール、昔はWinForms、最近WinUI3試したらダメダメ。React+Azure Static Site+Tauriに変えた。Tauriはほとんどの事できてファイルサイズも小さいのが良い。Chrome含まずWebとデスクトップ同じコードでいけるの最高だね。

t_mahmood 2025/05/28 20:30:32

小さいツールならiced-rsの方がずっと良いんじゃない?Tauriより軽いし、どこでも動くでしょ。最初はコード見るの怖いし手取り足取り教えてくれないからイライラするかもだけど慣れると楽。前に使った時は以前より簡単になってた。複雑なUIならTauriが良いと思うけどね。

pjmlp 2025/05/30 07:31:58

WPF使うべきだったね.Windows開発者でWinUIを真剣に考えてる人いないよ,Project Reunionが2020年に発表されてからどんだけメチャクチャかみんな知ってるし.BUILD 2024でWPFが地位を取り戻した理由があるんだよ.

katrinarodri 2025/05/28 19:18:29

そうそう,Electronアプリでやってたのと同じ機能がTauriでだいぶ小さいバイナリでサポートできるの最高だよね.

dotancohen 2025/05/28 21:11:14

eguiとかじゃなくてどうやってTauriに決めたの?Electronの経験があるからかな?俺はPython+QtアプリをRustに移植するのちょっとためらってるんだ,RustのGUIライブラリがQtみたいにリッチじゃない気がして,どこかで詰まるだろうなって分かってるからさ.

katrinarodri 2025/05/29 02:13:58

俺たちにとってもリッチなUIライブラリは重要だったよ.WebのUIライブラリにアクセスしたかったからTauriを選んだんだ.

dotancohen 2025/05/28 22:13:01

Pythonがパフォーマンス的にダメな場所が2つあったんだ.いくつか言語でテストしたら,RustとC++がダントツで一番だった.Rustのコンポーネント書いてPythonから使うこともできたし,C++でQtを使うこともできた.あるいは,Rustにどっぷり浸かることもできた.これは個人アプリで他のユーザーいないから,スキルを磨き続けるのに良い場所だってわけ.

記事一覧へ

海外テックの反応まとめ
著者
海外テックの反応まとめ
暇つぶしがてらに読むだけで海外のテックニュースに詳しくなれるまとめサイトです。