今回はPythonista3というアプリを利用してiOSのアプリを作成します。
通常iOSのアプリを作成する場合はMacのXcodeというツールを利用する
必要があるのですが、Pythonista3というアプリを使用することで
python言語を用いてiOS上でアプリを作成することができるようになります。
Pythonista3のインストール
お手持ちのiPhoneまたはiPadからPythonista3をインストールします。
※有料アプリとなります
Pythonista3でHelloWorldを表示する
初めてのiOSでのプログラミングということで、
定番のHelloWorldを表示してみましょう。お約束ですね。
まずは作成用のフォルダを作成します。
画面下の+ボタンを押してフォルダを作成します。
今回はHelloworldというフォルダを作成しました。
フォルダが作成できたらファイルを作成していきます。
フォルダの作成と同じように+ボタンからファイルを作成し
Script with UIを選択します。これはipad用の画面と処理のプログラムを
同時に作成することができます。
保存先は先ほど作成したフォルダに設定します。
作成が完了すると拡張子がpyuiとpyの2つのファイルが作成されます。
.pyuiは画面のレイアウトを設定するもので
.pyは処理を記述するファイルとなります。
初期状態のまま実行ボタンを押すと何も書かれていないウィンドウが表示されます。
これが基本的な雛形になります。
ここにHelloWorldを表示していきます。
まずはHelloWorldを表示するためにウィンドウにラベルオブジェクトを追加します。
画面の見え方を編集するので、Helloworld.pyui側を編集していきます。
左上の「+」ボタンを押すと画面上にボタンが表示されるのでLabelをタップして画面上に配置します。
配置が完了したら左下のボタンのプロパティを確認します。
ここで重要なのは「Name」の部分です。
このNameに記載された文字がこのlabel部品を判別する
「名前」となります。
今回はラベルが1つだけですが、複数のラベルを配置した際に
プログラムはどのラベルを変更すれば良いか判断できないため
この「Name」に書かれた名前で複数のラベルの中から対象の
ラベルを判別し処理させることが可能になります。
つまりラベルのNameとプログラムの処理が紐づく形となります。
Pythonista3でHelloWorldをラベルに表示する
HelloWorldを表示するためのラベルを作成したので
いよいよHelloWorldを表示していきましょう。
Helloworld.pyの内容に次のプログラムを書きます
1 2 3 4 5 6 7 8 9 |
import ui v = ui.load_view() lbl = v['label1'] lbl.text = 'Hello World' v.present('sheet') |
各行の内容は以下の通りです。
3行目で画面の情報をvとして変数に格納しています。
4行目で画面上に配置されているNameが「lbel1」のオブジェクトをlblとして
変数に格納します。
5行目でlbl(label1)のtextに「Hello World」を代入します。
9行目で表示します。
ここまで記述できたら実行してみましょう。
無事に「Hello World!」と表示することができました。
pythonistaで作成したプログラムをアプリっぽくホームに配置する
これまでの手順でHello Worldを表示するプログラムは完成しました。
「pythonistaは実行したら終わり」ではなく、アプリっぽくホーム画面に配置することができます。
例として先ほど作成したHelloWorldと表示されるプログラムをアプリとして配置してみます。
手順は次の通りです。
1.まずはpythonistaの画面で上部にあるレンチのマークをタップします。
2.Shortcutsをタップします。
3. ショートカットの種類を選択する画面が表示されます。ここでは「Home Screen Icon」を選択します。
4. 作成するショートカットのタイトルと役割を設定します。
今回は「Run Script」を選択してアプリが実行されるようにします。
編集画面を表示したい場合は「Open for Editing」でOKです。
選択したらContinueをタップします。
5. ブラウザが起動し次のような画面が表示されます。
英語で手順が説明されていますのでその通りに操作していきます。
1. 上に矢印がついてるマークをタップする
2. ホーム画面に追加をタップする
3. 追加をタップする
ホーム画面に追加をタップします
追加をタップします。
ホーム画面にアプリとしてアイコンが作成されました!
これをタップするとHelloWorldと表示されます!
このとおり。
基本的な使い方は以上となります。
次はpythonista3で電卓を作成してみます。
pythonista3で電卓を作成する
それではpythonista3で電卓を作成します。
まずは画面の作成ですが、ボタンとラベルを並べるだけなので楽ちんです。
入力を表示する部分をラベルにして、残りはボタンで作成してしまえばOKです。
続いてプログラムです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
import ui inputNumber='' firstNumber = '' secondNumber='' operation='' #数字ボタンに割り当てる処理 def numberButtonAction(event_nds): global inputNumber inputNumber = inputNumber +event_nds.title disp.text = convNumber(inputNumber) #演算子に割り当てる処理 def operationButtonAction(event): global firstNumber,inputNumber,operation operation = event.title firstNumber = inputNumber inputNumber = '' #イコールに割り当てる処理 def equalButtonAction(event): global firstNumber,secondNumber,inputNumber firstNumber = float(firstNumber) secondNumber = float(v['label1'].text) if operation == '+': v['label1'].text= convNumber(firstNumber+secondNumber) inputNumber=v['label1'].text if operation == '-': v['label1'].text=convNumber(firstNumber-secondNumber) inputNumber=v['label1'].text if operation == '×': v['label1'].text=convNumber(firstNumber*secondNumber) inputNumber=v['label1'].text if operation == '÷': v['label1'].text=convNumber(firstNumber/secondNumber) inputNumber=v['label1'].text #ACボタンに割り当てる処理 def acButtonAction(event): global inputNumber, firstNumber global secondNumber, operation inputNumber = '' firstNumber='' secondNumber='' operation='' v['label1'].text='0' #数値変換関数 def convNumber(no): newno = float(no) if newno.is_integer(): return str(int(newno)) else: return str(newno) v = ui.load_view() disp=v['label1'] v.present('sheet') |
少し長いですが5つの関数で構成されているだけです。
数字ボタンが押された際に呼ばれる関数です。
押された数字をラベルの入力欄に追記していきます。
演算子の書かれたボタンを押した際に呼ばれる関数です。
演算子を変数operationに保存し
表示されている数値をfirstNumberに保存します。
イコールの書かれたボタンを押した際に呼ばれる関数です。
operationButtonActionによって保存された演算子の内容によって
処理が分岐します。
ここでメインの計算が行われ結果がラベルに表示されます。
ACボタンを押した際に呼ばれる関数です。
各変数を初期化し、ラベルに0を表示します。
演算結果で小数点以下が不要な場合(整数の場合)
小数点以下を消す処理を行います。
関数を割り当てる場合はそれぞれのボタンのActionに関数名を記入します。
これで実行すると動作する電卓の完成です。
簡単にiPadやiPhoneで動作するアプリを作成することができます。
今回プログラミングにする際に外付けのキーボードを利用しなかったのですが
入力補助も精度が高く思ったよりもストレスなく入力することができました。
プログラミングに興味があるけど本格的に始める前に試してみたい!という方や
個人用の便利なアプリを作成したい方にはぴったりだとおもいますので是非
試してみてください。