GarretCafe

いいモノを安く使いコスパを重視して生きていく人のためのブログ。お金がなくても楽しく生きていける。

      2016/06/30  

iPhoneでPythonが使えるPythonistaが何でもできてかなり神アプリに近い

最近諸事情があってPythonのお勉強をしております。ちょっとだけど。

プログラミングの勉強はあんまり好きではありません。プログラミングの本を読んでも内容全然わからないし、例えで毎回出てくるHelloWorldとかやってても全く楽しくないです。
なのでいつも身近ですぐ使えるスクリプトを組んでフィールド調査的にプログラミングのお勉強をしています。
効率がイイか悪いかはおいといて、本読んで時間潰すよりも楽しいことは確かです。

そういうことで、今回Pythonを取り組むにあたっても、身近にすぐに応用できるようなアプリを探していました。

そして見つけたのがPythonistaというiPhoneアプリ。
こいつがなかなかどうして半端ないアプリだったので、ちょっと紹介しておきます。

Pythonista
カテゴリ: 仕事効率化, 教育

なんかバージョンアップでどんどん進化して行っているようですね。

Pythonisa3が新しく発表されています。これから購入するならこちらをお勧めします。

Pythonistaというもの

基本的にはPythonのスクリプトを書いて実行できるインタープリタ的な何か的な何かです。
TextwellのPython版と言えばいいのかな。Textwellをもっとシステム寄りにしたようなアプリです。そしてメインの言語がPythonですのでJavaScriptで動いているTextwellよりも断然できることが多いです。

まだ全然取り組んでないけどUI操作までできるそうなので、自分でアプリを自作できるレベルで自由がききます。おそらく。
object−cのブリッジ機能はサンプルをかじってみたけどチンプンカンプンだったので完璧に使いこなせるようになるのはまだまだ先みたいです。

Pythonistaを使ってできること

先ほど言った通りだいたいのことはやろうと思えばできるはず。たぶんね。
urllibとかも最初から入っていたのでhtmlをいじいじすることもでできました。

iOS専用モジュールとして以下が初期状態で入っているみたいです。

appex — Using the Pythonista Sharing Extension
canvas — Vector Graphics
cb — Connecting to Bluetooth LE Peripherals
clipboard — Copy and paste
console — Utilities for Console Output and Various System Services
dialogs — Easy-to-use UI Dialogs
contacts — Access the iOS Contacts Database
editor — Functions for scripting Pythonista’s text editor
keychain — Secure Password Storage
linguistictagger — Linguistic analysis
location — Geo-Location Services on iOS
motion — Motion Sensor Data on iOS
notification — Notifications on iOS
objc_util — Utilities for bridging Objective-C APIs
photos — Accessing Saved Photos on iOS
reminders — Access to the iOS Reminders Database
scene — 2D Games and Animations
sound — Sound effects and music playback
speech — Text-to-Speech on iOS
twitter — iOS Twitter Accounts and API Access
ui — Native GUI for iOS
via Pythonista Modules — Pythonista Documentation

写真をいじれるのはもちろんのこと、リマインダー、GPS、通知センター、クリップボードの操作までできるようになっています。
OpenIn(SharingExtension)にも対応しているので、他のアプリから直接ファイルのやり取りなども可能になっています。すごいよね、これ。

ドキュメント読んでた時にApple Watchの記述も見つけたんだけど、もしかしたら動いちゃったりするのかな。

ちなみにちなみにエディタ自身のハックも可能なので、本当にTextwellと同等、それ以上のことができます。javascriptも動いちゃうしね。

初期設定としてエクスポート、インポート環境を揃える

Textwellみたいに簡単にURLからスクリプトをインポートできるわけではなさそうなので、自前で出来る環境を作り上げなくてはいけません。
ありがたいことに非公式でスクリプトを集めたレポジトリみたいなのを公開しているのを見つけたので、そこを取っ掛かりとして頑張っていこうと思います。

こちらを参考にしまして進めていきます。

Pythonistaにはスクリプト画面とコンソール画面があります。
今回使うのはそのうちのコンソール画面の方です。

IMG_6570

import requests as r; o=open(‘ptinstaller.py’,’w’); o.write(r.get(‘http://j.mp/pt-i’).text); o.close()

これをコピーしてこの画像のようにコンソールに貼り付けます。

IMG_6571

そうするとこのようにptinstaller.pyというものが生成されるので、それをタップしてから右上の三角ボタンを押して実行します。

IMG_6572

すると不思議なことにいろんなスクリプトが集まった画面が表示されますので、そこから好きなものをタップするだけで簡単にインポートできちゃいます。

インポートしたモジュールはbinフォルダに格納されます。

で、作ったファイルのシェアなどはこちらのDropboxモジュールを使って配布すれば簡単にいくのかな?
そんなことを考えています。

pipも使えるそうなんだけどこっちからの配布をどうすればいいのかわからんのでスルーです。

パソコンから直接USBで打っ込むことも可能みたい。
モジュールのインストールが簡単にできるとなると本当に可能性は無限大ですよね。

このアプリを使って思ったこと

まず思ったより難しかった。ドキュメントクソ長いし。
Textwellが初心者向けでプログラミングの取っ掛かりには一番だっていうのもちょっと思いました。
もちろん極めればこっちの方がいいんでしょうけど極めるのにどれくらいの月日を要するかわかりませんぜこれ。

このアプリのダウンロード数は結構あるみたいなんですけど日本語の文献の少なさが挫折した人の数を物語っている気がします。

iPad miniやiPhoneでブログを書く時に使えるモジュールを書いたので、時間がある時に解説します。

 【追記 2016年6月16日】

できました。
 【追記 2016年6月30日】
スクリプトを受信するスクリプト