コンテンツにスキップ

応用編:フレームワーク・構成

2025-12-05-22-05-54

FastAPI + React 以外にも、世界には魅力的なフレームワークがたくさんあります。「自分が何を作りたいか」「どの技術を学びたいか」に合わせて、以下のリストから構成を選んでみてください。

Backendは共通してPython推奨です(Ocean SDKやAmplify SDKがPythonで動作するため)。


「Web開発の最前線を走りたい人向け」

ReactのフレームワークであるNext.jsを使う構成です。現在のWeb開発業界で最も人気があり、就職や実務でも非常に役立つスキルセットです。

  • 難易度: ★★★★☆ (やや高い)
  • メリット:
    • 圧倒的なパフォーマンス: ページの読み込みが速く、快適なUXを作れる。
    • Vercel連携: フロントエンドを開発元のVercelに一瞬でデプロイできる。
    • エコシステム: デザインのテンプレート(UIコンポーネント)が豊富。
  • デメリット:
    • Reactの知識に加え、「サーバーサイドレンダリング(SSR)」などの概念理解が必要。
  • こんな人におすすめ:
    • モダンなWeb開発を本格的に学びたい。
    • 見た目がリッチでカッコいいアプリを作りたい。

「直感的で扱いやすい、初心者フレンドリーな構成」

Vue.jsはReactに比べて「HTML/CSSに近い書き方」ができるため、学習コストが低いのが特徴です。BackendのFlaskは「マイクロフレームワーク」と呼ばれ、機能が最小限でシンプルです。

  • 難易度: ★★★☆☆ (普通)
  • メリット:
    • 分かりやすさ: HTML/CSSが書ければ、Vue.jsは直感的に理解しやすい。
    • Flaskの手軽さ: FastAPIよりもコード量が少なく、“Hello World”までの道のりが最短。
  • デメリット:
    • FastAPIのような「型チェック」や「自動ドキュメント生成」機能が標準ではない。
  • こんな人におすすめ:
    • Reactは難しそうだと感じた。
    • とにかくシンプルに、サクサク作り始めたい。

「スマホで動く量子アプリを作りたい人向け」

Webサイトではなく、iOSやAndroidの「スマホアプリ」として量子アニーリングを動かしたいならこれ一択です。Dartという言語を使います。

  • 難易度: ★★★★☆ (環境構築が少し大変)
  • メリット:
    • スマホ実機デモ: 自分のスマホでアプリを動かしてデモができるので、インパクト絶大。
    • クロスプラットフォーム: 1つのコードでiOS, Android, Web全部作れる。
  • デメリット:
    • Dart言語の学習が必要。
    • Mac/Windowsでの環境構築がWeb開発より少し重い。
  • こんな人におすすめ:
    • Webサイトよりも「アプリ」が好き。
    • デモの時にスマホを見せて「これ量子計算してるんだぜ」とドヤりたい。

「データベースもユーザー管理も全部入りの重厚長大構成」

フロントとバックを分けず、Pythonの老舗フレームワークDjangoだけで完結させる方法です(またはDjango + HTMLテンプレート)。

  • 難易度: ★★★☆☆ (覚えることは多いが、資料も多い)
  • メリット:
    • 全部入り: データベース管理、ユーザー認証(ログイン機能)、管理画面が最初からついている。
    • 計算履歴の保存: 「誰がいつどんな計算をして、どんな結果だったか」をデータベースに保存するアプリを作るなら最強。
  • デメリット:
    • 少しの機能を作るだけでも、ファイル構成が大掛かりになる(重い)。
  • こんな人におすすめ:
    • 「計算履歴」や「ユーザーログイン」など、システムっぽい機能を作りたい。
    • PythonだけでWebアプリを完結させたい(が、Streamlitより自由度が欲しい)。

比較まとめ:どれを選べばいい?

Section titled “比較まとめ:どれを選べばいい?”
構成フロント言語バック言語向いていることひとこと
FastAPI + ReactJS / TSPython標準的なWebアプリ今回の基本構成。迷ったらこれ。
FastAPI + Next.jsJS / TSPython高機能・モダンWebWeb開発ガチ勢・見た目重視ならこれ。
Flask + Vue.jsJSPythonシンプルなWebアプリReactが難しそうならこちらへ。
FastAPI + FlutterDartPythonスマホアプリネイティブアプリで目立ちたいなら。
DjangoPython (HTML)Pythonデータ管理・記録ログイン機能や履歴保存が必須なら。
  1. スマホアプリ(iOS/Android)を作りたい?

    • Yes → Flutter
    • No → 次へ
  2. 将来エンジニアとしてWeb開発(フロントエンド)を仕事にしたい?

    • Yes → Next.js (React)
    • No → 次へ
  3. とにかくハマらずに、簡単に画面を作りたい?

    • Yes → Vue.js または Streamlit/NiceGUI (Pythonのみ)
    • No (しっかりした機能を作りたい) → Django または FastAPI + React

※ 各フレームワークの公式ドキュメントです。