Pythonista3|iPhoneやiPadでPythonを動かす

python_class

「iPhoneでPythonが出来たら…!」という願望を叶えてくれる、そんなアプリが「Puthonista3」。 
本記事では、Pythonista3で出来ることと、その使い方について紹介します。

Pythonista3とは?

Pythonista3とは、App Storeで入手出来るアプリです。iPhoneやiPadでPythonを実行することができます。

iPhoneでプログラミング出来るアプリというのは数多く存在しますが、実用的な開発まで出来ないのが普通です。

しかしこの驚異的なアプリ「Pythonista3 」は「ちょっとプログラミングをしてみよう」の域を遥かに超えた、プロも使える優れもの。
有名なデベロッパーのジョン・グルーバーさんは次のように言っています。

“Pythonista is a really cool app, but how did it make it into the App Store?”
パイソニスタはめっちゃクールなアプリだけど、どうやったらApp Storeに出すことができるんだ?

ジョン・グルーバー

つまり、Appleの規約に触れてしまうほど万能なアプリだということです。

Pythonista3の特徴

特徴1:洗練されたコードエディタ

シンタックスハイライト機能を兼ね備えたプロ仕様のコードエディタが第一の特徴です。また、自動補完機能や拡張されたキーボードは開発効率を一段と引き上げます。

pythonista3_シンタックスハイライト
pythonista3のコードエディタ
pythonista3_kyeboard
拡張されたキーボード

特徴2:iOSアプリも作れる

Pythonista3には、GUIを作り込む機能も充実しています。GUI(グラフィカルユーザーインターフェース)とは、コードと結びついたボタンやアイコンなどのことです。
例えば、SNSアプリのLINEを使うとき、メッセージを送信するときや友達を検索するときなど、コードを実行しているわけではありません。GUIを通してコードを実行しているわけです。

下の画像は、そのGUIで作られた電卓アプリです。

pythonista3_UI
UIで作った電卓

また、pythonista3用に作られた便利なライブラリを使えば、次のようなことができます。

  • クリップボードにアクセス(コピーとかペースト機能が使える)
  • 写真フォルダにアクセス
  • 位置情報取得
  • 連絡先にアクセス
  • リマインダーにアクセス

つまり、iPhoneやiPadで、自分専用のアプリ開発ができるというわけです。

特徴3:豊富なテーマ

カラーテーマを変更して、自分好みの開発環境にすることができます。その数何と15テーマ!

pythonista3_theme
pythonista3のカラーテーマ

Pythonista3でコードを書いてみる

それでは実際にPythonista3でPythonのスクリプトを書いてみます。

スクリプトの作り方

スクリプトは5つのステップで作れます。

  1. メニューアイコンをタップ
  2. フォルダを選択
  3. 「+」アイコンをタップ
  4. 「Empty Script」をタップ
  5. ファイル名を入力して「Create」をタップ
pythonista3_script
pythonista3のスクリプトの作り方

Pythonコードを入力

それでは、試しにNumpyとMatplotlibを使って、グラフを出力するコードを書いてみます。

import numpy as np #Numpyのインポート
import matplotlib.pyplot as plt #matplotlibのインポート

x = np.arange(100) #x軸用に1~100までのアレイを作成
y = x**2 #y軸用にx軸の2乗のアレイを作成

Figure,ax = plt.subplots() #グラフを定義
ax.plot(x, y) #グラフにプロット

plt.show() #グラフを表示

すると、次のようなグラフが出力されます。

pythonista3_samplecode
pythonista3で作ったグラフ

Pythonista3でできること、出来ないこと

Pythonでできることは、大体Pythonista3でもできます。ただし、一部できないこともあるので注意が必要です。

Pythonista3でできること

「Pythonista3でできること」を言い換えると、「どんなライブラリが使えるか」となります。ライブラリとは、先ほど紹介した「Numpy」や「Matplotlib」などのように、便利な機能をたくさん持っている、コードの集まりのことです。
通常プログラミングでは、多くのライブラリを使って自分の作りたいものを作ります。そこで、ここからは、どんなライブラリが使えて、それで何ができるのかを紹介します。

