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

FastAPI + React 以外にも、世界には魅力的なフレームワークがたくさんあります。「自分が何を作りたいか」「どの技術を学びたいか」に合わせて、以下のリストから構成を選んでみてください。
※ Backendは共通してPython推奨です(Ocean SDKやAmplify SDKがPythonで動作するため)。
1. Next.js (Frontend) + FastAPI (Backend)
Section titled “1. Next.js (Frontend) + FastAPI (Backend)”「Web開発の最前線を走りたい人向け」
ReactのフレームワークであるNext.jsを使う構成です。現在のWeb開発業界で最も人気があり、就職や実務でも非常に役立つスキルセットです。
- 難易度: ★★★★☆ (やや高い)
- メリット:
- 圧倒的なパフォーマンス: ページの読み込みが速く、快適なUXを作れる。
- Vercel連携: フロントエンドを開発元のVercelに一瞬でデプロイできる。
- エコシステム: デザインのテンプレート(UIコンポーネント)が豊富。
- デメリット:
- Reactの知識に加え、「サーバーサイドレンダリング(SSR)」などの概念理解が必要。
- こんな人におすすめ:
- モダンなWeb開発を本格的に学びたい。
- 見た目がリッチでカッコいいアプリを作りたい。
2. Vue.js (Frontend) + Flask (Backend)
Section titled “2. Vue.js (Frontend) + Flask (Backend)”「直感的で扱いやすい、初心者フレンドリーな構成」
Vue.jsはReactに比べて「HTML/CSSに近い書き方」ができるため、学習コストが低いのが特徴です。BackendのFlaskは「マイクロフレームワーク」と呼ばれ、機能が最小限でシンプルです。
- 難易度: ★★★☆☆ (普通)
- メリット:
- 分かりやすさ: HTML/CSSが書ければ、Vue.jsは直感的に理解しやすい。
- Flaskの手軽さ: FastAPIよりもコード量が少なく、“Hello World”までの道のりが最短。
- デメリット:
- FastAPIのような「型チェック」や「自動ドキュメント生成」機能が標準ではない。
- こんな人におすすめ:
- Reactは難しそうだと感じた。
- とにかくシンプルに、サクサク作り始めたい。
3. Flutter (Frontend) + FastAPI (Backend)
Section titled “3. Flutter (Frontend) + FastAPI (Backend)”「スマホで動く量子アプリを作りたい人向け」
Webサイトではなく、iOSやAndroidの「スマホアプリ」として量子アニーリングを動かしたいならこれ一択です。Dartという言語を使います。
- 難易度: ★★★★☆ (環境構築が少し大変)
- メリット:
- スマホ実機デモ: 自分のスマホでアプリを動かしてデモができるので、インパクト絶大。
- クロスプラットフォーム: 1つのコードでiOS, Android, Web全部作れる。
- デメリット:
- Dart言語の学習が必要。
- Mac/Windowsでの環境構築がWeb開発より少し重い。
- こんな人におすすめ:
- Webサイトよりも「アプリ」が好き。
- デモの時にスマホを見せて「これ量子計算してるんだぜ」とドヤりたい。
4. Django (Full Stack)
Section titled “4. Django (Full Stack)”「データベースもユーザー管理も全部入りの重厚長大構成」
フロントとバックを分けず、Pythonの老舗フレームワークDjangoだけで完結させる方法です(またはDjango + HTMLテンプレート)。
- 難易度: ★★★☆☆ (覚えることは多いが、資料も多い)
- メリット:
- 全部入り: データベース管理、ユーザー認証(ログイン機能)、管理画面が最初からついている。
- 計算履歴の保存: 「誰がいつどんな計算をして、どんな結果だったか」をデータベースに保存するアプリを作るなら最強。
- デメリット:
- 少しの機能を作るだけでも、ファイル構成が大掛かりになる(重い)。
- こんな人におすすめ:
- 「計算履歴」や「ユーザーログイン」など、システムっぽい機能を作りたい。
- PythonだけでWebアプリを完結させたい(が、Streamlitより自由度が欲しい)。
比較まとめ:どれを選べばいい?
Section titled “比較まとめ:どれを選べばいい?”| 構成 | フロント言語 | バック言語 | 向いていること | ひとこと |
|---|---|---|---|---|
| FastAPI + React | JS / TS | Python | 標準的なWebアプリ | 今回の基本構成。迷ったらこれ。 |
| FastAPI + Next.js | JS / TS | Python | 高機能・モダンWeb | Web開発ガチ勢・見た目重視ならこれ。 |
| Flask + Vue.js | JS | Python | シンプルなWebアプリ | Reactが難しそうならこちらへ。 |
| FastAPI + Flutter | Dart | Python | スマホアプリ | ネイティブアプリで目立ちたいなら。 |
| Django | Python (HTML) | Python | データ管理・記録 | ログイン機能や履歴保存が必須なら。 |
迷った時の選び方チャート
Section titled “迷った時の選び方チャート”-
スマホアプリ(iOS/Android)を作りたい?
- Yes → Flutter
- No → 次へ
-
将来エンジニアとしてWeb開発(フロントエンド)を仕事にしたい?
- Yes → Next.js (React)
- No → 次へ
-
とにかくハマらずに、簡単に画面を作りたい?
- Yes → Vue.js または Streamlit/NiceGUI (Pythonのみ)
- No (しっかりした機能を作りたい) → Django または FastAPI + React
※ 各フレームワークの公式ドキュメントです。