超・超・超初心者向け 
Swift 勉強会Hiromasa Nagamine 
1
About 
Hiromasa Nagamine 
Works! 
• iOS Engineer! 
SNS! 
• Twitter: @web_chiro! 
• Facebook! 
History! 
• University of Aizu! 
• Adways Studio! 
• LINE Corporation
Swiftって?
新しいプログラミング言語 
Swift
Swift 
❖ AppleによってCocoa/Cocoa 
Touch開発向けに作られた新プ 
ログラミング言語。2014年6月 
のWWDCで公開! 
! 
❖ 今までiOS/OS Xアプリ開発に 
使用されたObjective-Cに変わ 
る新しい言語 
5
Swiftで出来ること
できること 
❖ iOS/OS Xアプリの開発! 
❖ iPhone Extensionの開発! 
❖ プッシュ通知のコントロール! 
! 
❖ Objective-Cのコードを利用できる! 
❖ より高品質なアプリを作る
Objective-Cでいいじゃない
なぜSwiftなのか
特徴 
❖ Appleは特徴として以下の4つを挙げている! 
1. Designed Safety! 
2. Modern! 
3. Fast & Powerful! 
4. Interactive 
10
1. Designed Safety 
❖ メモリ自動管理! 
❖ ARC(Automatic Reference Counting) - Objective-C! 
❖ 参照の状態に合わせてメモリの確保、解放を自動管理! 
❖ 変数の初期化! 
❖ 変数に何も値が入っていない状態だと、その変数を利用できないに設計さ 
れている! 
❖ nilといった様な値が無い状態を示す値を代入できない(!/? optionの利用)! 
❖ 変数名などの簡略化! 
❖ var, letの様に定義を簡略化することで人為的ミス/負担を削減
2. Modern 
❖ Objective-Cには無かった現代的な機能の追加! 
❖ 名前空間 (namespace)! 
❖ ジェネリックス (generics)! 
❖ クロージャ (closure)! 
❖ 複数戻り値! 
! 
❖ これらによって、プログラムが持つ幾つかの複雑性を解消できる
3. Fast & Powerful 
❖ 複雑なソートや暗号化タス 
クによる処理の高速化! 
❖ Python, Objective-Cより 
も高速化されていること 
をAppleが数値で公開
3. Fast & Powerful 
❖ 高速化によって、アプリの最適化の作業を軽減できる! 
! 
❖ 処理を高速化する事で、よりパワフルなアプリ開発が可 
能に
4. Interactive 
❖ Playgroundモードの追加! 
❖ このモードで実装することで、コーディングしながら処理の結果を確認するこ 
とができる! 
❖ REPL (Read-eval-print Loop)! 
❖ コンソールに直接Swift言語を入力する事で、処理中の値を確認することが出 
来る! 
❖ Ruby, Pythonなどのいくつかのスクリプト言語、関数型言語に導入されている! 
! 
❖ これらを利用する事で、デバッグなどの作業を容易にすることができる
Playground
簡単にまとめ
簡単にまとめ 
❖ Swiftでできること! 
❖ iOS/OS Xのアプリ開発が可能! 
❖ Objective-Cとの共存が可能! 
❖ Modern! 
❖ ジェネリクス、クロージャといった現代的な概念を追加! 
❖ Designed Safety! 
❖ メモリ不足や人為的ミスを減らすセーフティな設計! 
❖ Fast & Powerful! 
❖ 複雑な処理やタスクの暗号化による処理の高速化! 
❖ Interactive! 
❖ PlaygroundやREPLによる対話的な作業が可能になり、デバッグ等が容易に
Swiftで必要なもの
Swiftで必要なもの 
❖ Mac PC! 
❖ Xcode 6以上 
これだけです。
Xcode
Xcode 
❖ Swift! 
❖ Swift対応はXcode 6 (最新バージョン) から対応! 
❖ プロジェクトの作成! 
❖ Playgroundモード、通常モード! 
❖ アプリのビルドとシミュレーターの起動! 
❖ シミュレータと実機
Xcode - プロジェクトの作成 
❖ Xcode を開くと以下のプロジェクト作成画面がでてきます。! 
❖ 今回はPlaygroundモードを作ります
Xcode - プロジェクトの作成 
❖ プロジェクト名を入力して、次へ => 作成
Xcode - プロジェクトの作成 
❖ プロジェクトの完成です! 
ここにプログラムを書いて行きます。
実装
早速、今作ったプロジェクトに 
実装をしていきましょう
まずは、誰もが通る道 
“Hello, World.”
値の出力 
❖ println() 文 - コンソール出力! 
• 例 -> println(“Hello, World.”) 
データが見れる
出力された値を確認 
println()はコンソール出力なので、コンソールから確認す 
る必要がある! 
❖ コンソールの出力の確認方法 
コンソール出力結果として、出力される
変数型の種類と扱い 
基礎的な変数! 
❖ ver 型 (変数型)! 
❖ 中の値を変化させる事がある場合に利用! 
❖ let 型 (定数型)! 
❖ 固定値型として利用
変数型の種類と扱い 
❖ Int : 整数値、 Float/Double:小数値! 
• 数値を扱う型! 
• var number: Int = 1 / var nubmer: Double = 10.5! 
! 
❖ String:テキスト! 
• 文字列を扱う型! 
• var text: String = “Hello, World.”! 
! 
❖ Array, Dictionary:配列、ハッシュ! 
• 配列を扱う型! 
• var array: Array = Array(1, 2, 3)! 
• println(array[0]) // Output: => 1
利用例:変数 
❖ Int型 
❖ String型
関数 
funcを使って! 
❖ 戻り値なし関数! 
• func aMethod(){ …. }! 
! 
❖ 戻り値あり関数! 
• func aMethod() -> 戻り型{ …. 
return 戻り値 
}! 
! 
❖ 引数あり関数! 
• func aMethod(var a:Int, var b:Int){ …. }
利用例:関数 
❖ “Hello, World”を出力する関数 
❖ 足し算結果を返す関数
目標1 
1. println()とString型変数を使って”Hello, World”を出力してみ 
ましょう。! 
2. println()とInt型変数 a = 1, b = 3を使って合計値を出力してみ 
ましょう。! 
3. 関数printHelloWorld()定義して、”Hello, World”を出力してみ 
ましょう。
UIKit 
❖ User Interface - UIKit Framework! 
❖ Cocoa/Cocoa TouchのUIを利用するために必要なFramework! 
• UIViewController! 
• UIView! 
• UIButton! 
• UILabel! 
• UITextField! 
• etc…
Action 
❖ addTarget() - UIButton! 
❖ ボタンを押したときのアクションを指定できる! 
❖ UIControlEvent - ! 
❖ TouchUpInside! 
❖ TouchDragOutside! 
❖ EditingDidEnd! 
❖ etc…
ビューの色、配置/サイズの指定 
❖ UIColor - 色を指定する! 
❖ view.backgroundColor = UIColor.blueColor()! 
❖ blue, red, yellow, green, gray, white, black! 
❖ CGRect - 配置・サイズを指定する! 
❖ view.frame = CGRectMake(x, y, width, height)
目標2 
❖ 幅400、高さ400のUIViewの上に赤、青、黄色のUIView 
を配置してみましょう。幅・高さはともに60です。! 
• redColor : x=30, y=30, witdh=60, height=60! 
• blueColor : x=120, y=30, witdh=60, height=60! 
• yellowColor : x=210, y=30, witdh=60, height=60
目標2:答え 
❖ このようになるのが正解です。ベースのビューの背景の色はグレーで 
なくても大丈夫です。
目標3 
1. UITextField, UIButton, UILabelを使ってUITextFieldに 
入力した値を、送信ボタンを押してUILabelに出力する 
処理を書いてみましょう。 
2. Redボタン、Blueボタン、Yellowボタンを設置して 
UIViewのバックグラウンドの色を切り替える処理を書 
いてみましょう。
Cocoa touch Framework 
❖ Framework! 
❖ UIKit - UIを利用する! 
❖ Foundation - NSデータ構造を利用する! 
❖ CoreData - コアデータを利用する! 
❖ MapKit - Map APIを利用する! 
❖ etc…
ざっと実装の話をしました
まとめ 
❖ Swiftとは! 
• 4つの特徴:Designed safety, Modern, Fast, Interactを備えている! 
• より高品質なアプリ開発がしやすくなっている! 
! 
❖ 開発について! 
❖ iOS/OS Xの機能を使うためにFrameworkをインポートして使う! 
❖ UIは基本的にViewの上に様々なパーツを乗せて実装していく
今回やったことが 
基本的な考え方になっていきます。

Swift勉強会