まず、Pythonista3専用に開発されたライブラリを紹介します。

  1. Canvas・・・シンプルなグラフィックス描画
  2. clipboard・・・クリップボード操作ができる(コピー、ペーストなど)
  3. contact・・・「連絡先」にアクセスし操作
  4. editor・・・最近編集したテキストを取得
  5. linguistictagger・・・言語分析ができる(文章を単語に分割して、品詞を調べるなど)
  6. location・・・位置情報の取得ができる
  7. notification・・・通知センターにアクセス(ある場所に着いたらこんなメッセージを表示する、など)
  8. photos・・・写真フォルダにアクセス
  9. reminder・・・リマインダーにアクセス
  10. scene・・・ゲームなどのインタラクティブな2Dグラフィックス描画
  11. sound・・・サウンドエフェクト、ミュージック、ボイスメモなどにアクセス
  12. ui・・・GUIを操作

上記のライブラリは全てではありませんが、主要なPythonista3専用ライブラリです。ざっとみて、いろんなことが自動化できそうだな、と夢が膨らみます。

→詳細な情報はこちら

次に、一般的に使われるライブラリを少しだけ紹介します。

  • Matplotlib・・・グラフ描画
  • Numpy・・・アレイ(行列)操作
  • Webbrowser・・・ブラウザ自動制御(検索や検索結果取得など)
  • request・・・ネット上の通信制御
  • Beautifulsoup・・・スクレイピング(ウェブ上から自動で情報を取得)
  • OpenPyXl・・・Excelを自動化
  • Django・・・大規模開発用ウェブフレームワーク
  • Flask・・・中規模ウェブフレームワーク
  • Bottle・・・シンプルなウェブフレームワーク

などなど、まだまだたくさんあります。やはり、詳細はこちらのページから確認してみてください!

Pythonista3で出来ないこと

残念ながら、まだ出来ないことがあります。本記事では2点紹介します。

  1. Pandas・・・表計算ライブラリ
  2. scikit-learn・・・機械学習ライブラリ

この2点が手痛いところでしょう。

Pandasは膨大なデータを扱うのに非常に長けており、データサイエンティストやグラフ職人たちに重宝されているライブラリです。
現時点では代替方法もないとのことですので、今後のアップデートに期待です。

scikit-learnは、機械学習で有名なライブラリです。非常に簡単に機械学習できるので、「Python×機械学習」を語る上で避けられないライブラリです。
こちらも有名なライブラリですので、今後のアップデートで対応してくれることを祈るばかりです。

Pythonista3でpipコマンドを使う

先ほど、色々なライブラリを紹介しました。デフォルトで使えるものと、ネット経由でインストールしなければならないものもあります。
Pythonのライブラリ管理ツールはpipと呼ばれ、あらゆるライブラリをインストールすることができます。例えば、ウェブスクレイピング用のライブラリBeautifulsoupは、次のようにターミナルで入力してインストールします。

$ pip install beautifulsoup4

これを実現するにはターミナルが必要です。そこで、Pythonista3にターミナルを導入する方法を紹介します。

1. コンソールでコマンドを入力

まず、コンソールに移動します。コンソールに移動する手順は次の通りです。

  1. 空のスクリプトを作る
  2. 左にスワイプする

*空のスクリプト作成は記事の上の方で紹介しています。

コンソールに移動したら、次のような画面になっていることを確認してください。

pythonista3_console
pythonista3のコンソール

次に、コマンド入力欄に、次のコマンドを入力して「return」を押してください。

import requests as r; exec(r.get('http://bit.ly/get-stash').text)

すると、次のようなメッセージが下の方に表示されます。

Please restart Pythonista and run launch_stash.py under the home directory to start StaSh

つまり、Pythonista3を再起動し、ホームディレクトリ(私の場合は「This iPhone」ディレクトリ)にlaunch_stash.pyというPythonファイルがあるので、それを実行すれば良いわけです。

StaShとは、「Pythonista + Shell」を掛け合わせて作った、Pythonista用のターミナルです。

Pythonista3_stash
StaSh

2. pipコマンドでライブラリのインストール

試しにBeautifulSoup4をインストールしてみましょう。

pip install beautifulsoup4

と入力して実行してみてください。ウェブスクレイピング用のライブラリBeautifulSoupがインストールされれば成功です。

Appendix

参考サイト:公式サイト(英語)
参考サイト:Pythonista3で使えるライブラリ(英語)

参考図書:PythonではじめるiOSプログラミング 〜iOS+Pythonで数値処理からGUI、ゲーム、iOS機能拡張まで〜

PythonではじめるiOSプログラミング
著者:掌田津耶乃
価格:2574円(Kindle)