Skip to content

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

@omochi

Description

@omochi

質問を受けたが、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に手を伸ばす

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions