---
title: "Lynxとは？ByteDance製クロスプラットフォーム開発フレームワークの特徴とReact Native・Flutterとの違い"
url: "https://www.issoh.co.jp/tech/details/5715/"
published: 2025-03-07
updated: 2026-07-29
categories: ["アーキテクチャ"]
publisher: "株式会社一創"
---

# Lynxとは？ByteDance製クロスプラットフォーム開発フレームワークの特徴とReact Native・Flutterとの違い

Lynx（リンクス）とは、TikTokを運営するByteDanceが2025年3月にオープンソースとして公開した、クロスプラットフォームのUI開発フレームワークです。WebでおなじみのReactとCSSを使って、Android・iOS・Webのアプリを単一コードベースで構築できます。なお、ここで扱うLynxは古くからあるテキストブラウザの「Lynx」や動物の山猫とは無関係で、あくまでアプリ開発フレームワークを指します。本記事では、Lynxの正体と仕組み、正しいセットアップ手順、そしてReact Native・Flutterとの違いを、実際の公式情報に基づいて解説します。

## まとめ：3分でわかるLynx

結論を先に整理します。Lynxは「ByteDanceがTikTokの実戦で鍛え、2025年にOSS化した高性能なクロスプラットフォームUIフレームワーク」です。最大の特徴は、UI描画と業務ロジックを別スレッドで動かす**デュアルスレッド・アーキテクチャ**で、React Nativeが抱えてきたJavaScriptブリッジのボトルネックを構造的に避けています。Reactの書き方をそのまま活かせる**ReactLynx**が用意され、ビルド基盤にはRust製の**Rspeedy**、実行エンジンには軽量な**PrimJS**を採用します。一方で公開からまだ日が浅く、2026年初頭時点でもエコシステムやドキュメントは発展途上です。**「パフォーマンス重視の新規アプリやプロトタイプ」には有力候補、「成熟した周辺ライブラリと安定運用が必須の大規模案件」では現状React NativeやFlutterが無難**、というのが実態に即した評価です。以下で、仕組み・始め方・他フレームワークとの違いを順に見ていきます。

## Lynxとは何か：開発元・公開時期・狙い

Lynxは、Web技術（React・CSS・JavaScript）でネイティブ相当のアプリを作るためのUIフレームワークです。単なる実験的プロジェクトではなく、TikTok内部の高トラフィック機能で実際に使われてきた実績を持つ点が、同種の新興フレームワークと一線を画します。

### ByteDanceが2025年に公開した実戦投入済みのフレームワーク

Lynxは2025年3月5日にオープンソース化されました。ライセンスはApache 2.0で、ソースコードはGitHub（lynx-family）で公開されています。開発元のByteDanceは、Lynxを社内のTikTok関連機能で長期間運用したうえで外部に開放しており、最初から本番運用を前提とした設計思想を持っているのが特徴です。

### なぜ作られたのか：React Nativeのブリッジ問題を構造で解決

従来のReact Nativeは、JavaScriptとネイティブの間を「ブリッジ」でつなぐ設計のため、やり取りが増えるとパフォーマンスのボトルネックになりがちでした。Lynxはこの課題を、スレッドを分離する設計で根本から避けようとしています。フレームワーク戦争に参入するためではなく、ByteDance自身が自社の巨大アプリで直面した具体的な課題を解くために生まれた、という出自が設計に色濃く反映されています。

### 対応プラットフォーム：Android・iOS・WebとHarmonyOS展開

Lynxは単一のコードベースからAndroid・iOS・Webへネイティブにレンダリングできます。加えてHarmonyOSなど他プラットフォームへの展開も進められています。Webフロントエンドも用意されており、Lynxで作ったUIをブラウザ上でそのまま動かして確認することも可能です。

## Lynxのアーキテクチャと主要コンポーネント

Lynxの中身は複数の独立した部品で構成されています。それぞれの役割を押さえると、なぜ高速なのかが理解しやすくなります。

### デュアルスレッド・アーキテクチャ

Lynx最大の技術的特徴が、UI描画用のスレッドとアプリのロジック用スレッドを分離するデュアルスレッド構成です。重い計算をバックグラウンドのスレッドに逃がすことで、UIスレッドはユーザー操作やアニメーションの描画に専念できます。これにより、初回描画が速く、アニメーション中にフレーム落ちが起きにくいという、体感の滑らかさにつながっています。アニメーションを多用するアプリで特に効果が出やすい設計です。

### 主要コンポーネント一覧

Lynxは以下の部品から成り立っています。役割の対応を一覧にまとめます。

| コンポーネント      | 役割                              |
| ------------ | ------------------------------- |
| Lynx Engine  | ネイティブ描画の中核エンジン                  |
| ReactLynx    | React互換の公式フレームワーク層              |
| PrimJS       | 軽量なJavaScript実行エンジン（QuickJSベース） |
| Rspeedy      | Rspackベースのビルドツール（Rust製）         |
| Lynx DevTool | Electron製のデバッグツール               |
| Lynx for Web | ブラウザ上で動かすWeb実装                  |

