基本の計算をする- 電卓っぽく入力して表示する


電卓アプリの続き。

基本設計は決まったが、実際にこれを動くようにしないといけない。

今、自分がSwift & Xcodeで知っているのは、変数の扱い、計算と、ボタンの接続、ラベルの書き換えとかぐらい。

数字ボタンを画面に設置しただけでは、勝手に数字が変数に入ってくるわけではない。そこを自分でプログラムしないといけない。

1と書かれたボタンを押したら、変数Bに1を入れる、という処理をする。

@IBAction func pushOne(sender: UIButton) {
value3 = 1
}


これはこんな感じ。

次。

123という3桁の数字を入れるとする。

最初の1を変数Bに入れる。これは簡単。
しかしそのあと、2を押したら、元の1を消さずに12としないといけない。

これを計算で考えると、

最初の数1×10 + 次の数2 = 12

なので、入力したての数を変数Cとすると

変数B = 変数B * 10 + 変数C

でいけそう。

value1 = value1 * 10 + value3

こんな感じか。

変数Bの表示を画面に表示するのは、表示用のラベルに対して、

ラベルB.text  = 変数B

なのだけど、出力は文字列でないとダメっぽいので、

ラベルB.text  = String(変数B)

でいけた。

こんな感じで、数字ボタンを10個作って、それぞれの値を変数Cに入れる。

それを変数Bに入れて、表示すると、電卓っぽく数字を一つずつ入れると、電卓っぽく桁が増えていく表示ができた。

オリジナル電卓アプリをつくる

少しSwiftを覚え始めたので、何か作ってみたくなる。

入門編ということで、電卓なら、実用できるし、簡単かな、と。
(でも後から考えると、意外と大変だった。)

基本設計を考える。

電卓アプリなので、計算できないといけない。
電卓は、数字ボタンを押すと、例えば、足し算ができる。

最初に入れた数、と、計算記号を押し、その後、2つ目の数を入れ、イコールを押すと答えがでる。
つまり3つの変数と、計算記号のボタンがある。

なので、変数Aに、変数Bを足すと、答え変数Cとして出力される、というのが基本と考えればよさそう。

答え変数C = 変数A + 変数B

Swiftで書くとこんな感じ。

answer = value1 + value2

普通の電卓は、入力フィールドも、出力フィールドも同じ窓で行なわれる。
これはこれはこれでシンプルだけど、変数Bを入れている間に、変数Aがなんだったか、不安になることもたまにあるよな、と。

液晶が1行しかない時代の苦肉の索だったとは思うけど、iPhoneのように、リッチな液晶がある時代には、1行表示にこだわらなくてもいいのではないか。
変数A、変数B、答えの全部を同時表示してもいいんじゃない?

というわけで、3行表示の電卓をつくることにした。

でも3つの窓を扱うのは、操作的にはシンプルじゃない。

入力時に使用するのは変数Bだけにして、計算記号を押したら、変数Bの値を変数Aに代入して、変数Bはクリアし、新たに足す側の数字を変数Bに入れる。こうすれば、入力するのは変数Bだけに済みそう。

プロにアプリ開発者なら、仕様の設計をしっかりやるんだろうけど、趣味でやっているので、超行き当たりばったりだけど、これが面白い。
レゴでも、大まかなアイデアは最初に考えるけど、細部はその場で考えるのに似ている。

MacBookAir mid 2011にWindows8.1をインストール

MacBookAirに、せっかく大きなSSDを入れたので、BootCamp環境で、Windows8.1をインストールしてみた。

ただ、ちょっと一筋縄でいかなかったので、やり方をメモっておく。

まず、うちのWindows8のライセンスは、8.1ではなくて、8。自分の場合はXPからのアップグレード版なので、
そのままではクリーンインストールできない
MacBook Air、YosemiteのBootCampで、Windows8をインストールするためには、64bit版のisoイメージが必要。
以前使っていた時の32bit版は手元にあるが、64bit版は持っていなかった。

プロダクトキーを持っていれば、Windowsの環境からダウンロードできるが、64bit版をダウンロードするためには、64bit版のWindowsからダウンロードしないといけない。
つまり、64bit版が動いているWindows環境がないとダウンロードできないわけだ。

色々探した結果、64bit版のWindowsをダウンロードするには、

https://technet.microsoft.com/ja-jp/evalcenter/hh699156.aspx

ここから、エンタープライズ64bitの評価版をダウンロードする。

このisoイメージを使って、BootCamp環境を作る。(自分は、VMware Fusionでやったかも)

これで、64bit版の動く環境ができたので、この評価版の環境から、

http://windows.microsoft.com/ja-jp/windows-8/upgrade-product-key-only

にアクセスして、プロダクトキーを使って、windows 8の64bit isoイメージをダウンロードする。
評価版のBootCamp環境は消して、ダウンロードした、Windows8 64bitのisoイメージからBootCampで環境を再作成する。

このままでは認証が通らないので、再度Windows 8をインストールする。
プロダクトキーの認証をする。
Windows Updateで、色々と更新する。
アプリストアからWindows 8.1をインストールする。

これで、なんとか使えるようになった。
夜しか作業できないので、3日ぐらいかかったんじゃないかと思う。


Swiftの感想

前は、本の感想になってしまったが、Swiftでアプリ製作をやってみた感想。

基本は、結構簡単で、BASICや、HyperTalk並みの気軽さがあるんだな、というところ。

