diff --git "a/source/_posts/2025/20251016a_Vue.js\351\200\243\350\274\211_2025_\343\202\222\345\247\213\343\202\201\343\201\276\343\201\231.md" "b/source/_posts/2025/20251016a_Vue.js\351\200\243\350\274\211_2025_\343\202\222\345\247\213\343\202\201\343\201\276\343\201\231.md" index b7cf6f276ec..81f056958a2 100644 --- "a/source/_posts/2025/20251016a_Vue.js\351\200\243\350\274\211_2025_\343\202\222\345\247\213\343\202\201\343\201\276\343\201\231.md" +++ "b/source/_posts/2025/20251016a_Vue.js\351\200\243\350\274\211_2025_\343\202\222\345\247\213\343\202\201\343\201\276\343\201\231.md" @@ -23,7 +23,7 @@ lede: "Vue.jsの魅力と可能性をさらに深く探るべく、フューチ | 10/17(金) | 小杉山 護 | [Vitest Browser Mode x Vue (x Storybook x MSW) の話](/articles/20251017a/) | | 10/20(月) | 中村 立基 | [【入門】Vueで始めるチャート分析](/articles/20251020a/) | | 10/21(火) | 村田 靖拓 | TBD | -| 10/22(水) | 山本 竜玄 | Vueでモバイルアプリ開発 | +| 10/22(水) | 山本 竜玄 | [Vueでモバイルアプリ開発](/articles/20251022a/) | | 10/23(木) | 澁川 喜規 | DockerでVueアプリのビルド | | 10/24(金) | 松本 朝香 | 初心者がSPA(Single Page Application)を実装してみた | | 10/27(月) | 永井 優斗 | 脆弱なアプリを作って&使って学ぶ、Vue.jsのセキュリティ観点で気をつけたいポイント | diff --git "a/source/_posts/2025/20251022a_Vue.js\343\201\247\343\203\242\343\203\220\343\202\244\343\203\253\343\202\242\343\203\227\343\203\252\351\226\213\347\231\272\343\202\222\343\201\231\343\202\213\343\203\225\343\203\254\343\203\274\343\203\240\343\203\257\343\203\274\343\202\257\343\201\237\343\201\241(2025\347\247\213).md" "b/source/_posts/2025/20251022a_Vue.js\343\201\247\343\203\242\343\203\220\343\202\244\343\203\253\343\202\242\343\203\227\343\203\252\351\226\213\347\231\272\343\202\222\343\201\231\343\202\213\343\203\225\343\203\254\343\203\274\343\203\240\343\203\257\343\203\274\343\202\257\343\201\237\343\201\241(2025\347\247\213).md" new file mode 100644 index 00000000000..8a1fdf308f4 --- /dev/null +++ "b/source/_posts/2025/20251022a_Vue.js\343\201\247\343\203\242\343\203\220\343\202\244\343\203\253\343\202\242\343\203\227\343\203\252\351\226\213\347\231\272\343\202\222\343\201\231\343\202\213\343\203\225\343\203\254\343\203\274\343\203\240\343\203\257\343\203\274\343\202\257\343\201\237\343\201\241(2025\347\247\213).md" @@ -0,0 +1,693 @@ +--- +title: "Vue.jsでモバイルアプリ開発をするフレームワークたち(2025秋)" +date: 2025/10/22 00:00:00 +postid: a +tag: + - Vue.js +category: + - Mobile +thumbnail: /images/2025/20251022a/thumbnail.png +author: 山本竜玄 +lede: "2025年秋時点でのVue.jsモバイルアプリ開発フレームワークの状況を整理します。プロダクション環境で使える安定したフレームワークから、トレンド技術まで、調べた内容を紹介します。" +--- + + +この記事は、[Vue.js連載](/articles/20251016a/)の5本目です。 + +## はじめに + +こんにちは。山本竜玄です。 + +モバイルアプリ開発と聞いて、どのような技術を思い浮かべるでしょうか。iOSならSwift、AndroidならKotlinといったネイティブ開発や、FlutterやReact Nativeといったクロスプラットフォームフレームワークが主流です。実際、2025年のクロスプラットフォーム市場ではFlutterが42%、React Nativeが38%のシェアを占めています[^1]。 + +一方で、Vue.jsでもモバイルアプリ開発ができることをご存知でしょうか。Webフロントエンド開発で人気のVue.jsですが、モバイルアプリ開発のフレームワークも複数存在します。既存のVue.jsスキルを活かしてモバイルアプリを開発できるため、Vue.jsの経験者が多いチームでは選択肢となりえます。 + +本記事では、2025年秋時点でのVue.jsモバイルアプリ開発フレームワークの状況を整理します。プロダクション環境で使える安定したフレームワークから、トレンド技術まで、調べた内容を紹介します。 + +## Vue.jsモバイル開発の全体像 + +クロスプラットフォーム開発市場は急成長しています。2025年の市場規模は124.5億ドルで、2032年には369.2億ドルに達する見込みです[^2]。 + +この市場の中で、Vue.jsはWebフロントエンド開発の人気フレームワークとして、モバイル開発にも選択肢を提供しています。FlutterやReact Nativeと比較すると、Vue.jsモバイルフレームワークの市場シェアは小さいものの、既存のWeb開発者チームでの有識者が多い場合には、モバイルアプリ開発への敷居が低いことは大きなメリットです。 + +本記事では、Vue.jsでモバイルアプリを開発できるフレームワークを調査し、以下のように紹介しています。 + +### 主要フレームワーク(4つ) + +- [Ionic Vue](https://ionicframework.com/docs/vue/overview) +- [Capacitor](https://capacitorjs.com/) + Vue +- [NativeScript-Vue](https://nativescript-vue.org/) +- [Quasar Framework](https://quasar.dev/) + +これらは継続的にメンテナンスされており、GitHubでも活発な開発が確認できます。 + +### 中国市場向け(1つ) + +- [uni-app](https://en.uniapp.dcloud.io/) + +中国のDCloudが開発しており、WeChatなどのミニプログラムとネイティブアプリを同時展開できます。中国国内では900万人の開発者が利用しているらしいです[^4]。 + +### 新技術(1つ) + +- [Lynx](https://github.com/lynx-family/lynx) + Vue + +2025年3月にByteDanceが発表したフレームワークです。TikTokやCapCutの技術スタックから生まれました。Vue統合はプロトタイプ段階ですが、今後の動向は注目したいです。 + +### メンテナンス終了(3つ) + +- [Weex](https://github.com/alibaba/weex) +- [Vue Native](https://vue-native.io/) +- [Onsen UI](https://onsen.io/vue/) + +これらは開発が停止してます。 + +## 主要フレームワーク + +主要な4つのフレームワークを紹介します。これらはいずれもVue 3に対応しており、GitHubで継続的に開発されています。 + +### Ionic Vue + +Ionicは、Web技術でネイティブアプリを構築するフレームワークです。2013年にAngular向けにスタートし、現在はVue、React、Angularをサポートしています。 + +#### 基本情報 + +- 最新バージョン: v8.7.6(2025年10月) +- ライセンス: MIT +- GitHub: 52,101スター(2025年10月時点)[^5] +- npm: 週間18,911ダウンロード[^6] +- 公式サイト: https://ionicframework.com/docs/vue/overview + +#### 特徴 + +- iOS、Android、Webの3プラットフォーム対応 +- Capacitorによるネイティブ機能アクセス +- Vue 3とComposition API対応 +- Material DesignとiOSデザインの両対応 +- UIコンポーネントライブラリを提供 + +#### プロジェクト作成 + +Ionic CLIを使用することで、すぐに開発を開始できます。 + +```bash +npm install -g @ionic/cli +ionic start myApp tabs --type vue +cd myApp +ionic serve +``` + +#### Vue.jsとの違い + +Ionic Vueは、通常のVue.jsプロジェクトにモバイルアプリ特有の機能を追加します。主な違いは以下の3点です。 + +##### 1. IonicVueプラグインの追加(main.ts) + +```ts +import { createApp } from 'vue'; +import { IonicVue } from '@ionic/vue'; +import App from './App.vue'; +import router from './router'; + +/* Core CSS required for Ionic components to work properly */ +import '@ionic/vue/css/core.css'; + +/* Basic CSS for apps built with Ionic */ +import '@ionic/vue/css/normalize.css'; +import '@ionic/vue/css/structure.css'; +import '@ionic/vue/css/typography.css'; + +/* Theme variables */ +import './theme/variables.css'; + +const app = createApp(App) + .use(IonicVue) + .use(router); + +router.isReady().then(() => { + app.mount('#app'); +}); +``` + +##### 2. IonRouterOutletの使用(App.vue) + +`IonRouterOutlet`は、複数のページを同じアウトレット内にレンダリングし、ページ遷移アニメーションとライフサイクルを管理します。 + +```html + + + +``` + +##### 3. @ionic/vue-routerの使用(router/index.ts) + +Vue Routerをベースにしつつ、モバイルアプリ特有のページ遷移アニメーションとナビゲーションスタックを実現します。タブは個別のナビゲーションスタックとして扱われます。 + +```ts +import { createRouter, createWebHistory } from '@ionic/vue-router'; +import { RouteRecordRaw } from 'vue-router'; +import HomePage from '../views/HomePage.vue'; + +const routes: Array = [ + { + path: '/', + redirect: '/home', + }, + { + path: '/home', + name: 'Home', + component: HomePage, + }, +]; + +const router = createRouter({ + history: createWebHistory(import.meta.env.BASE_URL), + routes, +}); + +export default router; +``` + +#### ページコンポーネントの例 + +ページコンポーネントは`IonPage`をルート要素として使用します。以下はQuickstartで生成される`HomePage.vue`の例です。 + +```html + + + +``` + +`collapse="condense"`を使用すると、スクロール時に大きなタイトルが小さく折りたたまれるモバイル特有のUIを実現できます。 + +参考 + +- [Ionic Vue Quickstart](https://ionicframework.com/docs/vue/quickstart) +- [Ionic Vue Navigation](https://ionicframework.com/docs/vue/navigation) +- [Ionic Vue Overview](https://ionicframework.com/docs/vue/overview) + +### Capacitor + Vue + +Capacitorは、既存のWebアプリをモバイルアプリに変換するためのランタイムです。Ionic VueもCapacitorを使用していますが、Ionic Vueが専用UIコンポーネントライブラリとセットになっているのに対し、Capacitor単体では既存のVue.jsアプリをそのままモバイル化できる点が特徴です。 + +#### 基本情報 + +- 最新バージョン: v7.4.3(2025年10月) +- ライセンス: MIT +- GitHub: 14,200スター(2025年10月時点)[^7] +- npm: 週間800,692ダウンロード[^8] +- 公式サイト: https://capacitorjs.com/ + +#### 特徴 + +- iOS、Android、Web、PWA対応 +- 既存のVue.jsアプリをそのままモバイル化可能 +- 35以上の公式プラグイン(Camera、Geolocation、Filesystemなど) +- Vite、Vue CLI、Nuxtなど主要ビルドツールに対応 +- ネイティブコードとの共存が可能 + +#### プロジェクトへの追加 + +既存のVue.jsプロジェクトにCapacitorを追加する手順です。 + +```bash +npm install @capacitor/core @capacitor/cli +npx cap init [name] [id] --web-dir=dist +``` + +ビルド後、プラットフォームを追加します。 + +```bash +npm run build +npm i @capacitor/ios @capacitor/android +npx cap add android +npx cap add ios +``` + +#### Vue.jsでのネイティブAPI呼び出し + +CapacitorのAPIは、Vue.jsのコンポーネント内でJavaScriptの標準的な非同期関数として呼び出せます。以下はGeolocation APIの例です。 + +```ts +import { Geolocation } from '@capacitor/geolocation'; + +const getCurrentPosition = async () => { + const position = await Geolocation.getCurrentPosition(); + console.log('Current position:', position); +}; +``` + +Camera APIを使った実装例です。 + +```html + + + +``` + +参考 + +- [Capacitor Documentation](https://capacitorjs.com/docs) +- [Using Capacitor with Vue](https://capacitorjs.com/solution/vue) +- [Capacitor APIs](https://capacitorjs.com/docs/apis) + +### NativeScript-Vue + +NativeScript-Vueは、WebViewを使用せず、真のネイティブUIコンポーネントでアプリを構築するフレームワークです。Vueのテンプレートは、iOSでは`UILabel`、Androidでは`android.widget.TextView`といったネイティブコンポーネントに直接レンダリングされます。 + +#### 基本情報 + +- 最新バージョン: v3.0.2(2025年10月17日) +- ライセンス: MIT +- GitHub: 5,900スター(2025年10月時点)[^9] +- npm: 週間2,338ダウンロード[^10] +- 公式サイト: https://nativescript-vue.org/ + +#### 特徴 + +- iOS、Android対応 +- WebViewを使用しない真のネイティブUI +- Vue 3完全対応(Options API、Composition API両対応) +- JavaScriptから全てのネイティブAPIに直接アクセス可能 +- V8エンジンで実行される埋め込みJavaScript環境 +- TypeScript対応の改善とモダンなプラグインシステム + +#### プロジェクト作成 + +NativeScript CLIを使用してプロジェクトを作成します。 + +```bash +npm install -g nativescript +ns create myAwesomeApp --vue +cd myAwesomeApp +ns run ios +# または +ns run android +``` + +> **注**: 2025年10月時点では`--template @nativescript-vue/template-blank@latest`の使用時にバージョン8.0.0が見つからない場合があります。その場合は`--vue`フラグを使用してください。 + +#### ネイティブUIコンポーネントの使用 + +NativeScript-Vueでは、Vueのテンプレート内でネイティブUIコンポーネントを直接使用します。以下はリスト表示の例です。 + +```html + + + +``` + +ここで使用されているコンポーネントは以下の通りです。 + +- `ActionBar`: ページヘッダー +- `ListView`: スクロール可能なリスト +- `GridLayout`: グリッドレイアウトコンテナ +- `Image`: 画像表示 +- `Label`: テキストラベル + +これらは全てネイティブUIコンポーネントとしてレンダリングされ、WebViewのオーバーヘッドがありません。 + +参考 + +- [NativeScript-Vue Getting Started](https://nativescript-vue.org/docs/getting-started/installation) +- [Build a master-detail app with Vue](https://docs.nativescript.org/tutorials/build-a-master-detail-app-with-vue) + +### Quasar Framework + +Quasarは、単一コードベースで複数プラットフォームに展開できるVue.jsフレームワークです。Web、モバイル、デスクトップアプリを同時に開発できる点が特徴で、エンタープライズ向けのフルスタックソリューションを提供します。 + +#### 基本情報 + +- 最新バージョン: v2.18.5(2025年10月) +- ライセンス: MIT +- GitHub: 26,800スター(2025年10月時点)[^11] +- npm: 週間156,502ダウンロード[^12] +- 公式サイト: https://quasar.dev/ + +#### 特徴 + +- Web、iOS、Android、デスクトップ(Electron)、ブラウザ拡張機能対応 +- 70以上のMaterial Design準拠のUIコンポーネント +- SSR、PWA、SPAに対応 +- Capacitor/Cordovaによるモバイルアプリ化 +- Vue 3とComposition API完全対応 +- Viteベースの高速開発環境 +- CLIツールによる統合開発体験 + +#### プロジェクト作成 + +Quasar CLIを使用することで、対話的にプロジェクトを作成できます。 + +```bash +npm create quasar +# または +yarn create quasar +``` + +対話形式で以下を選択します。 + +- App with Quasar CLI +- Quasar v2 +- Vite(推奨)またはWebpack + +グローバルCLIをインストールすると、コマンドを直接実行できます。 + +```bash +npm install -g @quasar/cli +quasar dev +quasar build +``` + +> **補足**: 対話形式を避けたい場合や、既存のVue 3プロジェクトにQuasarを追加する場合は、以下の手動セットアップも可能です。 +> +> ```bash +> # Vue 3プロジェクトを作成 +> npm create vue@latest my-app +> cd my-app +> npm install +> +> # Quasarをインストール +> npm install quasar @quasar/extras +> npm install -D @quasar/vite-plugin sass +> +> # vite.config.tsとmain.tsを設定(詳細は公式ドキュメント参照) +> ``` + +#### モバイルアプリ化 + +QuasarはCapacitorまたはCordovaを使用してモバイルアプリに変換します。Capacitorを使用する例です。 + +```bash +quasar mode add capacitor +quasar dev -m capacitor -T android +quasar dev -m capacitor -T ios +``` + +Capacitorモードでは、Webアプリとして開発したコードがそのままモバイルアプリになります。 + +#### コンポーネントの使用例 + +Quasarのコンポーネントは、自動インポートに対応しているため、設定なしで使用できます。以下はカードとボタンを使用した例です。 + +```html + + + +``` + +#### レイアウトシステム + +QuasarはFlexboxベースの12ポイントグリッドシステムを提供します。レスポンシブデザインに対応し、画面サイズに応じてレイアウトを自動調整できます。 + +```html + +``` + +このコードは、小さい画面では縦に並び、中サイズ画面では2列、大きい画面では3列で表示されます。 + +参考: +- [Quasar Framework](https://quasar.dev/) +- [Quasar CLI](https://quasar.dev/start/quasar-cli) +- [Developing Capacitor Apps](https://quasar.dev/quasar-cli-vite/developing-capacitor-apps/introduction) +- [Flex Grid](https://quasar.dev/layout/grid/introduction-to-flexbox) + +## uni-app - 中国市場向けフレームワーク + +### uni-app + +uni-appは、中国のDCloudが開発するクロスプラットフォームフレームワークです。ネイティブアプリに加えて、WeChatやAlipayなどのミニプログラム(小程序)に対応している点が最大の特徴です。 + +#### 基本情報 + +- 開発元: DCloud +- ライセンス: Apache 2.0 +- GitHub: 40,300スター(2025年1月時点)[^13] +- 開発者数: 900万人以上 +- 月間ユーザー数: 12億人のモバイルユーザー[^14] +- 公式サイト: https://en.uniapp.dcloud.io/ + +#### 特徴 + +- iOS、Android、HarmonyOS Next対応 +- Web(レスポンシブ)対応 +- ミニプログラム対応(WeChat、Alipay、Baidu、Douyin、Larkなど) +- Vue.js構文ベース +- WeChatミニプログラムAPIとの互換性 +- 条件付きコンパイルによるプラットフォーム別対応 +- ネイティブレンダリング対応 + +#### なぜ中国で人気なのか + +中国市場では、WeChatやAlipayなどのスーパーアプリ内で動作するミニプログラムが普及しています。uni-appは、ミニプログラムとネイティブアプリを単一コードベースで開発できるため、中国市場向けアプリ開発で広く採用されているようです。 + +参考 + +- [uni-app Official Website](https://en.uniapp.dcloud.io/) +- [uni-app History](https://en.uniapp.dcloud.io/history.html) + +## Lynx + Vue + +### Lynx + +Lynxは、ByteDanceが2025年3月5日にオープンソース化したクロスプラットフォームフレームワークです。TikTokのSearch、Shop、Live機能や、TikTok Studioアプリの開発に使用されている実績があり、ByteDanceの技術スタックから生まれた注目のフレームワークです。 + +#### 基本情報 + +- 開発元: ByteDance +- 発表日: 2025年3月5日 +- GitHub: 13,300スター(2025年10月時点)[^15] +- 最新バージョン: v3.4.2(2025年10月9日) +- コミット数: 2,104件 +- 貢献者: 82人 +- 公式サイト: https://lynxjs.org/ + +#### 特徴 + +- iOS、Android、Web対応(OpenHarmony、macOS、Windowsは開発中) +- Rust製の高速レンダリングエンジン +- デュアルスレッドアーキテクチャによる高性能 +- フレームワーク非依存設計(React、Vue、Svelteなどに対応) +- PrimJS(QuickJSベース)によるJavaScript実行環境 +- 初回フレーム描画の高速化(2〜4倍高速と報告) + +#### Vue統合の状況 + +Lynxはフレームワーク非依存の設計で、現在はReactLynxが公式に提供されています。ByteDance社内では、Lynxの約半分のプロジェクトでReact以外のフレームワーク(VueやSvelte)が使用されています[^16]。 + +Vue.jsの創設者であるEvan Youは、Xでの投稿で以下のように述べ、Vue統合への支援を表明しています[^17]。 + +https://x.com/youyuxi/status/1898663514581168173 + +Lynx発表から、VueコミュニティのメンバーであるRahul Vashishthaがプロトタイプ開発を開始しました。2025年10月時点では、Vue統合はまだプロトタイプ段階であり、正式なリリースには至っていません。 + +#### 2025年のロードマップ + +Lynxチームは2025年に5つの安定版リリースを計画しています[^18]。 + +- v3.2(2025年4月): リリース済み +- v3.3(2025年6月): リリース済み +- v3.4(2025年10月): リリース済み、OpenHarmonyサポート +- v3.5(2025年10月): macOS、Windowsサポート +- v3.6(2025年12月): 予定 + +機能面では、input要素、ViewPager、Swiper、SVGサポート、Canvas API、Lottieアニメーション、通知、位置情報などの追加が計画されています。 + +#### 現状の制約 + +2025年10月時点で、Lynxには以下の制約があります。 + +- エコシステムがまだ未成熟 +- サードパーティライブラリの不足 +- ドキュメントとチュートリアルが限定的 +- 標準HTML要素(button、input)非対応(代わりに``, ``, ``などの独自要素を使用) +- 既存ネイティブアプリへの統合が前提(スタンドアロンビルド非対応) + +エコシステムがまだ未成熟であり、開発チームは既存アプリへの段階的な統合を推奨しています。新規アプリをゼロから開発する用途には、エコシステムの成熟を待つことが推奨されます[^19]。 + +ByteDanceの技術力と投資規模を考えると、Vue.jsとモバイルアプリの目線でもLynxの将来性は注目に値します。 + +## メンテナンス終了したフレームワーク + +かつて使われていたフレームワークですが、現在は開発が停止しています。新規プロジェクトでの採用は推奨しません。 + +### Weex(開発終了) + +Weexは、Alibabaが開発したクロスプラットフォームフレームワークで、VueとRaxの構文でモバイルアプリを構築できました。2016年にオープンソース化され、2017年からApache Incubatorプロジェクトとして開発されていましたが、2021年5月にApacheから引退し、開発が事実上停止しています[^21]。 + +- GitHub: 13,800スター(アーカイブ化) +- 最終コミット: 4年前(2021年頃) +- 現状: Apache incubator-weexリポジトリはアーカイブ化 + +### Vue Native(非推奨) + +Vue Nativeは、React Native上でVue.js構文を使用できるようにしたフレームワークです。Vue.jsのコードをReact Nativeコードに変換する仕組みでしたが、2021年11月に正式に非推奨化されました[^22]。 + +- 開発元: GeekyAnts +- 非推奨化: 2021年11月 +- 理由: メンテナンス継続が困難 + +### Onsen UI(限定的メンテナンス) + +Onsen UIは、PWAとハイブリッドアプリ向けのUIフレームワークで、Vue、React、Angularのバインディングを提供しています。Web Componentsベースで設計されており、Cordovaと組み合わせて使用します[^23]。 + +- GitHub: OnsenUI/OnsenUI(最終コミット約1年前) +- Vue 3対応: 公式ドキュメントあり +- 現状: 限定的なメンテナンス + +メインリポジトリは2023〜2024年頃まで更新がありましたが、活発な開発は行われていません。 + +## まとめ + +本記事では、2025年秋時点でのVue.jsモバイルアプリ開発フレームワークの状況を調べて整理しました。 + +Vue.jsでのモバイルアプリ開発には、想像以上に豊富な選択肢があります。Ionic Vue、Capacitor、NativeScript-Vue、Quasarの4つの主要フレームワークは、いずれも継続的にメンテナンスされており、プロダクション環境での利用に適しています。中国市場向けにはuni-app、最近のトレンドや将来性としてはLynxという選択肢も存在します。 + +FlutterやReact Nativeと比較すると市場シェアは小さいものの、既存のVue.jsチームがモバイルアプリ開発に参入する際の敷居は低く、学習コストを抑えられる点が大きなメリットです。 + +2024〜2025年のVue.jsエコシステムの進化(Vue 3.5のメモリ削減とパフォーマンス改善、Vite 6.0のリリース、Nuxt 4の正式版)は、モバイルアプリ開発にも好影響を与えています。特にVue 3.5のメモリ使用量56%削減と配列操作の高速化は、リソース制約のあるモバイル環境で効果を発揮します。 + +Vue.jsモバイルアプリ開発の選択肢は今後も拡大していくでしょう。特にLynxのような新技術や、PWA/ハイブリッドアプローチの進化に注目です。 + +## 参考リソース + +[^1]: [Flutter vs React Native: Full Comparison for Developers in 2025](https://crustlab.com/blog/flutter-vs-react-native/) +[^2]: [Cross-Platform App Development Framework Market Size & Share, 2032](https://www.persistencemarketresearch.com/market-research/cross-platform-app-development-framework-market.asp) +[^3]: [Cross-Platform App Development Statistics 2025 | Key Insights for Business Leaders](https://ripenapps.com/blog/cross-platform-app-development-statistics/) +[^4]: [uni-app - Framework](https://en.uniapp.dcloud.io/history.html) +[^5]: [ionic-team/ionic-framework - GitHub](https://github.com/ionic-team/ionic-framework) +[^6]: [@ionic/vue - npm Package Health Analysis | Snyk](https://snyk.io/advisor/npm-package/@ionic/vue) +[^7]: [ionic-team/capacitor - GitHub](https://github.com/ionic-team/capacitor) +[^8]: [npm downloads for @capacitor/core](https://api.npmjs.org/downloads/point/last-week/@capacitor/core) +[^9]: [nativescript-vue/nativescript-vue - GitHub](https://github.com/nativescript-vue/nativescript-vue) +[^10]: [npm downloads for nativescript-vue](https://api.npmjs.org/downloads/point/last-week/nativescript-vue) +[^11]: [quasarframework/quasar - GitHub](https://github.com/quasarframework/quasar) +[^12]: [quasar - npm trends](https://npmtrends.com/quasar) +[^13]: [dcloudio/uni-app - GitHub](https://github.com/dcloudio/uni-app) +[^14]: [uni-app Official Website](https://en.uniapp.dcloud.io/) +[^15]: [lynx-family/lynx - GitHub](https://github.com/lynx-family/lynx) +[^16]: [TikTok's Native Cross-Platform UI Framework Lynx Goes Open Source - InfoQ](https://www.infoq.com/news/2025/03/tiktok-lynx-cross-platform-apps/) +[^17]: [Vue Native? Vue + Lynx | Vue Mastery](https://www.vuemastery.com/blog/vue-native-vue-lynx/) +[^18]: [Lynx Roadmap 2025](https://lynxjs.org/blog/lynx-open-source-roadmap-2025) +[^19]: [Lynx: Unlock Native for More](https://lynxjs.org/blog/lynx-unlock-native-for-more) +[^20]: [ByteDance launches Lynx, a React Native killer from TikTok's arsenal - Tech Startups](https://techstartups.com/2025/03/06/bytedance-launches-lynx-a-react-native-killer-built-from-tiktoks-tech-stack/) +[^21]: [apache/incubator-weex - GitHub](https://github.com/apache/incubator-weex) +[^22]: [Deprecation notice - GeekyAnts/vue-native-core](https://github.com/GeekyAnts/vue-native-core/discussions/342) +[^23]: [Onsen UI - Vue components](https://onsen.io/vue/) diff --git a/source/images/2025/20251022a/image.png b/source/images/2025/20251022a/image.png new file mode 100644 index 00000000000..49abe9f3c60 Binary files /dev/null and b/source/images/2025/20251022a/image.png differ diff --git a/source/images/2025/20251022a/thumbnail.png b/source/images/2025/20251022a/thumbnail.png new file mode 100644 index 00000000000..ab632509bf3 Binary files /dev/null and b/source/images/2025/20251022a/thumbnail.png differ