くーぱぱのエンジニア作業ログ

一児の父で、エンジニアの、日々の作業記録です

Pythonista3のアレコレ(目次)

活発だけど英語ばかり...

Pythonはホットな言語ではあるものの、日本ではメジャーではありません。

使い方で調べると、こんなサイトが見つかります。

 

Pythonista Documentation - Qiita

英語の文献を、機械翻訳したようです。リンク先は英語のみかな...

 

作って覚える!Pythonista 3を使ったPythonプログラミングのやり方 - エンジニアの頭の中

ライフゲームを試しに作ってるようです。

僕の場合はオセロなんですが、やっぱり似たようなことを考える人はいるんだなぁ、としみじみ思います。

 

Pythonista for iOS

うん。英語の公式サイト。。。

 

iPhoneでiPhoneアプリを作ろう - Qiita

試しに作ってみた系。

iPhoneのホーム画面に追加まで、と手厚く試していますね。

 

導入としては有用だけど、いざ実戦となると、痒いところに手が届かないですね...

ということで、自分なりにノウハウをまとめていきます。

 

基本、実践してわかったことなので、実はこんな機能が?!みたいなのもたくさん出てくると思いますが、随時更新していきたいと思います。

 

====================================

以下、工事中。随時更新します。

  • タブ機能

Pythonista3のアレコレ(タブ表示) - くーぱぱのエンジニア作業ログ

 

  • 引数実行

Pythonista3のアレコレ(引数実行) - くーぱぱのエンジニア作業ログ

 

以上、くーぱぱでした。

 

STEP2 オセロが作れました

オセロが作れました

実はブログ更新が追いついていませんでしたが、STEP1の基礎構文をあらかた終えていたので、STEP2に着手していました。

 

が、あれやこれやとやってるうちに、人間対人間のオセロが、ある程度形になりました。笑

ゲームのリトライであったり、ヒント機能であったり、コンピュータ対戦だったり、画面描画のアニメーションだったり...

こだわるポイントは色々ありますが、まずは成果報告です。

実際にコーディングに至るまでの過程や調査した内容等々は、別途ブログにまとめていきます。

 

画面はこんな感じ

f:id:qoooopapa:20191016012445p:image

f:id:qoooopapa:20191016012535p:image

f:id:qoooopapa:20191016012657p:image

blackと言ってますが、青ボールが黒だと思ってください。

ダサイですが、UIにこだわることが目的ではないので、そこはご愛嬌です。

 

コーディング量・作業時間

コメント文は一切なしですが、およそ180行程度。

f:id:qoooopapa:20191016013054p:image

一番時間がかかったのは、画面のUI描画と、選択箇所の特定処理です。

トータルの作業時間は計測していませんが、調査や、サンプルソースの読解時間も合わせて、およそ5h〜8h程度で対応したと思います。

 

オセロの仕様(概略)

ざっくりこんな仕様で構築しています。(一般的なオセロのルールです)

  1. 画面上でオセロの盤面をタッチ可能とする
  2. 自分のオセロと違う色を挟んだとき、挟んだ色のオセロをひっくり返す
  3. オセロをひっくり返せる場所にしか、オセロは置けない
  4. 1ターンずつ、オセロを置ける人は交代する
  5. オセロを置けない場合は、パスとなる
  6. どちらのプレイヤーも、オセロを置けなかったら試合終了

 

ライブラリ

Pythonのsceneパッケージを使用しています。

細かい情報は調べていないので、UIまわりはもう少し調べたら、もっと簡単に、もっと面白いものができるかもです。

仕組みは理解していないですが、itertoolsのproductも、サンプルソースをもとに利用してみました。

もっと深堀ポイントもあると思うので、解説しつつ、調べたり、試したりしながら、内容を紹介していこうと思います。

 

 

以上、くーぱぱでした。

 

STEP1-2 pythonの構文を調べる

構文とは

言語には、決まったルールがあります。

英語で言えば、S+V,S+V+C...の基本5文型や、過去形、未来形といった文法というルールがあります。

プログラミング言語にも同様に、それぞれの言語に応じたルール(構文)があります。

初めてプログラミングを触る人は、なにが書かれているのかよくわからないと思います。

なぜなら、ルール(構文)がわからないから。

なので、ルール(構文)を学ぶことが、プログラミングの第一歩になります。

 

まずは情報源の確保と写経

英語を勉強するために、文法やテスト問題の書籍を買うのと同じです。

では、書籍を買うのか?

答えはNOです。(いや、買ってもいいですよ)