ビルド基盤のRspeedyはRust製のRspackをベースにしており、高速なバンドルとコンパイルを実現しています。Rustの安全性と速度がフレームワークの足回りを支えています。Rust自体の特性については[Rustのゼロコスト抽象化がもたらす効率的なコーディング](/tech/details/4440/)もあわせてご覧ください。

### フレームワーク非依存設計とReactLynx

Lynxは特定のUIライブラリに縛られない「フレームワーク非依存」を設計目標としています。開発元によれば、すでにLynx全体の利用のうち約半分はReact以外のフレームワークが占めるとされ、この中立性が設計の柱になっています。ただし2026年初頭時点で公式に提供・サポートされているのはReactベースのReactLynxです。ReactLynxはPreactを基盤としてReact 17相当のAPIを実装しており、HooksやContextといったReactの主要機能を使いながらJSXでUIを記述できます（React 18のuseTransitionなどconcurrent機能は前提が異なるため対象外です）。Reactの経験があれば学習コストを大きく抑えられるのが利点です。今後ほかのUIライブラリへの対応も視野に入っていますが、現状で実用的に選ぶならReactという位置づけです。

## Lynxの始め方：環境構築と基本コマンド

ここでは公式ドキュメントに沿った正しいセットアップ手順を示します。古い記事や生成系の情報には実在しないコマンドが書かれていることがあるため、公式の流れに従うのが安全です。

### 前提条件：Node.js 18以上と各OSのツールチェーン

必要なのはNode.js 18以上です。設定ファイルにTypeScriptを使う場合はNode.js 18.19以上が推奨されます。エディタはVisual Studio Codeなど任意のもので構いません。iOSアプリを作るならmacOSとXcode、Androidなら対応するSDKが必要になります。

### プロジェクトの作成

新規プロジェクトは、すべてを自動構成してくれる`create-rspeedy`で作成します。コマンドプロンプトまたはターミナルで次を実行します。

```
npm create rspeedy@latest
```

実行するとプロジェクト名・使用言語（TypeScriptまたはJavaScript）・追加ツールを対話形式で選べます。完了するとプロジェクト名のフォルダが生成されるので、移動して依存関係をインストールします。

```
cd <プロジェクト名>
npm install
```

### 開発サーバーの起動とプレビュー

開発用サーバーはRspeedyのコマンドで起動します。

```
rspeedy dev
```

本番ビルドは`rspeedy build`、ビルド結果のローカル確認は`rspeedy preview`です。作ったUIをすぐ確認したいときは、ネイティブのツールチェーンなしで動かせるサンドボックスアプリ「Lynx Explorer」を使うと手早くプレビューできます。学習やプロトタイピングに向いた入り口です。

### UIの記述イメージ

ReactLynxでは、Reactの関数コンポーネントとHooksを使い、`<view>`や`<text>`といったLynxの組み込み要素でUIを組み立てます。スタイルは実際のCSS構文で書ける点がWeb開発者にとって馴染みやすいところです。

```
import { useState } from '@lynx-js/react';

export function App() {
  const [count, setCount] = useState(0);
  return (
    <view>
      <text>タップ回数: {count}</text>
      <view bindtap={() => setCount(count + 1)}>
        <text>カウントを増やす</text>
      </view>
    </view>
  );
}
```

なお、`bindtap`などのイベントハンドラは、Lynxが自動的にバックグラウンドスレッドで実行します。そのため、ハンドラ内に多少重い処理を書いてもUIスレッドの描画を妨げにくい設計です。公式スターターでは、明示的に`'background only'`ディレクティブを付ける書き方も用意されています。上のコードは記述の雰囲気をつかむための最小例です。実際のAPIや要素名はバージョンで変わる可能性があるため、最新の仕様は公式ドキュメントで確認してください。

## React Native・Flutterとの違い

クロスプラットフォーム開発の主役であるReact Native・Flutterと比べると、Lynxの立ち位置がはっきりします。主要な観点を一覧で整理します。

| 項目      | Lynx          | React Native | Flutter      |
| ------- | ------------- | ------------ | ------------ |
| 開発元     | ByteDance     | Meta         | Google       |
| 主な言語    | JS/TS・CSS     | JavaScript   | Dart         |
| UIライブラリ | ReactLynx     | React        | 独自Widget     |
| 実行モデル   | デュアルスレッド      | JSI（ブリッジレス）  | メインIsolate中心 |
| ビルド基盤   | Rspeedy（Rust） | Metro        | Dartツール群     |
| 描画      | ネイティブ         | ネイティブ        | 独自描画         |
| OSS公開   | 2025年         | 2015年        | 2017年        |
| 成熟度     | 新興            | 成熟           | 成熟           |

### React Nativeとの違い

