🐱

Lynx — TikTokのクロスプラットフォームUIエンジン

Reactのように書いて、ネイティブでレンダリング

LynxはTikTokが開発したオープンソースのクロスプラットフォームUIフレームワークだ。

コアコンセプト

Reactに似たコンポーネントベースの文法でUIを書けば、Lynxがそれを各プラットフォームのネイティブビューとしてレンダリングする。WebViewではなく、実際のネイティブレンダリングだ。

既存のクロスプラットフォームフレームワーク(React Native、Flutter)と同じ問題を解くが、TikTokという超大規模サービスで実戦検証を経ている点が異なる。

レンダリングパイプライン

Lynxは独自のレンダリングエンジンを持つ。JavaScript/TypeScriptで書いたコンポーネントをパースし、レイアウトを計算した後、プラットフォームネイティブのビューツリーに変換する。

React NativeがJavaScript Core + Bridgeを使うのに対し、Lynxは独自のJSランタイムとレンダリングパイプラインで性能ボトルネックを減らそうとしている。

Sparklingとの関係

Lynx自体はUIレンダリングに集中する。だが実際のアプリを作るにはビルドシステム、ネイティブブリッジ、ナビゲーション、デバイスAPIアクセスが必要だ。

これをSparklingが解決する。React NativeとExpoの関係を思い浮かべればいい。

  • Lynx = レンダリングエンジン(React Native Coreに相当)

  • Sparkling = プロダクションフレームワーク(Expoに相当)

現在のポジショニング

React Native陣営がすでに巨大なエコシステムを持ち、Flutterも定着している。後発としてのLynxの強みは、TikTokという実戦事例があることだ。

パブリックベータ段階でエコシステムがまだ初期なので、プロダクション導入は時期尚早かもしれない。だがTikTok規模の会社がプロダクションで使っているのは、技術的完成度の強力なシグナルだ。

動作フロー

1

React類似の文法でコンポーネント作成(JSX/TSX)

2

LynxエンジンがJSをパース → レイアウト計算

3

各プラットフォームのネイティブビューツリーに変換 → ネイティブレンダリング

4

Sparklingがビルド・ブリッジ・ナビゲーション等のプロダクションインフラを提供

ユースケース

TikTok規模のクロスプラットフォームアプリ開発 React Native/Flutterの代替検討 ネイティブレンダリングベースの高性能アプリ構築