SlideShare a Scribd company logo
熊⾕友宏
http://ez-net.jp/
2016.04.24 … 集まれ Swift 好き!Swift 愛好会 #6
2017.03.21 … Swift 3.1 対応
主要3プロトコルを眺めてみる
Swift カジュアルプログラミング
Swift 3.1
前回の Swift 愛好会 にて
プロトコル
▶ 存在の感じ⽅
▶ 観察のしかた
▶ 読み進め⽅
繪⾯さんが⾒せてくれたこと
プロトコルを知ると
Swift の気持ちが⾒えてくる
Swift の声をもっと聴きたい
今回
プロトコルを実際に巡って
Swift の⼼に触れてみる
標準ライブラリの旅
主要3プロトコル 編
主要3プロトコル
気づかずに多⽤してるプロトコルたち
▶ Collection
▶ Sequence
▶ IteratorProtocol
たとえば、配列
配列ってこんな感じ
Array<Element>
配列って
他にどんな機能があるんだろう
配列の定義をたどる
Jump To Definition
Shortcut ⌃ ⌘ J
配列の定義
これまでの定義の⾒⽅
こんな機能を
持っている
配列の定義
新しい定義の⾒⽅
こんな性質も
持ち合わせている
プロトコルが
型に性質を与える
Collection が
配列らしさの根底にある
Array<Element>: Collection
掘り下げてみよう
プロトコル観察(1)
Collection
その前に
想像してみてください
配列の特徴を想像
▶ 複数の要素を内包する
▶ 添字を使って要素を取り出せる
▶ 部分配列を切り出せる
Collection の印象を想像
▶ 直訳すると、集約型
▶ 複数の要素を集めていそう
想像が
理解の⼤事な助けになる
Collection を観察
想像を以って
Collection 観察
定義を辿る
Shortcut ⌃ ⌘ J
Collection 観察
定義を眺める(とにかく気軽に🙂)
プロトコルを
継承してる
Collection 観察
もう少し定義を眺める(とにかく気軽に🙂)
なんだろう?
ややこしそう
内容を扱う
配列の切り出し
添字で参照
Collection 観察
再び定義を眺める(とにかく気軽に🙂)
ややこしそう
配列の切り出し
配列切り出しで
使っていた
Collection と
似た性質である
Collection を
知れば解りそう
とりあえず
部分配列っぽい
Collection 観察
ここまでの理解で定義を⾒渡す
残るのは
この4つだけ
Collection 観察
まだ判らないプロトコル
▶ Indexable
▶ Sequence
▶ IteratorProtocol
▶ IndexableBase
索引付け可能?
連続型?
⽣成器型?
これなら
解りそうかも
索引付け可能、の⼟台?
これなら
解りそうかも
標準ライブラリの旅
ここまでの まとめ
▶ Collection

▶ Sequence

▶ IteratorProtocol

▶ Indexable, IndexableBase



標準ライブラリの旅
ここまでの まとめ
観察中 …
未調査
未調査
増えた!
プロトコル観察(2)
Indexable
Indexable の印象を想像
▶ 直訳すると、索引付け可能
▶ 索引で何かを扱えそう
Indexable 観察
定義を辿る
Shortcut ⌃ ⌘ J
Indexable 観察
定義を眺める


また新しい
プロトコル
索引を
距離で移動
さっきも⾒たけど
まだ知らない
索引から
距離を算出
Indexable 観察
再び定義を眺める


また新しい
プロトコル
さっきも⾒たけど
まだ知らない
とりあえず
符号付き整数?
とりあえず
Indexable の基盤?
標準ライブラリの旅
ここまでの まとめ
▶ Collection

▶ Sequence

▶ IteratorProtocol

▶ Indexable, IndexableBase

▶ SignedInteger

増えた!
観察中 …
標準ライブラリの旅
ここまでの まとめ
観察中 …
未調査
未調査
プロトコル観察(3)
IndexableBase
IndexableBase の印象を想像
▶ 索引付け可能にするための⼟台?
▶ Indexable の基盤になってそう
IndexableBase 観察
定義を辿る
Shortcut ⌃ ⌘ J
IndexableBase 観察
定義を眺める
また新しい
プロトコル
索引の範囲表現
索引の範囲表現
これはなに…?
IndexableBase 観察
調べやすそうなところに注⽬
これはなに…?
全く⼿がかりを
読み取れない …
そういう時は
想像で OK !
IndexableBase 観察
再び定義を眺める
残るのは
この1つだけ
とりあえず
⽐較可能?
Indexable, IndexableBase が
だいたいわかった
IndexableBase
まとめ
▶ 索引の範囲を取得できる
▶ 添字で索引を添えてアクセスできる
Indexable
まとめ
▶ Indexable の性質を引き継ぐ
▶ それに加えて、距離の概念を持つ
Indexable
世界観
索引の範囲を取得でき、添字で要素を参照できる性質
索引には距離の概念があり、距離指定して移動可能
なにか
startIndex endIndex
標準ライブラリの旅
ここまでの まとめ
標準ライブラリの旅
ここまでの まとめ
▶ Collection

▶ Sequence

▶ IteratorProtocol

▶ Indexable, IndexableBase