今は、google先生に聞けば、優秀なブログやサイトを紹介してくれます。

より純度の高い情報や解説は、書籍の方が良いケースが多分にありますが、イニシャルコストを抑えたいのが本音ですよね。

他にも電子媒体ならではのメリットもありますが、そんな紹介はさておいて、今回僕が利用したサイトを紹介します。

 

とほほのPython

Python入門

とほほさんのサイトは、本当にタメになります。

初心者は、本よりもここのサイトを読みながら、演習問題をやるべきです。

Pythonだけではなく、JavaやHTMLなど、ホントに幅広い言語について、簡単なことから難しいことまで、簡潔に説明されてます。

ただし、ここはあくまで文法の紹介止まりなので、ご注意ください。

イメージとしては、困ったときに調べる辞書のようなものだと思います。

 

明治大学のプログラム課題サイト

これはたまたま見つけました。

〜演習サイト〜

https://www.isc.meiji.ac.jp/~mizutani/python/print/drills.pdf

 

〜入り口〜

https://www.isc.meiji.ac.jp/~mizutani/python/index.html

 

若干CSSが大学個人クオリティだったりしますが、演習サイトは授業でも活用されている(?)だけあって、手厚い内容になってます。

その辺の書籍に載ってるような解説文から演習問題まで、細かく網羅されているので、本を買うくらいであればこのサイトを隅々まで読むことをオススメします。

 

実際にやってみる

紹介ばかりではナンセンスなので、次回以降は実際にやってみます。

比較的スキルはある方だと自負しているので、すべての問題をやるつもりはありませんが、導入〜基礎構文あたりまではやってみようかなと思います。

 

 

以上、くーぱぱでした。

 

STEP1-1 Pythonista3を動かしてみる

まずは環境構築と動作確認

と言っても、実はこれは完了しています。

Pythonista3をインストールするだけで、環境構築は完了です。

さらに、コンソールを利用して、スクリプトを実行できたので、動作確認もOKです。

 

Pythonista3を入れてみる - くーぱぱのエンジニア作業ログ

 

もう少し遊びます。

Pythonista3ではexamplesとして、すでに実装済みのPythonコードが提供されています。

適当にファイルを開いてみます。

 

  1. Pythonista3上で右にスワイプする
  2. This iPhone > Examples > AnalogClock.pyと、順番にタップする
  3. 右上にある再生ボタンのようなものをタップする
  4. 動く時計が表示されます

 

f:id:qoooopapa:20191011085713p:image

f:id:qoooopapa:20191011085730p:image

f:id:qoooopapa:20191011085735p:image

 

f:id:qoooopapa:20191011085738p:image

f:id:qoooopapa:20191011085752p:image

 

「AnalogClock.py」のように「py」で終わるファイルが、これかれ作っていくPython用のファイルです。

Pythonファイルを開く>再生ボタンで実行、と覚えれば簡単ですね。

他にもいろんなサンプルがあるので、インストールされてる方は、どんなことができるのか、どんのもの作ろうか、と想像を膨らませるためにも、いろいろ試してみてください。

 

以上、くーぱぱでした。

 

 

Pythonの勉強開始

Pythonista3はPythonの開発環境

先日紹介したPythonista3。

 

Pythonista3を入れてみる - くーぱぱのエンジニア作業ログ

 

こちらはPythonの開発環境となっています。

どんなに環境が整っていても、プログラムは書けなきゃ始まりません。

また、開発環境は使い慣らしてはじめて勝手がわかるもの。

ということで、Pythonista3を使ってPythonの勉強を始めてみます。

 

勉強の進め方

進め方のステップはこんな感じでいこうと思います。

  1. 基礎の構文に慣れる
  2. 簡単なアプリ(オセロ)を作る
  3. ライブラリを駆使してweb情報収集系のアプリを作れるようにする

→いざ、稼ぎに乗り出す

 

STEP1はいわゆる演習のようなものですね。

学生時代によくやりましたが、非常に退屈です。

ですが、これがないとどんなに豊富な情報があっても、読めない・書けないです。

下地作りはしっかりやりましょう。

 

STEP2で、少し遊びを入れます。

アプリってなると、やはりハードルが上がりますよね。

結果、誰かに見せる自慢になります。笑

で、スゲェってなるとモチベーションも上がりますよね。笑

ということで、ちょっと背伸びしたチャレンジです。

オセロはルールも簡単で、誰にでも馴染みがあるゲームなので、個人的にはオススメです。

 

