0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

個人開発で Next.js と React Native を両方使ってみた技術比較

0
Posted at

個人開発で Next.js と React Native を両方使ってみた技術比較

はじめに

Java2年目のエンジニアです。個人開発で2つのサービスを運営しています。

  • DescriAI: AIが商品説明文を自動生成するWebサービス(Next.js)
  • FukuMemo: 副業の収入を管理するモバイルアプリ(React Native)

どちらもTypeScript + Supabaseという共通基盤を持ちながら、Web とモバイルで技術選定が大きく異なりました。本記事では、両方を開発した実体験をもとに技術比較をまとめます。

技術スタック比較

項目 DescriAI(Web) FukuMemo(Mobile)
フレームワーク Next.js 16 (App Router) React Native + Expo SDK 52
BaaS Supabase Supabase
認証 Supabase Auth (Web) Supabase Auth (Mobile)
課金 Stripe RevenueCat
AI Claude Haiku API -
デプロイ Vercel EAS Build
言語 TypeScript TypeScript

認証:Supabase Auth の Web vs Mobile

Supabase Authは両方で使えますが、実装に差があります。

Web(Next.js) では @supabase/ssr を利用し、Server ComponentsやMiddlewareでセッションを管理します。cookieベースのため、サーバーサイドでの認証チェックが自然に書けます。

Mobile(React Native) では @supabase/supabase-jsAsyncStorage をアダプタとして渡します。DeepLinkを使ったOAuth設定が必要で、expo-auth-sessionとの連携に手間がかかりました。特にリダイレクトURLのスキーマ設定でハマる場面が多かったです。

課金:Stripe vs RevenueCat

観点 Stripe(Web) RevenueCat(Mobile)
導入難易度 Webhook設定がやや複雑 SDKが抽象化してくれて楽
手数料 3.6% Apple/Google 15〜30% + RevenueCat
サブスク管理 自前でステータス管理が必要 ダッシュボードで一元管理
テスト Stripe CLIでローカルテスト可 Sandboxテストにやや時間がかかる

Webは手数料が圧倒的に安いですが、Webhook処理を自分で書く必要があります。RevenueCatはストアの複雑な課金ロジックをラップしてくれるので、モバイル課金の入門としては最適でした。

デプロイ:Vercel vs EAS Build

Vercelgit push だけでデプロイが完了します。プレビュー環境も自動生成されるため、個人開発との相性は抜群です。

EAS Build はビルド待ち時間が長い(無料プランで15〜20分)のがネックです。さらにApp Store / Google Play の審査が加わるため、リリースまでのリードタイムはWebと比較になりません。OTAアップデート(EAS Update)を活用して、JSバンドルだけの更新はストア審査なしで反映するのが運用のコツです。

開発体験の違い

観点 Next.js React Native (Expo)
ホットリロード 高速・安定 やや不安定な場面あり
デバッグ ブラウザDevToolsが強力 Expo DevTools + 実機確認が必要
スタイリング CSS / Tailwind CSS StyleSheet(Flexboxのみ)
環境構築 ほぼゼロコンフィグ Xcode / Android Studio が必要な場面も

React Nativeは実機での動作確認が前提となるため、開発サイクルがWebより少し長くなります。一方で、Expo SDK 52のNew Architectureサポートにより、パフォーマンスは大きく改善されていると感じました。

どちらを選ぶべきか

  • 素早くリリースして検証したい → Next.js(Web)
  • ユーザーの日常に入り込みたい → React Native(Mobile)
  • 収益化の手数料を抑えたい → Web + Stripe
  • ネイティブ機能(通知・カメラ等)が必要 → React Native

個人開発では「最初にWebでMVP検証→反応が良ければモバイル化」という流れが効率的だと感じています。

まとめ

TypeScript + Supabase を共通基盤にすることで、WebとMobileの両方を一人で開発・運用できています。どちらにも長所と短所があるので、サービスの特性に合わせて選ぶのが重要です。

個人開発で挑戦してみたい方の参考になれば幸いです。


DescriAI(AI商品説明文ジェネレーター)
https://descri-ai.vercel.app

各種リンクはこちら
https://lit.link/shotani__

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?