これはFERASETのCTO兼共同創業者であるSaid Kabanからのゲスト投稿です。
2022年後半、私が知っていたほとんどのモバイルエンジニアはExpoをプロトタイピングツールだと考えていました。デモやハッカソンで使うものであり、本当のものを構築したいときはReact Native CLIに切り替えるというものです。特に私たちが拠点を置くトルコではこれがデフォルトの見方でした。私たちは異なる見方をしていました。Expoがどこに向かっているのかを見て、ReactエコシステムにおけるNext.jsと同じ軌跡を見ました。意見を持った、管理されたレイヤーで、あなたを制限しませんが、あなたをはるかに速くします。だから私たちは全力を尽くしました。今日、FERASETはイスタンブールの約40人のAIコンシューマーアプリスタジオです。米国を含む複数の国でApp Storeで#1に達しました。私たちのモバイルスタック全体はExpo上で実行されています。初日からそうです。ここでそれがどのように展開されたかを説明します。
正しい時期に、正しい賭けで始まった
FERASETはAIブームが起きたちょうどその時に始まりました。ChatGPTが発表されたばかりでした。DALL-Eが見出しを飾っていました。Midjourneyはいたるところにありました。しかし、それらはすべてWebプロダクトでした。AIで作成したい場合、デスクトップまたはモバイルブラウザにいました。誰もAI用の優れたネイティブモバイル体験をまだ構築していなかったし、ユーザーが実際にいるのはそこだと知っていました。だから速度が唯一重要なことでした。磨かれたAIアプリをストアに最初に出すチームが勝つでしょう。1週間の遅延は地盤を失うことを意味しました。小さなチームが両方のプラットフォームに速く出荷でき、ネイティブツールチェーンの問題に時間を無駄にしないフレームワークが必要でした。Expoがそれを与えてくれました。
私たちの最初のアプリであるMusic AIは、最初のコード行からApp Storeでライブになるまで4週間で完成しました。完全なMVP、両方のプラットフォーム、提出と承認。これはExpoが可能にした速度の種類であり、市場が混雑する前に動くことができたのはこれです。
最初のアプリが世界で#1に達した
最初のアプリはMusic AIで、AIカバー生成アプリでした。異なる声でAIカバーを作成したり、自分自身や愛する人のカスタム音声をトレーニングして歌わせたりできました。それは速く離陸しました。FERASETアプリMusic AIは世界最高のAIカバーアプリになりました。App Storeチャートでスポティファイを上回り、米国と主要なヨーロッパ市場を含む複数の国で世界的に#1の位置に達しました。
これは私たちに2つのことを確認させました。モバイルAI市場は実在し、巨大だということ。そしてExpoは絶対に本番環境で大規模に対応できるということです。これはプロトタイピングツールではありませんでした。これは会社全体を構築するフレームワークでした。
そこから、次のステップは明らかに感じられました。AIコンシューマースペースは単一アプリ市場ではありません。異なるユーザーは異なる体験を望んでいます:画像生成、ビデオ、特定のクリエイティブツール。1つのアプリがそれらすべてにうまく対応することはできません。だからMusic AIにすべてを詰め込もうとする代わりに、私たちはFERASETをスタジオとして実行することにしました。複数のアプリ、それぞれが特定のユースケースに焦点を当て、すべてExpo上の同じコアチームによって構築されています。
Expoで構築するものの実例
Expo上で構築することが実際に私たちにとってどのように見えるかを示す最良の方法は、特定の例を通じてです:expo-ai-kit。
expo-ai-kit:Expoアプリ用のオンデバイスAI
私たちのすべてのアプリは、プロンプト改善、コンテンツガイドラインチェック、テキスト生成などのタスクに言語モデルを使用しています。最先端のモデルを必要としないがLLMが必要なタスク。長い間、それはクラウドプロバイダーへのすべてのリクエストに対するAPI呼び出しを意味していました。それは機能しましたが、小さなオンデバイスモデルが十分に処理できるタスクの推論に対して支払っていて、ユーザープロンプトは必要のないときにデバイスを離れていました。
Apple Foundation ModelsはiOS上で、Google ML KitのPrompt APIはAndroid上で、その方程式を変えました。私たちが必要とするタスクの種類については、これらのオンデバイスモデルは十分以上に優れています。そして、それらは無料です。APIキーなし、トークンごとのコストなし、ネットワーク依存なし。
問題は、Expoからそれらを使用するクリーンな方法がなかったことです。だから私たちはexpo-ai-kitを構築しました。これは、両方のプラットフォーム上のオンデバイス言語モデル用のシンプルなJavaScript APIを提供するオープンソースのExpoモジュールです。
これがどのように見えるかです:
import { isAvailable, sendMessage } from 'expo-ai-kit';
const available = await isAvailable();
if (available) {
const response = await sendMessage(
[{ role: 'user', content: 'Refine this prompt for image generation: a cat sitting' }],
{ systemPrompt: 'You are a prompt engineering assistant.' }
);
console.log(response.text);
}
プログレッシブテキスト表示のためのストリーミングサポートもあります:
import { streamMessage } from 'expo-ai-kit';
const { promise, stop } = streamMessage(
[{ role: 'user', content: 'Check this text against content guidelines...' }],
(event) => {
setResponseText(event.accumulatedText);
},
{ systemPrompt: 'You are a content moderation assistant.' }
);
単にnpm install expo-ai-kitを実行し、configプラグインを追加すれば、オンデバイス推論が実行されます。このライブラリは現在、npmで毎週数万回のダウンロードを取得しています。
私たちにとって、以前はすべてのリクエストでお金がかかっていたタスクは、デバイス上で無料で実行されるようになりました。シンプルなタスクの応答時間は、ネットワークラウンドトリップがないため低下しました。そしてオンデバイスモデルが新しいチップ世代ごとにますます能力を持つようになるにつれて、クラウドからオフロードできるタスクの範囲は増え続けるでしょう。
私たちはそれをオープンソース化しました。なぜなら、他の開発者も同じ問題に直面するだろうと考えたからです。そしてそれを構築することは、私たちが長い間経験していたことを強化しました:expo-ai-kitは実際のSwiftおよびKotlinコードで、プラットフォームレベルのAIフレームワークと通信し、Expoのモジュールシステムを通じて統合され、configプラグインとして配布されます。エジェクションなし、ベアワークフローなし。必要なときにネイティブに深く掘り下げることができ、それでも管理されたエコシステムに留まることができます。
最も難しい部分はテクノロジーではなかった
私たちが直面した最大の課題はトルコの開発者エコシステムでした。私たちが始めたとき、ここのほとんどのモバイルエンジニアは他のフレームワークの方が快適でした。Expoは本当に本番アプリのレーダーにはありませんでしたし、公平に言えば、当時のエコシステムがどれほど若かったかを考えると、それは合理的な見方でした。
経験豊富なエンジニアに真剣に検討させることは、ある程度の説得が必要でした。初期の採用は難しかったです。Expoエンジニアのリストを投稿して、適格な候補者の山を得ることはできませんでした。それに開かれているエンジニアを見つけ、Expoが正しい選択である理由について彼らを教育し、結果を通じてそれを証明する必要がありました。
私たちはトルコでReact NativeおよびExpoコミュニティを構築するのに時間を費やしました。私たちが学んでいることを共有し、Reactエコシステムがモバイルを勝つのと同じ方法でモバイルを勝つだろうという主張をしました。市場が追いつくのを待つのではなく、トルコでそれを先導したかったのです。
それは機能しました。しかし、コードを書くこととは何の関係もない努力が必要でした。
Expoについて私たちを驚かせたこと
大規模でのExpoの管理されたワークフローの安定性が最大の驚きでした。私たちはCNGを使用しており、非常に速く出荷し、常に異なるビルドを作成するため、これは大いに役立ちます:dev、preview、prod。これらのビルドを作成し、テストと提出のために製品チームに配布する容易さは、驚くほどスムーズでした。
小さなチームの場合、管理されたワークフローはトレーニングホイールのように感じます。あなたはそれを成長させると仮定します。私たちはそうしていません。チームはより大きく、アプリはより複雑で、ユーザーベースは数百万人で、私たちはまだ完全に管理されています。利点はあなたのアプリとあなたのチームでスケールします。
SDKバージョン間のアップグレードパスも予想より滑らかでした。単一のアプリをアップグレードすることは1つのことです。コードを共有する複数のアプリをアップグレードすることは調整の課題です。Expoのアップグレードツールと移行ガイドは、これが可能な限り痛みが少なくなるようにします。そして正直に言うと、Expoチームからのイノベーションのペースは私たちを感動させ続けています。彼らは一貫して曲線の先にいました。ファイルベースのルーティングはその良い例でした。彼らは開発者体験がどこに向かっているのかを見て、早期にそこに到達しました。
次は何ですか?
エージェンティックコーディングの時代が公式に引き継いだので、Expoもその前線を押しています。私たちはExpo Agentの公式ローンチを熱心に期待しており、それが私たちのクライアント側の開発プロセスを継続して強化し、加速させると信じています。すでに使用しているフレームワークに直接組み込まれたAI支援開発のアイデアは、私たちが最初の場所でExpoに賭けた前向きな動きの正確な種類です。
私たちの側では、私たちは製品ポートフォリオを拡大し続けています。AIコンシューマースペースはまだ速く成長しており、ビデオ生成とモバイル上のリアルタイムAI体験に大きな機会があると見ています。すべてExpo上に構築されます。
コンシューマーアプリの構築を考えている小さなチームがどこかにいるなら、ここで私が言うことは:あなたのスタックを過度に考えないでください。Expoを選択し、出荷を開始し、製品にエネルギーを集中させてください。フレームワークはあなたと一緒にスケールします。私たちのはイスタンブールの小さなチームから世界的に#1に達したアプリまでスケールしました。そして私たちはまだ始まったばかりです。
FERASETはイスタンブールに拠点を置くAIコンシューマーアプリスタジオです。私たちのアプリはApp StoreとGoogle Playで利用可能です。AIアプリスタジオとモバイルゲームスタジオの間で標準的な慣行であるように、私たちのアプリは様々な運用目的のために異なる開発者アカウントの下で公開されているため、それらすべてをFERASETという名前で見つけることはできません。