索引の範囲を取得し、添字で要素を参照できる性質
▶ SignedInteger

▶ Comparable
観察中 …
未調査
未調査
増えた!
未調査
プロトコル観察(4)
SignedInteger
SignedInteger の印象を想像
▶ 直訳すると、符号付き整数
▶ 普通に数として使えそう
SignedInteger 観察
定義を辿る
Shortcut ⌃ ⌘ J
SignedInteger 観察
定義を眺める
IntMax 型との
相互変換
名前的に 内部⽤…?
察しがつくので とりあえず OK
知らないプロトコル
でもたぶん 整数
SignedInteger が
だいたいわかった
SignedInteger
まとめ
▶ 符号付き整数
▶ 整数としての性質を持つ
標準ライブラリの旅
ここまでの まとめ
標準ライブラリの旅
ここまでの まとめ
▶ Collection

▶ Sequence

▶ IteratorProtocol

▶ Indexable, IndexableBase

索引の範囲を取得し、添字で要素を参照できる性質
▶ SignedInteger

符号付き整数の性質
▶ Comparable
観察中 …
未調査
未調査
未調査
プロトコル観察(5)
Comparable
Comparable の印象を想像
▶ 直訳すると、⽐較可能
▶ 2つの値を⽐較できそう
Comparable 観察
定義を辿る
Shortcut ⌃ ⌘ J
Comparable 観察
定義を眺める
不等号で⽐較
Equatable の

性質も持つ
等号で⽐較
Comparable が
だいたいわかった
SignedInteger
まとめ
▶ 値の⼤⼩を⽐較できる
▶ 値が同じか判定できる
Comparable
世界観
値を⽐較できる性質
値
値
標準ライブラリの旅
ここまでの まとめ
標準ライブラリの旅
ここまでの まとめ
▶ Collection

▶ Sequence

▶ IteratorProtocol

▶ Indexable, IndexableBase

索引の範囲を取得し、添字で要素を参照できる性質
▶ SignedInteger

符号付き整数の性質
▶ Comparable

値の⼤⼩⽐較と同値性⽐較が可能な性質
観察中 …
未調査
未調査
プロトコル観察(6)
Sequence
Sequence の印象を想像
▶ 直訳すると、連続型
▶ 連続した値を扱えそう
Sequence 観察
定義を辿る
Shortcut ⌃ ⌘ J
Sequence 観察
ざっくり定義を眺める
この辺が
性質を意味しそう
この辺は
性質がもたらす能⼒
SequenceType 観察
読みたいとこにアタリをつける
こちらに注⽬
ざっと⾒て
だいたい OK !
SequenceType 観察
アタリをつけたところを読む
再び登場。
なんだろう?
Iterator を
⽣成する?
プロトコル観察(7)
IteratorProtocol
IteratorProtocol の印象を想像
▶ 直訳すると、反復器を表すプロトコル
▶ 繰り返し処理で使いそう
IteratorProtocol 観察
定義を辿る
Shortcut ⌃ ⌘ J
IteratorProtocol 観察
定義を眺める
次の値を取得する
IteratorProtocol が
だいたいわかった
IteratorProtocol
まとめ
▶ 次の要素を取り出せる
▶ 取り出せない可能性もある
IteratorProtocol
世界観
次へ次へと要素を
取り出していける型の性質
next
反復器 要素
要素
要素
標準ライブラリの旅
ここまでの まとめ
標準ライブラリの旅
ここまでの まとめ
▶ Collection

▶ Sequence

▶ IteratorProtocol

次へ次へと要素を取り出していける型の性質
▶ Indexable, IndexableBase

索引の範囲を取得し、添字で要素を参照できる性質
▶ SignedInteger

符号付き整数の性質
▶ Comparable

値の⼤⼩⽐較と同値性⽐較が可能な性質
観察中 …
観察中 …
プロトコル観察(8)
Sequence
Sequence 観察
ここまでくると意味が汲める
次々と値を

取得できる型
次々と値を
取得できる反復器を作る
Sequence が
だいたいわかった
Sequence
まとめ
▶ 連続する要素を扱う型
▶ 要素を次々に得る概念を持つ
▶ 要素の並び順までは語られてなさそう
Sequence
世界観
連続する複数の要素を扱う型の性質
反復器を通して要素を次々と取得できる
makeIterator
反復器
要素
要素
要素
要素 要素 要素 要素
標準ライブラリの旅
ここまでの まとめ
標準ライブラリの旅
ここまでの まとめ
▶ Collection

▶ Sequence

連続する複数の要素を扱う型の性質
▶ IteratorProtocol

次へ次へと要素を取り出していける型の性質
▶ Indexable, IndexableBase

索引の範囲を取得し、添字で要素を参照できる性質
▶ SignedInteger

符号付き整数の性質
▶ Comparable

値の⼤⼩⽐較と同値性⽐較が可能な性質
観察中 …
プロトコル観察(9)
Collection
Collection 観察
改めて定義を⾒渡す 要素を連続的に取得でき、
索引でも扱える性質
この辺りは
もう⼤丈夫
内包する要素を
ひとつずつ取得
Collection が
だいたいわかった
Collection
まとめ
▶ 複数要素を集めて扱う型
▶ 要素は連続的で、索引で取り扱える性質を持つ
▶ 要素を次々に得る概念を持つ
Collection
世界観
連続する複数の要素を扱う型の性質
反復器や索引を通して要素を⾃由に取得できる
反復器
要素
要素
要素
要素 要素 要素 要素 要素
startIndex endIndex
要素
makeIterator
標準ライブラリの旅
達成
標準ライブラリの旅
達成
▶ Collection

