Swift

計算して答えを出す

数字が一つ入ったので、もう一つ入れて、それに、四則演算の記号のボタンがあれば、答えが出せる

実際には、一つ目の数字を入れて、次に演算記号を入れて、2つ目の数字を入れて、イコールを押すと計算する。

演算記号を入れたタイミングで、変数Bを変数Aに入れて、新たに2つ目の数字を変数Bに入れれば、計算に必要な要素はすべて揃う。

で、実際の計算。

算術式自体は簡単だけど、四則演算は+-×÷4種類あって、それぞれごとに計算が違う。
これを本に載っていた、Switch〜caseでやってみる。

四則演算のボタンに、どの記号が押されたか識別する名札を貼っておき、計算するときに、名札をみて、行う計算を変える。

@IBAction func pushPlus(sender: UIButton) {
       kigou = "tasu"
}

と、ボタンのアクションに書いておいて、

計算部分のファンクションに、

switch kigou {
       case "tasu": answer = value1 + value2
      
case "hiku": answer = value1 - value2
      
case "kakeru": answer = value1 * value2
       case "waru": answer = value1 / value2
       default: answer = value1 + value2
}

と、名札によって、違う処理を書いた。
defaultがないとエラーが出てしまうので、実際には使わないが、足し算処理を書いておいた。

これで記号にあった計算はできそうだが、次はどのタイミングで計算するか。

普通はイコールボタンを押したら、計算を走らせて、答えを出力する。

でも、ちょっと考えると、イコールボタンを押さなくても、ここまでで計算する要素が、すでに決まっているのだから、計算した結果をすぐに表示できるな、と。
なので、イコールボタンを付けないでやってみる。

あとは、記号を押したときに、その記号を表示するラベルを用意。

実際に組んでみると、ボタンを押すと、どんどん答えが書き変わって、ちょっと楽しい。

演算記号を押すと、答えの値が、変数Aに代入され、変数Bはゼロに戻して、変数Bが入力待ちになる。
そこでボタンを押すと、またあらたに計算が始まる、始まるという仕掛け。

Comments

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


電卓アプリの続き。

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

今、自分が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に入れて、表示すると、電卓っぽく数字を一つずつ入れると、電卓っぽく桁が増えていく表示ができた。
Comments

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

少し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だけに済みそう。

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

Comments

Swiftの感想

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

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

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

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

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

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

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



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

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

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

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

blog150208_1

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

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

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

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

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

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

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

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

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


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

Comments

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

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

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

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

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

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

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

さて、どうなることやら。
Comments
7月 2017
6月 2017
5月 2017
4月 2017
3月 2017
2月 2017
1月 2017
12月 2016
11月 2016
10月 2016
9月 2016
8月 2016
7月 2016
6月 2016
5月 2016
4月 2016
3月 2016
2月 2016
1月 2016
12月 2015
11月 2015
10月 2015
9月 2015
8月 2015
7月 2015
6月 2015
5月 2015
4月 2015
3月 2015
2月 2015
1月 2015
12月 2014
11月 2014
10月 2014
9月 2014
8月 2014
6月 2014
5月 2014
4月 2014
3月 2014
2月 2014
1月 2014
12月 2013
11月 2013
10月 2013
9月 2013
8月 2013
7月 2013
6月 2013
5月 2013
4月 2013
3月 2013
2月 2013
1月 2013
12月 2012
11月 2012
10月 2012
9月 2012
8月 2012
7月 2012
6月 2012
5月 2012
4月 2012
3月 2012
2月 2012
1月 2012
12月 2011
11月 2011
10月 2011
9月 2011
8月 2011
7月 2011
6月 2011
5月 2011
4月 2011
3月 2011
2月 2011
1月 2011
12月 2010
11月 2010
10月 2010
9月 2010
8月 2010
7月 2010
6月 2010
5月 2010
4月 2010
3月 2010
2月 2010
1月 2010
12月 2009
11月 2009
10月 2009
9月 2009
8月 2009
7月 2009
6月 2009
5月 2009
4月 2009
3月 2009
2月 2009
1月 2009
12月 2008
11月 2008
10月 2008
8月 2008
5月 2008
4月 2008
3月 2008
2月 2008
1月 2008
12月 2007
11月 2007
10月 2007
9月 2007
8月 2007
7月 2007
6月 2007
5月 2007
4月 2007
3月 2007
2月 2007
1月 2007
11月 2006
10月 2006
9月 2006
5月 2006
2月 2006
1月 2006
12月 2005
10月 2005
9月 2005
8月 2005
7月 2005
6月 2005
5月 2005
1月 2005
11月 2004
10月 2004
8月 2004
7月 2004
5月 2004
4月 2004
3月 2004
2月 2004
1月 2004
12月 2003
11月 2003
10月 2003
9月 2003
7月 2003
5月 2003
3月 2003
11月 2002
9月 2002
8月 2002
6月 2002
1月 2002
11月 2001
10月 2001
5月 2001