TermuxとFlaskを使用して、モバイルデバイス上でWebアプリケーションを作成、開発、実行します。
Pythonを学んだり使ったりするのは楽しいことです。Pythonの人気が高まるにつれて、コンピューティングの世界を今よりもっと良くする方法がどんどん出てきます。
Androidモバイルデバイスとオープンソースツールだけで、Pythonアプリをビルドして実行できることを想像してみてください。インターネットからお気に入りの記事を取得するコマンドラインツールの開発であれ、ハンドヘルドデバイスから直接実行するWebサーバーの起動であれ、すべてが可能です。これは、モバイル・デバイスに対する考え方を完全に変え、コンテンツを消費するだけのデバイスから、クリエイティブな活動を支援するデバイスへと変えてくれるでしょう。
この記事では、シンプルなPythonアプリケーションを実行してテストするために必要なすべてのツール、パッケージ、手順、様々な断片を示します。私は Flaskフレームワークを使って、シンプルだけど強力なWebサーバー上で動作するシンプルな "Hello, World!"アプリケーションを作りました。一番いいところは、すべてが携帯電話でできることです。ラップトップもデスクトップも必要ありません。
AndroidへのTermuxのインストール
まず、Termuxアプリケーションをインストールします。 Termuxは、最も一般的なLinuxコマンドをすべて提供する強力なターミナルエミュレータで、簡単にインストールできるように数百の追加パッケージも用意されています。特別なパーミッションは必要なく、デフォルトの Google Play ショップかオープンソースのアプリリポジトリ F-Droid インストールできます。
Termuxをインストールした後、起動してTermuxのpkgコマンドで必要なソフトウェアのインストールを行います。
追加リポジトリを購読 root-repo:
$ pkg install root-repo
アップデートを実行して、インストールされているすべてのソフトウェアを最新の状態にします。
$ pkg update
最後にPythonをインストールします:
$ pkg install python
インストールと自動設定が完了したら、いよいよアプリケーションをビルドします。
AndroidでAndroidアプリを作る
ターミナルがインストールされたので、Android携帯を他のLinuxコンピューターと同じように使うことができます。これは、ターミナルが本当に強力であることを示す良いデモンストレーションです。
まず、プロジェクト・ディレクトリを作成します:
$ mkdir Source
$ cd Source
次に、Python仮想環境を作成します。これはPython開発者の間では一般的な方法で、Pythonプロジェクトを開発システムから独立させるのに役立ちます。仮想環境では、アプリケーション固有のPythonモジュールをインストールできるようになります。
$ python -m venv venv
新しい仮想環境の起動
$ . ./venv/bin/activate
シェルのプロンプトが(env)で始まることに注意してください。
次に、pip を使って Flask Python モジュールをインストールします。
(env) $ pip install flask
AndroidでPythonコードを書く
準備は整いました。あとはアプリケーションのコードを書くだけです。
そのためには、古典的なテキストエディタの経験が必要です。viに慣れていない場合は、vimtutorをインストールして試してみてください。jove、jed、joe、emacsなど、他に好きなエディタがあれば、それらをインストールして使うこともできます。
さて、このデモプログラムはとてもシンプルなので、シェルのheredoc関数を使って、プロンプトに直接テキストを入力することもできます。
(env)$ cat << EOF >> hello_world.py
> from flask import Flask
> app = Flask(__name__)
> @app.route('/')
> def hello_world():
> return 'Hello, World!'
> EOF
たった6行のコードですが、これでFlaskをインポートしてアプリケーションを作成し、入ってくるトラフィックを hello_world 名前の関数にルーティングすることができます。
これでウェブサーバーのコードは準備できました。あとは環境変数設定して、携帯電話でウェブサーバーを起動しましょう。
(env) $ export FLASK_APP=hello_world.py
(env) $ export FLASK_ENV=development
(evn) $ python hello_world.py
アプリを起動すると、このようなメッセージが表示されます。
serving Flask app... http://...:00/
これは、localhost上でマイクロウェブサーバーを実行していることを示しています。サーバはポート5000でリクエストをリッスンしています。
携帯電話のブラウザを開き、 http://:00移動してウェブアプリを表示します。
あなたは電話のセキュリティを損なうことはありません。ローカルサーバーを実行しているだけなので、電話は外部からのリクエストを受け付けません。Flaskサーバーにアクセスできるのはあなただけです。
サーバーを他の人から見えるようにするには、runコマンドに --host=0.0.0.0 追加してFlaskのデバッグモードを無効にします。これは携帯電話のポートを開くことになるので注意してください。
(env) $ export FLASK_ENV=””
(env) $ flask run -ホスト=0.0.0.0
Ctrl+Cでサーバーを停止します。
次に何をするか決めてください。
携帯電話は、本格的なウェブアプリにとって理想的なサーバープラットフォームではないかもしれませんが、この例は可能性が無限であることを証明しています。練習するのに便利だからという理由でAndroid携帯でプログラミングしているかもしれませんし、ローカライズされたWebアプリのためのエキサイティングな新しいアイデアがあるからかもしれませんし、たまたま日々のタスクにFlaskアプリを使っているだけかもしれません。アルベルト・アインシュタインがかつて言ったように、「想像力は知識よりも重要」であり、これはどんな初心者コーダーにとっても、熟練したLinuxやAndroid愛好家にとっても楽しい小さなプロジェクトです。無限のレベルに拡張することができるので、好奇心に任せてエキサイティングなものを作ってみてください!





