Python を勉強してみたけれど、実際にアプリを作るには何を使えばいいのか分からない。そもそも Python でスマホアプリやデスクトップアプリは作れるのか。この記事は、そんな疑問に答えるために書きました。
Python で作れるアプリの種類と、それぞれに向いているライブラリ(機能をまとめた部品)の選び方、作ったアプリを人に使ってもらう方法を紹介します。
結論:Python で作りやすいのは Web アプリとツール
Python では、Web アプリ、デスクトップアプリ、データを見せるアプリ、スマホアプリまで作れます。 ただし、得意なものとそうでないものがあります。
| 作りたいもの | Python との相性 | 主なライブラリ |
|---|---|---|
| Web アプリ(ブラウザで使うサービス) | とても良い | Flask、Django、FastAPI |
| データを見せるアプリ(グラフ・分析ツール) | とても良い | Streamlit |
| デスクトップアプリ | 良い | tkinter、Flet |
| スマホアプリ | 作れるが、専用の開発ツールより情報が少ない | Flet、Kivy、BeeWare |
| 自動化ツール・スクリプト | とても良い | 標準ライブラリだけでも作れる |
迷ったら、まずは Web アプリか、自分用の小さなツールから始めるのがおすすめです。
Web アプリを作る:Flask・Django・FastAPI
Python のアプリ開発で一番よく使われているのが、Web アプリです。 サーバー側の処理を Python で書き、画面は HTML などで作ります。
| ライブラリ | 特徴 | 向いているもの |
|---|---|---|
| Flask | 小さく始められ、必要な機能を自分で選んで足していく | 小さな Web アプリ、学習用 |
| Django | ログイン、管理画面、データベースなど、必要な機能が最初からそろっている | 会員登録のある本格的なサービス |
| FastAPI | API(ほかのアプリからデータをやり取りする窓口)を作るのが得意 | スマホアプリや別の画面とつなぐ API |
最初の1本なら Flask で小さく作り、会員登録や管理画面が必要なサービスを作るなら Django、という選び方が分かりやすいでしょう。作った Web アプリを公開するまでの流れは、Web アプリの作り方で紹介しています。
データを見せるアプリを作る:Streamlit
Streamlit は、データの分析やグラフを、そのまま Web アプリとして公開できるフレームワークです。 公式サイトでは、データのスクリプトを数分で共有できる Web アプリに変えられ、すべて Python で書けると紹介されています。オープンソースで、公開のアプリであれば Streamlit Community Cloud で無料で公開できます(GitHub のアカウントが必要です)。

HTML や CSS を書かずに、ボタンや入力欄、グラフのある画面が作れるので、「集計した結果を人に見せたい」「簡単な計算ツールを作りたい」というときに便利です。
デスクトップアプリを作る:tkinter・Flet
tkinter:Python に最初から入っている
tkinter は、Python に標準で付いてくる、画面(GUI)を作るためのライブラリです。 Python のドキュメントによると、macOS を含むほとんどの Unix 系の環境と Windows で使えます。コマンドラインで python -m tkinter を実行すると、小さなウィンドウが開いて、使えるかどうかを確かめられます。

追加のインストールがいらないので、ボタンと入力欄があるだけの自分用のツールを作るのに向いています。見た目は少し素朴なので、デザインにこだわるアプリには、ほかのライブラリが向いています。
Flet:1つのコードで、デスクトップ・Web・スマホに
Flet は、Python だけで、Web・デスクトップ・スマホのアプリを作れるフレームワークです。 公式サイトでは、iOS、Android、Windows、macOS、Linux、Web で動くアプリを1つのコードから作れると紹介されていて、オープンソースで公開されています。

見た目の整ったアプリを、Python だけで作りたい人に向いています。
スマホアプリを作る:Flet・Kivy・BeeWare
Python でもスマホアプリは作れますが、情報の量や作れるものの幅では、スマホ向けの開発ツールのほうが進めやすい場面が多くあります。 Python で作るなら、Flet のほか、Kivy や BeeWare といった選択肢があります。
ストアで本格的に公開したいスマホアプリなら、Flutter や React Native(Expo)、Swift・Kotlin などのスマホ向けの開発ツールも比べてみてください。違いはスマホアプリの作り方で紹介しています。
Python でアプリを作る手順
どの種類のアプリでも、流れは大きく変わりません。
- Python をインストールする:公式サイトからダウンロードする。Windows ではインストールのときに「PATH に追加」のチェックを入れておくと、コマンドで使いやすい
- 作業用の環境を分ける:
python -m venv .venvで仮想環境を作ると、プロジェクトごとにライブラリを分けて管理できる - ライブラリを入れる:
pip install flaskのように、使うライブラリをインストールする - 小さく作って動かす:最初は1画面だけの小さなアプリを作り、動くことを確かめる
- 公開・配布する:Web アプリならサーバーに置き、デスクトップアプリなら配布用のファイルにまとめる
コードを書くのに不安があれば、AI に手伝ってもらいながら進めることもできます。進め方は AI でアプリを作る方法で紹介しています。
作ったアプリを使ってもらうには
作ったアプリの種類によって、人に使ってもらう方法が変わります。
- Web アプリ:ホスティングサービスやレンタルサーバーに置いて、URL を共有する
- Streamlit のアプリ:Streamlit Community Cloud などで公開する
- デスクトップアプリ:PyInstaller などのツールで、Python が入っていないパソコンでも動く実行ファイルにまとめて配布する
- スマホアプリ:ストアの開発者登録をして、審査を通して公開する
デスクトップアプリを実行ファイルにして配布すると、セキュリティソフトに警告されることがあります。配布するときは、何をするアプリなのかを紹介ページで分かりやすく説明しておきましょう。
まとめ
- Python で作りやすいのは、Web アプリ(Flask・Django)とデータを見せるアプリ(Streamlit)
- デスクトップアプリなら、標準の tkinter か、見た目の整ったアプリを作れる Flet
- スマホアプリも作れるが、本格的に公開するならスマホ向けの開発ツールも比べる
- 最初は1画面の小さなアプリを作り、動いたら公開してみる
Python は、作りたいものをすぐ形にできる言語です。まずは自分が毎日使う小さなツールを1つ作って、誰かに使ってもらうところまで進めてみてください。
完成したアプリは、Devoch に掲載して、使ってくれる人に届けることができます。