LingvanoがExpoで手話教育を400万人にスケールする方法
Users • React Native • Development • December 2, 2025 • 8 minutes read
Christof Thalmann(ゲスト著者)
Lisa Weilguni(ゲスト著者)
Niklas Machacek(ゲスト著者)
Lingvanoは没入型レッスンとリアルタイム練習によって何百万人にも手話を教えています。ここでは、小規模チームがどのようにしてExpo上でクロスプラットフォームの学習アプリを構築・スケールしているかを紹介します。
この記事はLingvanoアプリの開発チームによるゲスト投稿です。彼らは2025年のExpo App Awardsで「Community's Choice」賞を受賞しました。
概要
Lingvanoはろう者の講師による動画レッスンを通じて、何百万もの人々に手話を教えています。ミッションは言語の壁を壊し、ろう者と聞こえる人々の間に橋を架けること。アプリはインタラクティブなレッスン、ろう文化への理解、コミュニティイベントを組み合わせ、手話教育を誰にとってもアクセスしやすく、楽しいものにします。
現在提供している手話は次の3つです:
- American Sign Language (ASL)
- British Sign Language (BSL)
- Austrian Sign Language (ÖGS)
この記事では、小規模チームがExpoだけでクロスプラットフォームの学習体験を構築・スケールする方法を説明します。動画レッスンの扱い方、カスタムネイティブモジュールで実現したリアルタイムのフィンガースペリング認識、そしてiOS/Android/Web間で開発を円滑に保つワークフローを取り上げます。これらの技術的決定がどのようにして400万人以上の学習者にとってシームレスで魅力的な学習を可能にしているかも示します。
課題
世界には15億人の聴覚障害を持つ人々がいます。Lingvanoの目標はろう者と聞こえる人々のコミュニケーションを障壁なしにすること。このミッションを達成するには、ろう者教育者による高品質な指導、ゲーム化された魅力的なシステム、そしてiOS、Android、Webで動作するシームレスなクロスプラットフォーム体験が必要でした。
私たちの課題は、動画レッスン、ゲーム性、AI駆動の練習ツールを扱えるフレームワークを見つけ、個人学習者、学校、大学、B2Bクライアント向けに効果的にスケールできるようにすること。開発や保守の負担を増やさずにそれを実現する必要がありました。
解決策:スケール学習の基盤としてのExpo
2022年初頭、私たちはbare React NativeからExpoへ移行しました。これにより、より高速で安定した開発ワークフローと、すべてのプラットフォームへのデプロイの簡素化が実現しました。
主な技術コンポーネント:
- expo-router — レッスンアクセスと進捗追跡のための安定したナビゲーションと堅牢なディープリンクロジックを提供
- TurboModule(カスタムネイティブコード) — LingvanoのリアルタイムフィンガースペリングAI認識トレーナーを動かす(現在ベータ)
- expo-notifications — 学習リマインダーを届け、定着とエンゲージメントを高める
- expo-updates — 重要なバグ修正や機能ロールアウトのための優先的なOTA更新を可能にする
- EAS Build lifecycle hooks — Maestroを使ったネイティブE2Eテストスイートを実行し、エラーを自動でタスク管理ツールに報告
- Check out this article to find out how to set up a fully automated native E2E suite with your Expo app.
- expo-sharing — 学習者が達成、連続日数(streaks)、興味深い発見をコミュニティと共有できるようにする
その他多数。合計で28のExpoライブラリがコア機能を支えています。しかし真の力はライブラリそのものだけではありません。Expoのよく設計されたインフラが、ビジュアル回帰テスト、Playwright E2Eカバレッジ、コンポーネント開発のためのStorybook、あるいは重要閾値到達時にメッセージを発するエラートラッキングシステムなど、ツールチェーン全体へのクリーンな統合ポイントを提供する点にあります。
Expoのスケーラビリティは単に時間を節約するだけでなく、継続的なイノベーションを根本的に可能にします。
Expoなら制約なし
必要なツールが存在しないとき、Expoは自分で作る自由を与えてくれます。リアルタイムのフィンガースペリングAI認識トレーナーを構築する際、GoogleのMediaPipe Gesture Recognitionフレームワークと連携する必要がありました。問題は、これをサポートするExpoモジュールが存在しなかったこと、つまり既存のReact-Nativeパッケージも無かったことです。
ハイブリッド開発の批判者は「行き詰まり」や「ejectする時だ」と叫ぶかもしれません。しかしExpoなら、マネージドワークフローの中でカスタムネイティブソリューションを構築する柔軟性があります。TurboModuleを作ることで、SwiftとKotlinのカスタムネイティブ実装を用意し、フレームを入力として受け取り、GoogleのMediaPipeでジェスチャー候補をスキャンし、そのフレームで最も可能性の高いジェスチャーをレスポンスとして返すことができました。
セットアップは非常にシンプルでした。
Set up the TurboModule
Code Copy
npx create - react - native - library@latest < your - custom - module >
このコマンドはプロジェクトルートに module/your-custom-module フォルダを作成し、その中に ios と android フォルダを生成します。どちらにもTurboModuleの動作やJavaScriptレイヤーへのブリッジ方法を示すボイラープレートコードが入っています。私たちが行ったのは、ios と android フォルダに独自のネイティブ実装を入れることだけです。
ベータテストを抜けたら実装の詳細を共有するかもしれません。開発ブログをチェックしてください。
パッケージ.jsonではネイティブモジュールが自動的に接続されます。望むならネイティブモジュールを任意のパッケージマネージャに公開することも簡単です。
Code Copy
"your-custom-module" : "link:./modules/your-custom-module",
それだけです。Xcodeプロジェクトを維持する必要はありません。AndroidとiOSでビルドが分岐することもありません。モジュールは毎回の eas build で自動的に再ビルドされ、JavaScriptレイヤーの更新が必要な場合はOTAが対応します。
結果として、JavaScriptレイヤーでフレームを取得し、それをカスタムネイティブモジュールに送ると、ユーザーがその瞬間に実際に行っているサイン(手話)を返してくれます。ここにExpoの真の強みがあります。既存のパッケージエコシステムを超える要件が出てきても、ejectするか機能を妥協するかを選ばされることはありません。マネージドワークフローはあなたとともにスケールします。Expoがビルドの複雑さを処理する間、あなたはアプリをユニークにする部分の構築に集中できます。
開発者体験と継続的成長
私たちはExpo SDK 44で始め、現在はSDK 54に到達しています—これは単なるアップグレード経路以上のものです。3年以上にわたる継続的な反復とイノベーションの旅であり、各リリースはパフォーマンス改善、安定性向上、新しい開発者向けの喜びをもたらしました。
EAS Buildとexpo-updatesはCI/CDを合理化し、スケールに耐える信頼性を確保してくれるため、私たちは学習を楽しくする機能に集中できます。優れた開発者体験は優れたユーザー体験を可能にします。
プラットフォーム横断の実績
私たちの取り組みの影響はユーザーのエンゲージメント、評価、クロスプラットフォームの一貫性に表れています:
- 世界で400万人のユーザー
- iOSで4.9(111,000件の評価)
- Androidで4.8(63,000件の評価)
- 単一の統一コードベースからiOS、Android、Webをサポート
- OTA経由でのA/Bテスト、新機能、重要なアップデートの継続的提供
今後の展望
現在、私たちは新しいアーキテクチャ上で稼働しており、最新のExpo SDK 54へアップグレードしています。これによりExpoとの「10バージョン記念日」を迎えました。私たちは引き続きイノベーションを続け、洗練し、成長していきます — 小さな情熱的なチームでも世界をよりつながったものにできることを証明しています。
アプリに興味がありますか?以下からチェックできます:web、iOS、Android。
リンクと参考
- Apple Developer Story
- Lingvano’s Developer Blog
- Instagram: @lingvano