Swiftビギナーズ倶楽部 第2回 
はじめてのIOSアプリ開発
Self-Intoroduction 
• スマホアプリ開発初心者(Objective-C、Swift全く未経験) 
• アプリケーションエンジニア(LAMP / Java / Oracle) 
• WordPressコミュニティへの参加するのが好き 
• JavaScriptが好き / Railsも触り始めた^^v
Today's Agenda 
• 初めてアプリ作ったよ♪ 
• Interface Builderでオブジェクト作成 
• 新規作成時に生成されるイベント 
• Optional value(オプショナル値) 
• override(オーバーライド)
初めてのiOSアプリ 
5秒でヒット! 
ドットインストール 
「iOSでストップウォッチを作ろう (全9回)」 
を参考に機能拡張してみました。 
Let's Demo! 
PREMIUM
ビギナーの歩み方 
サンプルコードを少しずつ変更して、 
機能を追加していく。
疑問を解明しよう! 
動いたは動いたが・・・ 
不思議がいっぱい!!
オブジェクトの作り方 
Interface Builderで作ると 
@IBOutlet weak var timerLabel: UILabel! 
・「IB」は、Interface Builderのこと。 
 オブジェクトと、プログラムの変数をつなぎ合わせる。 
・「weak」は、弱い参照の意味で、所有権がない??? 
 とりあえず、IBOutlet な項目は、基本weak がよいみたい。
オブジェクトの作り方 
Interface Builderで作ると 
@IBAction func startTimer(sender: AnyObject) { 
// ユーザーの操作による、処理を実装する 
} 
・ユーザーが行う操作に、メソッドをつなぎ合わせる。 
・ユーザーの操作によって、実行される。
まだまだ、疑問がいっぱい 
気になってしょうがないの、、、これ! 
@IBOutlet weak var timerLabel: UILabel! 
var startTime: NSTimeInterval? = nil 
これも!!
なんてググれば 
いいんだー???
Optional value(オプショナル値) 
・Swfitでは、通常の変数に「nil」は代入できない。 
・「nil」は、有効なデータが格納されていない、 
 値が代入されていない状態。 
・Swiftで実行時に「nil」が代入可能なのは、   
Optional Value を使っている場合のみ。 
補足 
空文字(ブランク)と、「nil」は違う状態。
Optional value(オプショナル値) 
@IBOutlet weak var timerLabel: UILabel! 
var startTime: NSTimeInterval? = nil 
・「!」を付けた場合:変数の中身が「nil」の場合に、 
           実行時にエラーになる。 
・「?」を付けた場合:変数の中身が「nil」の場合でも、 
エラーにはならない。
なぜ、こんな機能が? 
・開発時のバグは、「nil」の扱いを明確せず、適切な 
 実装をしないことによってバグが発生することがある。 
Swiftでは 
・「optional value」の機能によって、開発者がコードを 
実行する前に、「nil」の扱いを意識することによって、 
 安全性の高いプログラムが実装できる。
まだ、疑問あるよ! 
・アプリ起動後に、1度だけ実行される。 
override func viewDidLoad() { 
super.viewDidLoad() 
} 
・メモリが不足な状態に実行される。 
override func didReceiveMemoryWarning() { 
super.didReceiveMemoryWarning() 
} 
プログラム実行時に、自動的に起こるイベントは、 
この他にも、たくさんあります。 
補足
もう、一個疑問!! 
override func viewDidLoad() { 
super.viewDidLoad() 
} 
override(オーバーライド) 
って何? 
・親クラスのメソッドの替わり(上書きして)に、 
自分のメソッドを実行できる。
親クラスって何??? 
class ViewController: UIViewController { 
@IBOutlet weak var timerLabel: UILabel! 
override func viewDidLoad() { 
super.viewDidLoad() 
} 
} 
このクラスのこと 
「super」は、親メソッドを指す。 
親のviewDidLoadメソッドを実行。 
・「viewDidLoad」メソッドは、新規作成後に最初から書かれている。 
・この処理がないと、初期設定が行えなくなってしまうので特別。
Swiftビギナーズ倶楽部は 
わからないー! 
だれか教えてー♪ 
わからないことは周りの人に聞いて、気軽に教え合って、 
皆の疑問を1つでも解決して、楽しんで開発していきましょう。
Let's study together! 
Thank you :)

Swiftビギナーズ倶楽部 vol.2