簡単なプログラムは書けるけど、アプリ開発するための環境構築ができない・・というような過去の自分、類する人たちに向けて
私はPythonを使って簡単な業務サポートツール程度は自作できる知識を有しています。
できるだけわかりやすく説明するつもりですが、Pythonを使ってプログラムを書いて実行させる程度のことはできる知識があることを前提に書きます。
それと、心得も1つ、英語に怯まないでください。ドキュメントを読むときほとんど英語です。エラーが出たとき、知恵を貸してくれるほとんどの人は英語を使います。
■今回の記事でできるようになること
Pythonを用いてandroidアプリを開発する環境を構築することができるようになります。
■理解すべき概要
①Pythonは様々な人が作ったライブラリが豊富で、難しいことはライブラリに任せましょう。
ライブラリを使う場合は、特有のコードの書き方があるので、ドキュメントを確認してルールに従ってコードを書きます。
②Pythonを用いてandroid アプリを作るためにkivyを使用します。
ほかにも手段はありますが、今回はkivyを使用すると決めました。
kivyの良いところはWindowsなどのPCの用に加え、android iOS用のアプリを作れることです。ただし、iOSはまだ不安定との情報を見かけますし、macの環境が必要になります。
③Windows環境で作成します。
最も普及しているWindows環境で開発します。
iOSアプリを作るのであれば、macが必要ですが、こちらはランニングコストがかかるので、取っつきにくいので現時点で却下しています。
④kivyで作成したアプリをビルドするためにbuildozerを使用します。
buildozerを使わなくてもできる方法はあるのですが、習得する知識が膨大に増えてしまうので、先人が残してくれたツールを活用します。
しかし、面倒なことに、buildozerはmac/Linux環境でしかサポートされていません。
⑤WSLを使用してWindows上にLinux環境を準備する
Windows上に仮想的にLinux環境を準備します。
準備したLinux上でアプリのビルドを行います。
※ビルド以外の作業はWindows上で行えばよいです。
⑥動作確認環境とビルド環境が別にあるということは忘れずに。
環境が整ったあと、あなたは自分の好きにPythonでコードを書いていくのかもしれません。
その時に、必要になるライブラリや環境はWindows/Liunxの両方に必要であることを忘れないでください。
■手順1:kivyのサポート環境を確認する
kivy公式リンク:
この記事執筆時点で、”Kivy 2.1.0 officially supports Python versions 3.7 – 3.10.”と書かれています。
上記内のVerであることを確認します。そうでなければ、updateなど対応しましょう。
・windowsでのPythonのVer確認方法
CUI(コマンドプロンプトorPowerShell)で以下を実行
python --version

■手順2:buildozerのサポート環境を確認する
buildozer公式リンク:
https://buildozer.readthedocs.io/en/latest/installation.html#android-on-windows-10-or-11
win10 or win11において以下の環境でテストしているとあるのでいずれかを選択します。
WSL 1 & Ubuntu 18.04 LTS
WSL2 & Ubuntu 20.04 or 22.04
今回はWSL2 & Ubuntu 20.04の環境でビルドすることを目指します。
■手順3:Windows上での仮想化の許可設定
windows上にLinuxを仮想的に環境構築することを許可する設定をしていきます。
“Windowsの機能の有効化または無効化”を開きます。
検索機能を用いて”有効化”と検索するのが簡単です。

“Linux用Windowsサブシステム”と”仮想マシンプラットフォーム”を有効にします。

■手順4:WSLをインストール
WSL公式リンク:

管理者権限でCUI(コマンドプロンプトorPowerShell)で以下を実行
wsl --install

■手順5:ディストリビューションをインストール
Microsoft StoreからUbuntuを検索、必要なVerを探してインストールします。

インストール後、CUIを起動させてユーザ名、パスワードを設定して下さい。

任意のユーザ名、パスワードは非表示で2回入力必要
UbuntuのVerを確認します。
UbuntuのCUIで以下を実行
cat /etc/issue

