February 2015

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


電卓アプリの続き。

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

今、自分が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

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日ぐらいかかったんじゃないかと思う。


Comments

Swiftの感想

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

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

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

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

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

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

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



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

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



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
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
December 2014
November 2014
October 2014
September 2014
August 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
December 2008
November 2008
October 2008
August 2008
May 2008
April 2008
March 2008
February 2008
January 2008
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
November 2006
October 2006
September 2006
May 2006
February 2006
January 2006
December 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
January 2005
November 2004
October 2004
August 2004
July 2004
May 2004
April 2004
March 2004
February 2004
January 2004
December 2003
November 2003
October 2003
September 2003
July 2003
May 2003
March 2003
November 2002
September 2002
August 2002
June 2002
January 2002
November 2001
October 2001
May 2001