連続する複数要素を持ち、索引で扱える型の性質
▶ Sequence

連続する複数の要素を扱う型の性質
▶ IteratorProtocol

次へ次へと要素を取り出していける型の性質
▶ Indexable, IndexableBase

索引の範囲を取得し、添字で要素を参照できる性質
▶ SignedInteger

符号付き整数の性質
▶ Comparable

値の⼤⼩⽐較と同値性⽐較が可能な性質
プロトコルの性質を知って活かすと
Swift がもっと楽しくなる!
Swift に声をかけてみよう
Swift の気持ちになって接する
フォトアルバム
フォトアルバム
▶ ひとつのデータ構造で表現する
▶ 複数枚の写真を収録する
▶ アルバムには表題を設定できる
▶ アルバム内の写真を⾃由に⾒られる
要件
フォトアルバム
実装
ここで
Swift の気持ちに寄り添う
フォトアルバムの性質
複数の写真を持ち、⾃由に眺められる
標準ライブラリの旅
同じ性質のプロトコルを探してみる
▶ Collection

連続する複数要素を持ち、索引で扱える型の性質
▶ Sequence

連続する複数の要素を扱う型の性質
▶ IteratorProtocol

次へ次へと要素を取り出していける型の性質
▶ Indexable, IndexableBase

索引の範囲を取得し、添字で要素を参照できる性質
▶ SignedInteger

符号付き整数の性質
▶ Comparable

値の⼤⼩⽐較と同値性⽐較が可能な性質
フォトアルバムに
Collection を適⽤
プロトコルの適⽤⽅法
▶ プロトコルが持つ性質を

実現するための振る舞いを実装する

▶ 性質から⾃然と導かれる振る舞いは

普通は実装しなくて良い

勘所
↑ その性質を持つことを約束するために必須
↑ 性質に基づいて既に規定されてる
具体的には …
プロトコルで規定されている概念のうち、
extension で実装されていないものを実装していく
CollectionType の適⽤⽅法
性質を実現するために必要な機能
▶ var startIndex: Index { get }

最初の要素が存在する位置を⽰す索引を取得
▶ var endIndex: Index { get }

最後の要素の次の位置を⽰す索引を取得
▶ subscript (position: Index) -> Element

指定した位置にある要素を取得
▶ func index(after: Index) -> Index

指定した位置の次の位置を算出
フォトアルバム
CollectionType を適⽤
こんな感じにすると …
フォトアルバム
Swift と会話が弾む
楽しい!
乱数ジェネレーター
乱数ジェネレーター
▶ Int の乱数を⽣成する
▶ 次々と乱数を作り出せる
要件
ここで
Swift の気持ちに寄り添う
乱数ジェネレーターの性質
次々と乱数を⽣成できる型
標準ライブラリの旅
同じ性質のプロトコルを探してみる
▶ Collection

連続する複数要素を持ち、索引で扱える型の性質
▶ Sequence

連続する複数の要素を扱う型の性質
▶ IteratorProtocol

次へ次へと要素を取り出していける型の性質
▶ Indexable, IndexableBase

索引の範囲を取得し、添字で要素を参照できる性質
▶ SignedInteger

符号付き整数の性質
▶ Comparable

値の⼤⼩⽐較と同値性⽐較が可能な性質
乱数ジェネレーターを
IteratorProtocol に基づいて実装
GeneratorType の適⽤⽅法
性質を実現するために必要な機能
▶ mutating func next() -> Element?

次の要素を取得
乱数ジェネレーター
IteratorProtocol に基づいて実装
こんな感じにすると …
乱数ジェネレーター
Swift と会話が弾む
Swiftと仲良くなれた!
かも?
Swift との会話を
ぜひ楽しんでみてください
まとめ
主要3プロトコルを眺めてみる
1. 標準ライブラリの旅
✓ Collection
✓ Sequence
✓ IteratorProtocol
✓ Indexable, IndexableBase
✓ Comparable
2. Swift に声をかけてみよう
✓ フォトアルバム
✓ 乱数ジェネレーター

More Related Content

What's hot

Start!! Ruby
Start!! RubyStart!! Ruby
Start!! Ruby
mitim
 
F#によるFunctional Programming入門
F#によるFunctional Programming入門F#によるFunctional Programming入門
F#によるFunctional Programming入門
bleis tift
 
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
parrotstudio
 
プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行
プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行
プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行monglee
 
本当のオブジェクト指向は可読性を上げる
本当のオブジェクト指向は可読性を上げる本当のオブジェクト指向は可読性を上げる
本当のオブジェクト指向は可読性を上げる
Wataru Terada
 
わんくま東京#38 LT 「Func&lt;> と ref / out 小咄」
わんくま東京#38 LT 「Func&lt;> と ref / out 小咄」わんくま東京#38 LT 「Func&lt;> と ref / out 小咄」
わんくま東京#38 LT 「Func&lt;> と ref / out 小咄」
Takeshi Kiriya
 