20.04なので問題なし。
※余談ですが、Windows上でコピー(Ctrl+C)したテキストをUbuntuのCUI上で左クリック→ペースト(Ctrl+V)してもなぜか表示されなかったんです。
理由はわかりませんが、Windows上でコピー(Ctrl+C)→UbuntuのCUI上で右クリックで貼り付けできます。
Linuxの仕様なのでしょうか。
仮想環境が整ったか確認します。
CUI(コマンドプロンプトorPowerShell)で以下を実行
wsl -l -v

Ubuntu 20.04が起動しており、WSLはVerは2だということがわかります。
※StateがStopだった場合、Winのスタートから、インストールしたディストリビューションを探して起動させます。
※Stopさせたい場合、以下を入力(PCのリソースをとられるので使わないときはストップさせた方が良い)
wsl -t Ubuntu-20.04
※WSL Verが1だった場合以下を参照しVerUPします。

・UbuntuでのPythonのVer確認方法
UbuntuのCUIで以下を実行
$ python3 -V

手順1のkivyのサポート範囲内ですのでOKです。
■手順6:Pythonでコードを書く
VSCodeでもPycharmでも好きなエディタを使って書いてください。
今回の目標はビルドする環境を作ることですので、とりあえず、kivy公式に書かれているコードを使います。
中央にHello worldと表示するだけの簡単なアプリです。
ファイル名は”main.py”としておきます。
import kivy
kivy.require('2.1.0') # replace with your current kivy version !
from kivy.app import App
from kivy.uix.label import Label
class MyApp(App):
def build(self):
return Label(text='Hello world')
if __name__ == '__main__':
MyApp().run()

上記はWindows環境です。
問題なく動くことが確認できました。
■手順7:PythonのソースコードをLinux上に移動させる
Ubuntuが起動していることを確認します。※CUIが起動していればOKです。
Windowsのエクスプローラを開いて仮想環境上のUbuntuのファイルを確認します。
パスを入力するところに”\wsl$”を入力すると確認できます。

筆者環境ではDockerの仮想環境も見えています。
■手順8:Ubuntu上にビルド環境を準備する
Buildozer公式リンク:
UbuntuのCUIで以下の3つを順に実行
sudo apt update
sudo apt install -y git zip unzip openjdk-17-jdk python3-pip autoconf libtool pkg-config zlib1g-dev libncurses5-dev libncursesw5-dev libtinfo5 cmake libffi-dev libssl-dev
pip3 install --user --upgrade Cython==0.29.19 virtualenv
pip install buildozer

※理解すべき概要の⑥で言いましたが、ビルドするのはUbuntu環境ですので、上記以外にも必要なパッケージ等があればインストールしましょう。
初めての実行には時間がかかるので、PCを必ずシャットダウンしなければいけないような事情があれば、時間のある時にするようにします。
Ubuntu内に含まれるパッケージ等の確認する場合、CUIで以下を実行します。
pip list

リストを見てインストールされていることを確認します。
.bashrcファイルの末尾に以下を追記して保存します。
export PATH=$PATH:~/.local/bin/

■手順9:PythonのソースコードをUbuntuに入れる
次にアプリを入れるフォルダを作ります。
以下のように、ユーザ名直下のところに適当なファイルを作ります。

sampleフォルダの中に手順6で作ったmain.pyファイルを入れます。
■手順10:ビルドする
以下を実行します。
cd sample
buildozer init
buildozer -v android debug
カレントディレクトリをsampleに移動し、buildozer.specファイルを作成します。
buildozer.specファイルにはアプリのタイトルやアイコンなどの設定を入れます。
今回は特に何も編集しなくてもビルドできますが、変更する場合、以下を参照して変更します。
ビルドにも少し時間が必要です。

ビルドが成功すればbinファイルの中にapkファイルが生成されているので、このファイルをandroid端末に入れてインストールすることで動作確認できます。

■まとめ
意外と手順が多いのでまとめました。
環境構築は一度できてしまうと滅多にしない上に、背景的な知識は忘れてしまう性分故、資料化しました。
エラーが出ても背景知識があれば原因を推察しやすいので、エラーが出たとしてもエラー文を読んで全体を俯瞰してみればよいと思います。


コメント