5年前に、Objective-Cで開発、というときは、カッコが何種類もあるし、記号の使い方もよくわからず、また.hとか.mとか、なんかわからんファイルをいっぱい操作しないと、ということで投げ出してしまった。

今回は、最初はPlaygroundという環境で、1行書くと、すぐその結果が出力される的なものがあって、とっつきやすかった。

変数の代入は、=で、if文の比較は==とか、慣れないこともあるが、徐々に慣れてきた。

今、気づいたが、基本のコマンドみたいなものは、かなり少ないのね。
if、とか、forとか、letとか。

まだまだよくわかっていないけど、それ以外の機能や関数をAppleが用意してたり、自分で用意して、組んでいく、ということか。



絶対に挫折しない iPhoneアプリ開発「超」入門【Swift & iOS8.1以降 完全対応】

MacBook Air用のSSDを購入 - Transcend SSD JetDrive / TS240GJDM500

ちょっと前まで、MacBook Air mid2011の出番がほとんどなかった。
iPad miniが活躍しているので、用途があまりなかったし、ストレージの容量も64GBしかないので、できることも限られていた。

以前、SSDを大容量のものに交換していたが、度重なる不具合で、使うのを諦めていた。
その後、トランセンドから対応SSDが出たので、
気にはかけていた

たまたま
Amazonをみたときに、5000円弱値下げされていたので、思わず購入
今、みたらまた、同じ値段に戻っていた。以前も同じようなことがあって、タイミングを逃したな、と思っていたので、今回はよかった。

blog150211_1_1

blog150211_1_2

で、到着。iPhoneっぽいパッケージになっている。

blog150211_1_3

はずしたSSDを入れるケースも付属。USB3.0対応。

blog150211_1_4

工具、USBケーブル、ケースのケースも付属。このセットだけでなんとかなる。

blog150211_1_5

何回も取り外ししたので、装着は慣れたもの。

optionキー起動で、新規にOSをインストール。

blog150211_1_6

バッチリな容量。64GBに比べれば広大な空間。

blog150211_1_7

Xbenchでベンチマークを取った結果。
純正よりは、倍ぐらい速く、以前使っていたOWCの6Gとほぼ同じ。同じパーツなんじゃないかと思うぐらい。

これで壊れないといいけど。まぁ、日本の支社もあるし、5年保証なので、前よりは安心か。


Transcend SSD MacBook Air専用アップグレードキット (Late 2010[11"&13"]/Mid 2011[11"&13"]) SATA3 6Gb/s 240GB 5年保証 JetDrive / TS240GJDM500



Swiftの入門本を買う -絶対に挫折しない iPhoneアプリ開発「超」入門

Swiftでプログラミングの勉強をすると言っても、ガイドなしには、まったく進みそうにない。

なんかしらのガイド本が必要、ということで、amazonを色々と見ていたら、良さそうな本があったので購入。

blog150208_1

絶対に挫折しない iPhoneアプリ開発「超」入門【Swift & iOS8.1以降 完全対応】

挫折を経験している自分にとっては、挫折しない、というのは、なかなか魅力的。本当に挫折しないかは、別として、少なくとも素人の挫折ポイントに対して、それなりの工夫がされているという期待は持てる。

結論から言えば、挫折せずに済んだ。
年末に買って、1ヶ月ぐらいで、この本に書かれていることをほとんど試してみることができた。

書いてあることを全てマスターしたか、と言われれば、そこまでは行っていないのだけど、それでも、アプリを作って、iPhoneの実機で動かせている。
iOSアプリにトライしてみようかな、という自分にとっては、かなりの効果があった。

一番のポイントは、説明に飛躍がない、というところか。
解説本の中には、Xcodeのどこを触れば、書いてある通りのことができるのか、ということがわからなくなってしまうものもあるが、この本は丁寧に、こことここをこの順番で操作するとの記述があるので、それに従っていくと、ちゃんと書かれている通りのことができる。

Xcodeの使い方とか、何度もやらないと覚えないことをちゃんと何度もやって覚えるので、身につきはじめている気がする。

この本だけでは、オリジナルのアプリを作るのは、ちょっと無理な気がするが、それでも自分にとっては、より離陸になった。

読むのに1ヶ月かかったのだが、ひとつは本が厚くて、持ち歩けないので、家に帰ってからしか読めない、というのがある。電子書籍版があればよかった。
ただ、今、2冊目の本を電子書籍版で読んでいるのだけど、これはこれで、なかなか頭に入ってこない。iPad miniだと、画面が少し小さい、というのもあるし、パラパラめくって調べたい、ということもある。

一番いいのは、紙の本を買うと、電子版も手に入る、というやつなのだけど。


絶対に挫折しない iPhoneアプリ開発「超」入門【Swift & iOS8.1以降 完全対応】

久しぶりにプログラミング入門 - Swift

前にSwiftが発表された時に、これからアプリを作ってみよう、という人に向いている、というのは出ていて、興味があった。

最近、仕事も落ち着いてきたので、ちょっとチャレンジしてみようかと。

プログラミング経験は、今から30年以上前の小中学生時代にBASICと、大学の時のHyperCardのHyperTalk、Apple Scriptぐらい。
20年ぐらいのブランクがある。ブランクというか、まったくの初心者だな。

以前、Xcodeもインストールしたことがあって、アプリ開発の本も買ったことがあるが、一切身につかず、終わってしまっていた。

iPhone&iPod touchアプリを作ろう! (はじめてのプログラミング)

前に買ったのはこの本かな。2010年だから、5年前らしい。

さて、どうなることやら。