Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tokamakとの比較について書く #90

Open
omochi opened this issue Apr 26, 2024 · 0 comments
Open

Tokamakとの比較について書く #90

omochi opened this issue Apr 26, 2024 · 0 comments

Comments

@omochi
Copy link
Owner

omochi commented Apr 26, 2024

質問を受けたが、FAQだと思うし、開発することにした重要なモチベーションの一つでもあるので、ドキュメントにすると良いだろう

メモ

TokamakはSwiftUIをユニバーサルにするというプロジェクトという認識なので、APIや設計の考え方が結構違いますね
TokamakにもHTML Nodeを書く機能はちょっとついてるけど
・SwiftUIはセマンティックなコンポーネントがあって、それがプラットフォームごとに具象化される。ReactはHTMLタグをそのまま抽象化しているので、具象化されるHTMLツリーが透過的。
・SwiftUIは構造によるView Identityでノード同一性を判定して更新をする。Reactは構造はダイナミックで、兄弟間の同一性は key アトリビュートで管理する。
・SwiftUIは modifier によって View を型付きでラップすることで副作用を導入したりする。ReactはHookに寄せている。ただしSwift ReactのHookは Property Wrapper にしている。
・SwiftUIはレイアウトが独自システム。ReactはレイアウトはHTML/CSSの仕組みが自由に使える。
(本家Reactは厳密にはWebと分離されてるけど、ここでは React for Web (DOM) だけ考えている)
・SwiftUIは挙動が暗黙で説明が少ない。Reactはドキュメントでしっかり説明されてる。(ただしSwift Reactが頑張って寄せる必要はある)

SwiftUIが好きでそれでWebを書きたい人はTokamakをそのまま使うのが良いですね。
iOSとmacとLinux(GTK)とWeb(HTML)で動くGUIがワンソースで実装できます。

Swiftを知ってるiOSエンジニアがWebに手を広げる or
TypeScriptに疲れたWebウェブエンジニアがSwiftに手を伸ばす
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant