SlideShare una empresa de Scribd logo
1 de 41
Descargar para leer sin conexión
SWIFT STUDY VOL.3
Created by Nagamine Hiromasa
SWIFT 勉強会
iOSアプリを開発してみたい
Swiftってどういうもの?
など、Swiftに興味を持っている人向けに
勉強会を開いています。
AGENDA
1. 前回のおさらい
2. ViewController
3. Gestrue Event
4. Closure
1. 前回のおさらい
Variable Type
View
Function
VARIABLE TYPE
変数を定義する場合2つのパターンがある
/* 変数を扱う場合 */
var : 中の値を変化させることができる
var num = 123
num = num + 10
/* 定数を扱う場合 */
let : 一度値を入れると変更できない
let num = 123
// num = num + 10 <= Error
VARIABLE TYPE
/* Int:数値, Double, Float:小数値 */
var number: Int = 123
var number: Double = 3.14
/* String:文字列 */
var text: String = "This is String"
/* Array, Dictionary:数値 */
var array: Array = Array(1, 2, 3)
Swiftは型推論なので、型を省略できます
/* 型を省略 */
var array = Array(1, 2, 3)
VIEW
画像やテキスト、図形などのオブジェクトを表示
UIKitというFrameworkを呼び出して使う
UIKit.frameworkのViewオブジェクト
UIView, UIImageView, UITextView, UITextField,
UILabel, UIButton, etc...
VIEW
100x100、背景色がブルーのビューのサンプルコード
// サンプルコード
// サイズを生成 (x, y, width, height): x,yは表示位置
var rect = CGRectMake(0, 0, 100, 100)
// 色を生成
var bgColor = UIColor.blueColor()
// 生成したサイズを使って、ビューを生成
var view = UIView(frame: rect)
// ビューの背景に色を設定
view.backgroundColor = gbColor
FUNCTION
関数の定義
/* 戻り値なし */
func aMethod(){...}
/* 戻り値あり */
func aMethod() -> 戻り値型 {
...
return 戻り値
}
/* 引数渡し */
func aMethod(int a:Int, int b:Int) -> 戻り値型 {
...
return 戻り値
}
FUNCTION
関数の使用例
/* "Hello, World"を出力 */
func printHelloWorld(){
println("Hello, World")
}
printHelloWorld() // => "Hello, World"が出力される
/* 引数の和 */
func sum(var a:Int, var b:Int) -> Int {
var ans = a + b
return ans
}
var ans = sum(5, 10) // => ans: 15
前回使った資料
Swift勉強会vol.1 資料
Qiita - Swiftでビューを操作する
2. VIEWCONTROLLER
ViewControllerとは?
画面の表示
遷移
dismiss/pop ViewController
VIEWCONTROLLERとは?
Viewを管理(表示・配置・アニメーションなど)
受け取ったデータに合わせてTextやViewを表示・操作
ViewControllerは自身にもViewを持っている
プロジェクト作成
ViewControllerは、Xcodeのプロジェクトを作成すると使えます。
まずは、Projectを作成します。
プロジェクト作成
画面の表示
Xcodeプロジェクトには最初からViewControllerが存在。
なので、プロジェクトを実行すれば画面を表示できます。
ビルド方法:Command + Shift + r
遷移
iOSアプリの画面の遷移は、以下の条件で行う
別のViewControllerへ移動
複数ViewControllerが必要
なので、新しくViewControllerを1つ作成します。
遷移
File -> New -> File (command + N) でSwiftファイルを選択
"BlueViewController"という名前をつける
import UIKit
class BlueViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// 背景色にブルー設定する
self.view.backgroundColor = .blueColor()
}
}
遷移
BlueViewControllerへ遷移するためのボタンを設置
ボタンの設置には、Main.storyboardを使用する
遷移
遷移の種類
Push
Modal
Popover
etc..
資料
Qiita - SwiftでViewControllerを使う
PROBLEM 1
1. ViewControllerにボタンを追加しましょう
BlueButton: Text = "Blue"
RedButton: Text= "Red"
2. プロジェクトにViewControllerを追加しましょう。
BlueViewController: BackgroundColor = Blue
RedViewController: BackgroundColor = Red
3. それぞれの画面へ遷移する処理を追加しましょう
BlueButton => BlueViewController
RedButton => RedViewController
PROBLEM 1
Problem 1 解答コード
3. GESTRUE EVENT
Gestureとは?
種類
処理の流れ
ジェスチャーの追加
GESTUREとは?
画像を拡大、ゲームでアイテムをタップするときの指の動き
指の動きに対して、対応するジェスチャーがある
Viewにジェスチャーをするとイベントが発生する
種類
Tap
Pan
Pinch
Rotate
Swipe
LongPress
処理の流れ
ジェスチャーの追加
タップすると発生する処理をViewControllerに実装します
ここでは、"tapGesture"というメソッドを定義します
var view1: UIView!
func tapGesture(gestureRecognizer: UITapGestureRecognizer){
// タップviewの色を変える (Red <=> Blue)
if(view1.backgroundColor == .redColor()) {
view1.backgroundColor = .blueColor()
}
else {
view1.backgroundColor = .redColor()
}
}
ジェスチャーの追加
ジェスチャーを生成します。
Selectorクラスを使って呼び出すメソッドを指定します。
var aSelector = Selector("tapGesture:")
var tapRecognizer = UITapGestureRecognizer(target: self, action: aSelector)
ジェスチャーの追加
ViewControllerに処理を追加すると以下のようになります。
ソースコードは下にスクロールします。
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = .whiteColor()
// ジェスチャーの生成
var aSelector = Selector("tapGesture:")
var tapRecognizer = UITapGestureRecognizer(target: self, action: aSelector))
// ビューの生成
view1 = UIView(frame: CGRectMake(30, 30, 100, 100))
view1.backgroundColor = .redColor()
// ジェスチャーの追加
view1.addGestureRecognizer(tapRecognizer)
self.view.addSubview(view1)
}
// ジェスチャーイベント処理
資料
Qiita - Swiftでジェスチャーの追加
GitHub - Gesture Sample Basic
PROBLEM 2
1. x: 100, y:100, width:100, height:100, backgroundColor: .blueColor
のビューを追加しましょう
2. 1で追加したViewをタップしたら、赤-> 青と変化するようにジ
ェスチャーを追加してみましょう
3. 画面の白い部分をタップしたら、2のビューが緑になるジェス
チャーを追加してみましょう
4. 3のジェスチャーを書き換えて、タップした位置に新しく2の
ビューを追加してみましょう
4. CLOSURE
Closureとは?
サンプルコード
CLOSUREとは?
一時的な関数を定義することができる
関数内でも定義することができる
ネストした環境にcallbackを渡すときなどに必要
JavaScriptなどでも取り入れられている
クロージャー書き方
var closure = {(a: Int, b: Int) -> 戻り値型 in
return 戻り値
}
サンプルコード
func executeClosureSample() {
// 足し算クロージャー
var closureAdd = {(#a: Int, #b: Int) -> Int in
return a + b
}
testClosure(a: 1,b: 2,closureAdd)
// 引き算クロージャー
var closureSubstract = {(#a: Int, #b: Int) -> Int in
return a - b
}
testClosure(a: 1,b: 2, closureSubstract)
}
PROBLEM
参考資料:GitHub - GestureSumple
少し告知
イベント
Swift もくもく会vol.3 (日付は未定)
Swift勉強会vol.4 (日付は未定)
今後、開催を予定しています
グループ
Swift頑張る会(Facebook)
Swift勉強会(Connpass)
現在2つグループがあります
これで、 は終了です。
ご参加有難うございました。
Swift勉強会vol.3

Más contenido relacionado

Similar a Swift study vol.03

App widgetでテザリング
App widgetでテザリングApp widgetでテザリング
App widgetでテザリング
Eiichi Tsuru
 
T90 きっと怖くないmvvm & mvpvm
T90 きっと怖くないmvvm & mvpvmT90 きっと怖くないmvvm & mvpvm
T90 きっと怖くないmvvm & mvpvm
伸男 伊藤
 
Windows azuremobileservice入門
Windows azuremobileservice入門Windows azuremobileservice入門
Windows azuremobileservice入門
Makoto Nishimura
 

Similar a Swift study vol.03 (20)

App widgetでテザリング
App widgetでテザリングApp widgetでテザリング
App widgetでテザリング
 
Introduction for Browser Side MVC
Introduction for Browser Side MVCIntroduction for Browser Side MVC
Introduction for Browser Side MVC
 
チュートリアルではじめるVue.js
チュートリアルではじめるVue.jsチュートリアルではじめるVue.js
チュートリアルではじめるVue.js
 
KIFの導入
KIFの導入KIFの導入
KIFの導入
 
Android Wear Apps
Android Wear AppsAndroid Wear Apps
Android Wear Apps
 
Windows phone & windows 8で見えてくるメトロの世界
Windows phone & windows 8で見えてくるメトロの世界Windows phone & windows 8で見えてくるメトロの世界
Windows phone & windows 8で見えてくるメトロの世界
 
Windows スクリプトセミナー WMI編 VBScript&WMI
Windows スクリプトセミナー WMI編 VBScript&WMIWindows スクリプトセミナー WMI編 VBScript&WMI
Windows スクリプトセミナー WMI編 VBScript&WMI
 
Knockout.js を利用したインタラクティブ web アプリケーション開発
Knockout.js を利用したインタラクティブ web アプリケーション開発Knockout.js を利用したインタラクティブ web アプリケーション開発
Knockout.js を利用したインタラクティブ web アプリケーション開発
 
Swift 2.0 で変わったところ「後編」 #cswift
Swift 2.0 で変わったところ「後編」 #cswiftSwift 2.0 で変わったところ「後編」 #cswift
Swift 2.0 で変わったところ「後編」 #cswift
 
GUI アプリケーションにおける MVC
GUI アプリケーションにおける MVCGUI アプリケーションにおける MVC
GUI アプリケーションにおける MVC
 
wxPython入門(大阪Pythonユーザの集まり2014/03)
wxPython入門(大阪Pythonユーザの集まり2014/03)wxPython入門(大阪Pythonユーザの集まり2014/03)
wxPython入門(大阪Pythonユーザの集まり2014/03)
 
T90 きっと怖くないmvvm & mvpvm
T90 きっと怖くないmvvm & mvpvmT90 きっと怖くないmvvm & mvpvm
T90 きっと怖くないmvvm & mvpvm
 
Windows azuremobileservice入門
Windows azuremobileservice入門Windows azuremobileservice入門
Windows azuremobileservice入門
 
Xamarin.formsで作成する翻訳機能付きtwitterクライアント
Xamarin.formsで作成する翻訳機能付きtwitterクライアント Xamarin.formsで作成する翻訳機能付きtwitterクライアント
Xamarin.formsで作成する翻訳機能付きtwitterクライアント
 
20151130 Apple Pencilを使う
20151130 Apple Pencilを使う20151130 Apple Pencilを使う
20151130 Apple Pencilを使う
 
Openshift 20191128
Openshift 20191128Openshift 20191128
Openshift 20191128
 
OSC2011 Androidハンズオン
OSC2011 AndroidハンズオンOSC2011 Androidハンズオン
OSC2011 Androidハンズオン
 
Android test tutorial
Android test tutorialAndroid test tutorial
Android test tutorial
 
[Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(e-Learning) 2018年3月15日 放送
[Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(e-Learning) 2018年3月15日 放送[Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(e-Learning) 2018年3月15日 放送
[Cloud OnAir] アプリケーションにフォーカス!ビジネスに直結する開発の極意をご紹介します。(e-Learning) 2018年3月15日 放送
 
Sails workshop4
Sails workshop4Sails workshop4
Sails workshop4
 

Swift study vol.03