オブジェクト指向勉強会(基礎)
オブジェクト指向勉強会(基礎)オブジェクト指向勉強会(基礎)
オブジェクト指向勉強会(基礎)
nomuken
 
メタプログラミングってなに?
メタプログラミングってなに?メタプログラミングってなに?
メタプログラミングってなに?
KazukiWata
 
輪講・卒論にむけてのLaTeX入門
輪講・卒論にむけてのLaTeX入門輪講・卒論にむけてのLaTeX入門
輪講・卒論にむけてのLaTeX入門
Toshiaki Hashimoto
 
G*workshop sendai 20100424(v2)
G*workshop sendai 20100424(v2)G*workshop sendai 20100424(v2)
G*workshop sendai 20100424(v2)Nobuhiro Sue
 
20170131 python3 6 PEP526
20170131 python3 6 PEP526 20170131 python3 6 PEP526
20170131 python3 6 PEP526
masahitojp
 
君はまだ,本当のプリプロセスを知らない
君はまだ,本当のプリプロセスを知らない君はまだ,本当のプリプロセスを知らない
君はまだ,本当のプリプロセスを知らないdigitalghost
 
C言語の宣言読み方講座
C言語の宣言読み方講座C言語の宣言読み方講座
C言語の宣言読み方講座tetra_cat
 
第2回勉強会 オブジェクト指向
第2回勉強会 オブジェクト指向第2回勉強会 オブジェクト指向
第2回勉強会 オブジェクト指向
hakoika-itwg
 
闇魔術を触ってみた
闇魔術を触ってみた闇魔術を触ってみた
闇魔術を触ってみたSatoshi Sato
 
F#の基礎(?)
F#の基礎(?)F#の基礎(?)
F#の基礎(?)
bleis tift
 
磯野ー!関数型言語やろうぜー!
磯野ー!関数型言語やろうぜー!磯野ー!関数型言語やろうぜー!
磯野ー!関数型言語やろうぜー!
Ra Zon
 
Ruby講座第二回
Ruby講座第二回Ruby講座第二回
Ruby講座第二回mitsunaga
 

What's hot (20)

Ruby講座一回目
Ruby講座一回目Ruby講座一回目
Ruby講座一回目
 
Ruby講座一回目
Ruby講座一回目Ruby講座一回目
Ruby講座一回目
 
Start!! Ruby
Start!! RubyStart!! Ruby
Start!! Ruby
 
F#によるFunctional Programming入門
F#によるFunctional Programming入門F#によるFunctional Programming入門
F#によるFunctional Programming入門
 
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
 
プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行
プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行
プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行
 
本当のオブジェクト指向は可読性を上げる
本当のオブジェクト指向は可読性を上げる本当のオブジェクト指向は可読性を上げる
本当のオブジェクト指向は可読性を上げる
 
わんくま東京#38 LT 「Func&lt;> と ref / out 小咄」
わんくま東京#38 LT 「Func&lt;> と ref / out 小咄」わんくま東京#38 LT 「Func&lt;> と ref / out 小咄」
わんくま東京#38 LT 「Func&lt;> と ref / out 小咄」
 
オブジェクト指向勉強会(基礎)
オブジェクト指向勉強会(基礎)オブジェクト指向勉強会(基礎)
オブジェクト指向勉強会(基礎)
 
メタプログラミングってなに?
メタプログラミングってなに?メタプログラミングってなに?
メタプログラミングってなに?
 
輪講・卒論にむけてのLaTeX入門
輪講・卒論にむけてのLaTeX入門輪講・卒論にむけてのLaTeX入門
輪講・卒論にむけてのLaTeX入門
 
G*workshop sendai 20100424(v2)
G*workshop sendai 20100424(v2)G*workshop sendai 20100424(v2)
G*workshop sendai 20100424(v2)
 
20170131 python3 6 PEP526
20170131 python3 6 PEP526 20170131 python3 6 PEP526
20170131 python3 6 PEP526
 
君はまだ,本当のプリプロセスを知らない
君はまだ,本当のプリプロセスを知らない君はまだ,本当のプリプロセスを知らない
君はまだ,本当のプリプロセスを知らない
 
C言語の宣言読み方講座
C言語の宣言読み方講座C言語の宣言読み方講座
C言語の宣言読み方講座
 
第2回勉強会 オブジェクト指向
第2回勉強会 オブジェクト指向第2回勉強会 オブジェクト指向
第2回勉強会 オブジェクト指向
 
闇魔術を触ってみた
闇魔術を触ってみた闇魔術を触ってみた
闇魔術を触ってみた
 
F#の基礎(?)
F#の基礎(?)F#の基礎(?)
F#の基礎(?)
 
磯野ー!関数型言語やろうぜー!
磯野ー!関数型言語やろうぜー!磯野ー!関数型言語やろうぜー!
磯野ー!関数型言語やろうぜー!
 
Ruby講座第二回
Ruby講座第二回Ruby講座第二回
Ruby講座第二回
 

Viewers also liked

Swiftおさらい
SwiftおさらいSwiftおさらい
Swiftおさらい
Hidenori Takeshita
 
みんなで Swift 復習会での談笑用スライド – 6th #minna_de_swift
みんなで Swift 復習会での談笑用スライド – 6th #minna_de_swiftみんなで Swift 復習会での談笑用スライド – 6th #minna_de_swift
みんなで Swift 復習会での談笑用スライド – 6th #minna_de_swift
Tomohiro Kumagai
 
Railsチュートリアルの歩き方 (第4版)
Railsチュートリアルの歩き方 (第4版)Railsチュートリアルの歩き方 (第4版)
Railsチュートリアルの歩き方 (第4版)
Yohei Yasukawa
 
ようこそ! Swift Playgroundsへ
ようこそ! Swift Playgroundsへようこそ! Swift Playgroundsへ
ようこそ! Swift Playgroundsへ
KinkumaDesign
 
Swift勉強会
Swift勉強会Swift勉強会
Swift勉強会
Nagamine Hiromasa
 
ほんわかSwift勉強資料
ほんわかSwift勉強資料ほんわかSwift勉強資料
ほんわかSwift勉強資料
kouhei kawamata
 
Swift 3 その基本ルールを眺める #cswift
Swift 3 その基本ルールを眺める #cswiftSwift 3 その基本ルールを眺める #cswift
Swift 3 その基本ルールを眺める #cswift
Tomohiro Kumagai
 
Railsモデル設計ケーススタディ
Railsモデル設計ケーススタディRailsモデル設計ケーススタディ
Railsモデル設計ケーススタディ
zaru sakuraba
 
Sprite kitでの横スクロールジャンプ アクションゲーム開発
Sprite kitでの横スクロールジャンプ アクションゲーム開発Sprite kitでの横スクロールジャンプ アクションゲーム開発
Sprite kitでの横スクロールジャンプ アクションゲーム開発
studioshin
 
Swift 2.0 で変わったところ「後編」 #cswift
Swift 2.0 で変わったところ「後編」 #cswiftSwift 2.0 で変わったところ「後編」 #cswift
Swift 2.0 で変わったところ「後編」 #cswift
Tomohiro Kumagai
 
Swift Code in Swift - 2日間でゲームを作ってみた
Swift Code in Swift - 2日間でゲームを作ってみたSwift Code in Swift - 2日間でゲームを作ってみた
Swift Code in Swift - 2日間でゲームを作ってみた
axsh co., LTD.
 
NS Prefix - そこから見渡す Swift 3 の景色 #startup_mobile
NS Prefix - そこから見渡す Swift 3 の景色 #startup_mobileNS Prefix - そこから見渡す Swift 3 の景色 #startup_mobile
NS Prefix - そこから見渡す Swift 3 の景色 #startup_mobile
Tomohiro Kumagai
 
Swift イニシャライザー復習会 #love_swift #akibaswift #21cafe
Swift イニシャライザー復習会 #love_swift #akibaswift #21cafeSwift イニシャライザー復習会 #love_swift #akibaswift #21cafe
Swift イニシャライザー復習会 #love_swift #akibaswift #21cafe
Tomohiro Kumagai
 
はじめてのiOSアプリ開発 Swift対応版
はじめてのiOSアプリ開発 Swift対応版はじめてのiOSアプリ開発 Swift対応版
はじめてのiOSアプリ開発 Swift対応版
Tomoki Hasegawa
 
Dicionário de Bolso - Oswald de Andrade
Dicionário de Bolso - Oswald de AndradeDicionário de Bolso - Oswald de Andrade
Dicionário de Bolso - Oswald de Andrade
Universidade Federal de Roraima
 
Reportaje: Las subidas de tipos incentivan el ahorro
Reportaje: Las subidas de tipos incentivan el ahorroReportaje: Las subidas de tipos incentivan el ahorro
Reportaje: Las subidas de tipos incentivan el ahorro
Luis García Langa
 
Challenges for Asia’s Trade and Environment
Challenges for Asia’s Trade and EnvironmentChallenges for Asia’s Trade and Environment
Challenges for Asia’s Trade and Environment
Olivier Serrat
 
S&OP IBF-3 Core-Questions-Biel-07-07-12
S&OP IBF-3 Core-Questions-Biel-07-07-12S&OP IBF-3 Core-Questions-Biel-07-07-12
S&OP IBF-3 Core-Questions-Biel-07-07-12
Jim Biel
 
SeNSE -first presentation-
SeNSE -first presentation-SeNSE -first presentation-
SeNSE -first presentation-
SeNSE atNecst
 
自分達のサイボウズ Office を開発しよう
自分達のサイボウズ Office を開発しよう自分達のサイボウズ Office を開発しよう
自分達のサイボウズ Office を開発しよう
Shinya Hata
 

Viewers also liked (20)

Swiftおさらい
SwiftおさらいSwiftおさらい
Swiftおさらい
 
みんなで Swift 復習会での談笑用スライド – 6th #minna_de_swift
みんなで Swift 復習会での談笑用スライド – 6th #minna_de_swiftみんなで Swift 復習会での談笑用スライド – 6th #minna_de_swift
みんなで Swift 復習会での談笑用スライド – 6th #minna_de_swift
 
Railsチュートリアルの歩き方 (第4版)
Railsチュートリアルの歩き方 (第4版)Railsチュートリアルの歩き方 (第4版)
Railsチュートリアルの歩き方 (第4版)
 
ようこそ! Swift Playgroundsへ
ようこそ! Swift Playgroundsへようこそ! Swift Playgroundsへ
ようこそ! Swift Playgroundsへ
 
Swift勉強会
Swift勉強会Swift勉強会
Swift勉強会
 
ほんわかSwift勉強資料
ほんわかSwift勉強資料ほんわかSwift勉強資料
ほんわかSwift勉強資料
 
Swift 3 その基本ルールを眺める #cswift
Swift 3 その基本ルールを眺める #cswiftSwift 3 その基本ルールを眺める #cswift
Swift 3 その基本ルールを眺める #cswift
 
Railsモデル設計ケーススタディ
Railsモデル設計ケーススタディRailsモデル設計ケーススタディ
Railsモデル設計ケーススタディ
 
Sprite kitでの横スクロールジャンプ アクションゲーム開発
Sprite kitでの横スクロールジャンプ アクションゲーム開発Sprite kitでの横スクロールジャンプ アクションゲーム開発
Sprite kitでの横スクロールジャンプ アクションゲーム開発
 
Swift 2.0 で変わったところ「後編」 #cswift
Swift 2.0 で変わったところ「後編」 #cswiftSwift 2.0 で変わったところ「後編」 #cswift
Swift 2.0 で変わったところ「後編」 #cswift
 
Swift Code in Swift - 2日間でゲームを作ってみた
Swift Code in Swift - 2日間でゲームを作ってみたSwift Code in Swift - 2日間でゲームを作ってみた
Swift Code in Swift - 2日間でゲームを作ってみた
 
NS Prefix - そこから見渡す Swift 3 の景色 #startup_mobile
NS Prefix - そこから見渡す Swift 3 の景色 #startup_mobileNS Prefix - そこから見渡す Swift 3 の景色 #startup_mobile
NS Prefix - そこから見渡す Swift 3 の景色 #startup_mobile
 
Swift イニシャライザー復習会 #love_swift #akibaswift #21cafe
Swift イニシャライザー復習会 #love_swift #akibaswift #21cafeSwift イニシャライザー復習会 #love_swift #akibaswift #21cafe
Swift イニシャライザー復習会 #love_swift #akibaswift #21cafe
 
はじめてのiOSアプリ開発 Swift対応版
はじめてのiOSアプリ開発 Swift対応版はじめてのiOSアプリ開発 Swift対応版
はじめてのiOSアプリ開発 Swift対応版
 
Dicionário de Bolso - Oswald de Andrade
Dicionário de Bolso - Oswald de AndradeDicionário de Bolso - Oswald de Andrade
Dicionário de Bolso - Oswald de Andrade
 
Reportaje: Las subidas de tipos incentivan el ahorro
Reportaje: Las subidas de tipos incentivan el ahorroReportaje: Las subidas de tipos incentivan el ahorro
Reportaje: Las subidas de tipos incentivan el ahorro
 
Challenges for Asia’s Trade and Environment
Challenges for Asia’s Trade and EnvironmentChallenges for Asia’s Trade and Environment
Challenges for Asia’s Trade and Environment
 
S&OP IBF-3 Core-Questions-Biel-07-07-12
S&OP IBF-3 Core-Questions-Biel-07-07-12S&OP IBF-3 Core-Questions-Biel-07-07-12
S&OP IBF-3 Core-Questions-Biel-07-07-12
 
SeNSE -first presentation-
SeNSE -first presentation-SeNSE -first presentation-
SeNSE -first presentation-
 
自分達のサイボウズ Office を開発しよう
自分達のサイボウズ Office を開発しよう自分達のサイボウズ Office を開発しよう
自分達のサイボウズ Office を開発しよう
 

More from Tomohiro Kumagai

最近気づいた勉強法 — 勉強会開催の習慣化 #yumemi_grow
最近気づいた勉強法 — 勉強会開催の習慣化 #yumemi_grow最近気づいた勉強法 — 勉強会開催の習慣化 #yumemi_grow
最近気づいた勉強法 — 勉強会開催の習慣化 #yumemi_grow
Tomohiro Kumagai
 
Swift 所有権 要諦 #ゆるちとせ
Swift 所有権 要諦 #ゆるちとせSwift 所有権 要諦 #ゆるちとせ
Swift 所有権 要諦 #ゆるちとせ
Tomohiro Kumagai
 
_Function Builders in Swift #love_swift
_Function Builders in Swift #love_swift_Function Builders in Swift #love_swift
_Function Builders in Swift #love_swift
Tomohiro Kumagai
 
Property Wrappers の特徴を眺める #swiftzoomin
Property Wrappers の特徴を眺める #swiftzoominProperty Wrappers の特徴を眺める #swiftzoomin
Property Wrappers の特徴を眺める #swiftzoomin
Tomohiro Kumagai
 
みんなで Swift 復習会 GO! in "Swift Days Fukuoka" – 12nd′ オープニング&資料
みんなで Swift 復習会 GO! in "Swift Days Fukuoka" – 12nd′ オープニング&資料みんなで Swift 復習会 GO! in "Swift Days Fukuoka" – 12nd′ オープニング&資料
みんなで Swift 復習会 GO! in "Swift Days Fukuoka" – 12nd′ オープニング&資料
Tomohiro Kumagai
 