STEP3は、そのままですが、稼げるようになるための実績作りです。

あとはアプリ配布の情報収集とかですね。

 

とりあえずこんな感じでやってこうと思います。

進捗等々を適宜報告したいなと思います。

 

以上、くーぱぱでした。

 

 

 

 

 

Pythonista3を入れてみる

iPhoneiPhoneアプリを作る時代

先日、iPhoneでRPAチックなことができる、ショートカットを紹介しました。

 

iOS13以降で登場 iPhoneのRPA ショートカット機能で遊んでみる - くーぱぱのエンジニア作業ログ

 

そこで出てきたのがスクリプティング機能。

Pythonistaってなに?と思い調べてみる。

 

iOS上で動作する革命的ものづくり環境「Pythonista 3」の魅力をとくと語る

 

iPhonePythonの開発が行える統合開発環境のようなものらしい。

 

GUIの開発もできて、アプリにすることも可能らしい。

Apple storeでの配布について言及されてる記事は見つけられていないので、今後要調査です。

 

iPhoneでiPhoneアプリを作ろう - Qiita

 

Pythonistaを入れてみる

インストールに1200円かかるが、それを鑑みてもかなり高性能らしいので、勇気を持って買ってみる。

 

f:id:qoooopapa:20191010081236p:image

f:id:qoooopapa:20191010081312p:image

試しに動かしてみる。

f:id:qoooopapa:20191010081440p:image

自慢じゃないですが、環境構築は苦手です。

プログラミングの最初で最大の障壁と言っても過言ではないと思っています。

それがPythonista3は、インストールしただけで完了です。

簡単にコンソールから実行することができました。

 

f:id:qoooopapa:20191010081716p:image

 

デフォルトでサンプルが提供されており、これまたこんな簡単に作れるの?!と言わんばかりのコード量。

アニメーションなどの機能も使えるようで、どこから手をつけたらいいのかわからない...

そもそもPython使ったことがない...

 

ということで、まずはPythonを勉強するところから始めてみることにします。

 

以上、くーぱぱでした。

 

 

 

 

iOS13以降で登場 iPhoneのRPA ショートカット機能で遊んでみる

iPhone11でRPA?!

先日iPhone11に切り替えました。

 

iPhone11で取り沙汰されるのは、カメラ機能のアップデートですが、他に何かないのかな、と調べてみました。

 

そんな中、標準でインストールされてるアプリの中で気になるものを発見。

 

f:id:qoooopapa:20191009102141p:image

 

ショートカットと呼ばれる機能がiOS12から追加されていたようです。

 

アプリを開いてみると、こんな感じ。

 

f:id:qoooopapa:20191009195613p:image

 

f:id:qoooopapa:20191009195638p:image

 

オートメーション?スクリプティング

iPhoneで最近流行のRPAチックなものが作れるらしい。

※RPA:Robotic Prosess Automationの略。ロボットで処理を自動化しましょうということです。普通のシステムと違うのは、アプリケーション間の連携であったり、実際のユーザーの操作と同等のことを処理させる点です。例えば、[あるサイトの画面キャプチャをエクセルに貼り付けて、メールで送信する]といことを、実際の画面を操作するよう感覚で実現させます。

ショートカットでは、Siriとの連携もできるようですね。

 

試しに作ってみた

思いついたのは、Bluetoothイヤホンに接続したタイミングで、amazon music を再生する機能。

いちいちiPhoneを操作しなくても、音楽を聴けるようになったら、ながら歩きも減りますね。

 

f:id:qoooopapa:20191009200450p:image

 

アプリ側がショートカットに対応していないため、amazon music を直接操作することができませんでした。

そのため、アプリを開くイベントで無理やりamazon music を起動し、音楽再生をすることで実現してみました。

試しに動作確認。

問題点がいくつか発生。

 

  1. ショートカットを実行するか尋ねられる
  2. amazon music が音源となっていない時は、再生が機能しない

 

1.については、毎回尋ねる、という設定を外すことでできる、という記事を見たんですが、Bluetooth接続の場合にはその設定がどこで行われているのかわからず回避できませんでした。

2.については、アプリとの連携の問題ですね。

是非ショートカット機能との連携機能を、アプリ側に追加してもらいたいです。

おそらくですが、アプリ側が対応されるとこんな感じでAPPというアクションを選べるようになると思われます。

 

f:id:qoooopapa:20191009201532p:image

 

もう少し、各種アプリの拡張が進んだら、さらに実験もしてみたいですね。

 

以上、くーぱぱでした。