どちらもJavaScript／React系の知識を活かせる点は共通です。違いはアーキテクチャと成熟度にあります。React Nativeは長い歴史と巨大なコミュニティ、豊富なライブラリが強みですが、ブリッジ起因の最適化に手間がかかる場面があります。Lynxはスレッド分離でこの問題を構造的に避ける一方、周辺ライブラリやサードパーティ製プラグインはまだ少なめです。React NativeとFlutterのより詳しい比較は[React NativeとFlutterの違い: 使用言語と設計思想に注目した比較](/tech/details/3956/)でも扱っています。

### Flutterとの違い

Flutterは独自のレンダリングエンジンでネイティブ並みの描画性能を出しますが、Dartという専用言語の学習が必要です。LynxはWeb技術（React・CSS）をそのまま使えるため、Web／React経験者にとっては入りやすい構成です。描画方式も、独自描画のFlutterに対しLynxはネイティブにレンダリングする点が異なります。Flutterの最新動向は[Flutter 3.29の概要と開発者にとっての重要なポイント](/tech/details/7038/)を参照してください。

### どう選ぶか

選定の目安はプロジェクトの性質です。アニメーションが多くパフォーマンスが最優先、かつWeb／Reactの開発フローを活かしたい新規案件ならLynxが候補になります。逆に、成熟したツールと豊富な情報を頼りに素早く反復したいならReact Native、デザインの再現性とUIの作り込みを重視するならFlutterに分があります。React NativeとFlutterのどちらが向くかは、前掲のReact NativeとFlutterの違いの記事の使い分け基準が参考になります。

## Lynxの利点と課題：導入前に知っておくべきこと

新しい技術を採用するときは、得られるメリットと同時に、エコシステム未成熟などの具体的なリスクも導入前に把握しておく必要があります。

### 主な利点：性能・学習コスト・ビルド速度

最大の利点は、デュアルスレッド構成による高いパフォーマンスと滑らかなUIです。重い処理をバックグラウンドへ逃がすため、アニメーションの多い画面でもフレーム落ちが起きにくい。これに、Web技術とReactの知識をそのまま流用できる学習コストの低さと、Rust製ビルドツールRspeedyによる高速なビルドが加わります。TikTokという大規模アプリで揉まれてきた実績も、信頼性の裏付けになります。

### 導入前に考慮すべき課題

最大の課題はエコシステムの未成熟さです。公開から日が浅いため、利用できるライブラリやプラグインが限られ、日本語を含む情報も多くありません。開発中に問題が起きたときに参照できる事例が少なく、仕様変更（breaking changes）が入る可能性もあります。安定性と豊富な周辺ツールが要件の中心になる案件では、現時点ではReact NativeやFlutterのほうが安全な選択肢です。

### どんなプロジェクトに向くか

Lynxは、スタートアップのプロトタイプ、パフォーマンスがシビアな画面、Web資産を活かした新規アプリなどに向いています。まず小さく試し、エコシステムの成長に合わせて段階的に採用範囲を広げるアプローチが現実的です。エンタープライズの大規模・長期運用案件では、サポート体制やライブラリの充足度を確認してから判断する。

## よくある質問（FAQ）

### Lynxは無料で使えますか？

はい。LynxはApache 2.0ライセンスのオープンソースソフトウェアで、無料で利用・改変・商用利用が可能です。ソースコードはGitHubで公開されています。

### LynxとReact Nativeはどちらを選ぶべきですか？

パフォーマンスとWeb／Reactの開発フローを重視する新規案件ならLynx、成熟したエコシステムと豊富な情報を頼りに安定して開発したいならReact Nativeが無難です。要件と許容できるリスクで判断するのがよいでしょう。

### Lynxは本番環境で使えますか？

ByteDanceは社内のTikTok関連機能で本番運用してきた実績があります。ただし公開後の外部エコシステムはまだ若く、2026年初頭時点では実験・プロトタイプ・小規模アプリでの採用が中心です。大規模な本番採用は周辺ツールの充足度を確認したうえで検討してください。

### Lynxを学ぶのにReactの知識は必要ですか？

必須ではありませんが、現状で公式にサポートされているのはReactベースのReactLynxです。Reactの基本（コンポーネント・Hooks・JSX）を知っていると学習がスムーズです。

### テキストブラウザの「Lynx」とは違うものですか？

はい、まったくの別物です。本記事のLynxはByteDanceのアプリ開発フレームワークで、古くからあるコマンドラインのテキストWebブラウザ「Lynx」とは名前が同じだけで関係はありません。

## 関連記事

- [React NativeとFlutterの違い: 使用言語と設計思想に注目した比較](/tech/details/3956/)
- [Flutter 3.29の概要と開発者にとっての重要なポイント](/tech/details/7038/)
- [Expo UI（@expo/ui）とは｜SwiftUI・Jetpack Composeをネイティブ描画するReact Nativeコンポーネント](/tech/details/8060/)
- [Kotlin Multiplatform（KMP）とFlutter・React Native比較｜導入判断](/tech/details/3310/)

---

出典: [Lynxとは？ByteDance製クロスプラットフォーム開発フレームワークの特徴とReact Native・Flutterとの違い](<https://www.issoh.co.jp/tech/details/5715/>)（株式会社一創）