みんなで Swift 復習会
GO! in 札幌 – 10th′′
みんなで Swift 復習会
GO! in 札幌 – 10th′′みんなで Swift 復習会
GO! in 札幌 – 10th′′
みんなで Swift 復習会
GO! in 札幌 – 10th′′
Tomohiro Kumagai
 
イニシャライザー Part 2.5 #hakataswift
イニシャライザー Part 2.5 #hakataswiftイニシャライザー Part 2.5 #hakataswift
イニシャライザー Part 2.5 #hakataswift
Tomohiro Kumagai
 
ニコニコ超会議・文化の交差点 #techpub #ニコニコ超会議 #さくらシンデレラ
ニコニコ超会議・文化の交差点 #techpub #ニコニコ超会議 #さくらシンデレラニコニコ超会議・文化の交差点 #techpub #ニコニコ超会議 #さくらシンデレラ
ニコニコ超会議・文化の交差点 #techpub #ニコニコ超会議 #さくらシンデレラ
Tomohiro Kumagai
 
Swift クラスのイニシャライザー #devsap
Swift クラスのイニシャライザー #devsapSwift クラスのイニシャライザー #devsap
Swift クラスのイニシャライザー #devsap
Tomohiro Kumagai
 
iOSCon 2019 in London #ioscon #love_swift
iOSCon 2019 in London #ioscon #love_swiftiOSCon 2019 in London #ioscon #love_swift
iOSCon 2019 in London #ioscon #love_swift
Tomohiro Kumagai
 
Around the 変数 let #love_swift
Around the 変数 let #love_swiftAround the 変数 let #love_swift
Around the 変数 let #love_swift
Tomohiro Kumagai
 
もくもく執筆会 #技術同人誌再販Night
もくもく執筆会 #技術同人誌再販Nightもくもく執筆会 #技術同人誌再販Night
もくもく執筆会 #技術同人誌再販Night
Tomohiro Kumagai
 
みんなで Swift 復習会 GO! in 岩手 – 9th′
みんなで Swift 復習会 GO! in 岩手 – 9th′みんなで Swift 復習会 GO! in 岩手 – 9th′
みんなで Swift 復習会 GO! in 岩手 – 9th′
Tomohiro Kumagai
 
macOS アプリで Swift Package Manager を使ってみる #love_swift #hakataswift
macOS アプリで Swift Package Manager を使ってみる #love_swift #hakataswiftmacOS アプリで Swift Package Manager を使ってみる #love_swift #hakataswift
macOS アプリで Swift Package Manager を使ってみる #love_swift #hakataswift
Tomohiro Kumagai
 
みんなで Swift 復習会 GO! in 福岡 – 8th′ #minna_de_swift
みんなで Swift 復習会 GO! in 福岡 – 8th′ #minna_de_swiftみんなで Swift 復習会 GO! in 福岡 – 8th′ #minna_de_swift
みんなで Swift 復習会 GO! in 福岡 – 8th′ #minna_de_swift
Tomohiro Kumagai
 
Getting Started with Attending iOSCon in London 高画質・追記版 #love_swift #ioscon
Getting Started with Attending iOSCon in London 高画質・追記版 #love_swift #iosconGetting Started with Attending iOSCon in London 高画質・追記版 #love_swift #ioscon
Getting Started with Attending iOSCon in London 高画質・追記版 #love_swift #ioscon
Tomohiro Kumagai
 
みんなで Swift 復習会
GO! in 京都 – 6th′
みんなで Swift 復習会
GO! in 京都 – 6th′みんなで Swift 復習会
GO! in 京都 – 6th′
みんなで Swift 復習会
GO! in 京都 – 6th′
Tomohiro Kumagai
 
みんなで Swift 復習会 GO! in 福岡 – 5th′
みんなで Swift 復習会 GO! in 福岡 – 5th′みんなで Swift 復習会 GO! in 福岡 – 5th′
みんなで Swift 復習会 GO! in 福岡 – 5th′
Tomohiro Kumagai
 
勉強会の東京外開催の気持ち #yuru_bounen2017
勉強会の東京外開催の気持ち #yuru_bounen2017勉強会の東京外開催の気持ち #yuru_bounen2017
勉強会の東京外開催の気持ち #yuru_bounen2017
Tomohiro Kumagai
 
みんなで Swift 復習会 GO! in 福岡・発表資料
みんなで Swift 復習会 GO! in 福岡・発表資料みんなで Swift 復習会 GO! in 福岡・発表資料
みんなで Swift 復習会 GO! in 福岡・発表資料
Tomohiro Kumagai
 

More from Tomohiro Kumagai (20)

最近気づいた勉強法 — 勉強会開催の習慣化 #yumemi_grow
最近気づいた勉強法 — 勉強会開催の習慣化 #yumemi_grow最近気づいた勉強法 — 勉強会開催の習慣化 #yumemi_grow
最近気づいた勉強法 — 勉強会開催の習慣化 #yumemi_grow
 
Swift 所有権 要諦 #ゆるちとせ
Swift 所有権 要諦 #ゆるちとせSwift 所有権 要諦 #ゆるちとせ
Swift 所有権 要諦 #ゆるちとせ
 
_Function Builders in Swift #love_swift
_Function Builders in Swift #love_swift_Function Builders in Swift #love_swift
_Function Builders in Swift #love_swift
 
Property Wrappers の特徴を眺める #swiftzoomin
Property Wrappers の特徴を眺める #swiftzoominProperty Wrappers の特徴を眺める #swiftzoomin
Property Wrappers の特徴を眺める #swiftzoomin
 
みんなで Swift 復習会 GO! in "Swift Days Fukuoka" – 12nd′ オープニング&資料
みんなで Swift 復習会 GO! in "Swift Days Fukuoka" – 12nd′ オープニング&資料みんなで Swift 復習会 GO! in "Swift Days Fukuoka" – 12nd′ オープニング&資料
みんなで Swift 復習会 GO! in "Swift Days Fukuoka" – 12nd′ オープニング&資料
 
みんなで Swift 復習会
GO! in 札幌 – 10th′′
みんなで Swift 復習会
GO! in 札幌 – 10th′′みんなで Swift 復習会
GO! in 札幌 – 10th′′
みんなで Swift 復習会
GO! in 札幌 – 10th′′
 
イニシャライザー Part 2.5 #hakataswift
イニシャライザー Part 2.5 #hakataswiftイニシャライザー Part 2.5 #hakataswift
イニシャライザー Part 2.5 #hakataswift
 
ニコニコ超会議・文化の交差点 #techpub #ニコニコ超会議 #さくらシンデレラ
ニコニコ超会議・文化の交差点 #techpub #ニコニコ超会議 #さくらシンデレラニコニコ超会議・文化の交差点 #techpub #ニコニコ超会議 #さくらシンデレラ
ニコニコ超会議・文化の交差点 #techpub #ニコニコ超会議 #さくらシンデレラ
 
Swift クラスのイニシャライザー #devsap
Swift クラスのイニシャライザー #devsapSwift クラスのイニシャライザー #devsap
Swift クラスのイニシャライザー #devsap
 
iOSCon 2019 in London #ioscon #love_swift
iOSCon 2019 in London #ioscon #love_swiftiOSCon 2019 in London #ioscon #love_swift
iOSCon 2019 in London #ioscon #love_swift
 
Around the 変数 let #love_swift
Around the 変数 let #love_swiftAround the 変数 let #love_swift
Around the 変数 let #love_swift
 
もくもく執筆会 #技術同人誌再販Night
もくもく執筆会 #技術同人誌再販Nightもくもく執筆会 #技術同人誌再販Night
もくもく執筆会 #技術同人誌再販Night
 
みんなで Swift 復習会 GO! in 岩手 – 9th′
みんなで Swift 復習会 GO! in 岩手 – 9th′みんなで Swift 復習会 GO! in 岩手 – 9th′
みんなで Swift 復習会 GO! in 岩手 – 9th′
 
macOS アプリで Swift Package Manager を使ってみる #love_swift #hakataswift
macOS アプリで Swift Package Manager を使ってみる #love_swift #hakataswiftmacOS アプリで Swift Package Manager を使ってみる #love_swift #hakataswift
macOS アプリで Swift Package Manager を使ってみる #love_swift #hakataswift
 
みんなで Swift 復習会 GO! in 福岡 – 8th′ #minna_de_swift
みんなで Swift 復習会 GO! in 福岡 – 8th′ #minna_de_swiftみんなで Swift 復習会 GO! in 福岡 – 8th′ #minna_de_swift
みんなで Swift 復習会 GO! in 福岡 – 8th′ #minna_de_swift
 
Getting Started with Attending iOSCon in London 高画質・追記版 #love_swift #ioscon
Getting Started with Attending iOSCon in London 高画質・追記版 #love_swift #iosconGetting Started with Attending iOSCon in London 高画質・追記版 #love_swift #ioscon
Getting Started with Attending iOSCon in London 高画質・追記版 #love_swift #ioscon
 
みんなで Swift 復習会
GO! in 京都 – 6th′
みんなで Swift 復習会
GO! in 京都 – 6th′みんなで Swift 復習会
GO! in 京都 – 6th′
みんなで Swift 復習会
GO! in 京都 – 6th′
 
みんなで Swift 復習会 GO! in 福岡 – 5th′
みんなで Swift 復習会 GO! in 福岡 – 5th′みんなで Swift 復習会 GO! in 福岡 – 5th′
みんなで Swift 復習会 GO! in 福岡 – 5th′
 
勉強会の東京外開催の気持ち #yuru_bounen2017
勉強会の東京外開催の気持ち #yuru_bounen2017勉強会の東京外開催の気持ち #yuru_bounen2017
勉強会の東京外開催の気持ち #yuru_bounen2017
 
みんなで Swift 復習会 GO! in 福岡・発表資料
みんなで Swift 復習会 GO! in 福岡・発表資料みんなで Swift 復習会 GO! in 福岡・発表資料
みんなで Swift 復習会 GO! in 福岡・発表資料
 

Swift の3大プロトコルを眺めてみる #love_swift