SlideShare uma empresa Scribd logo
1 de 57
Baixar para ler offline
Study Swift
2014/7/9
Urushihara Akihiro
@U_Akihir0
IntroductionIntroduction
● Swift のここがすごい!
● AltJS のような次世代的な言語設計
● LLVM-Backend による高速な動作の実現
● 過去の資産 Objective-C との連携
● ARC GC による高速なメモリ管理
目次目次
● Swift のセットアップ
● Swift の基本的な構文
● Swift の発展的な構文
目次目次
● Swift のセットアップ
● Swift の基本的な構文
● Swift の発展的な構文
SwiftSwift のセットアップのセットアップ
● XCode6 beta 以降のインストール
● XCode のダウンロードには課金アカウントが必要
– 年間 9000 円ぐらいの iOS or Mac App の開発契約
それだけ
iOS 開発環境もそれだけでセットアップ完了
– 某 Android に比べれば 100 倍も簡単!
SwiftSwift プロジェクトの作成プロジェクトの作成
●
新しいプロジェクトを作る際に言語欄で
「Swift」を選択すると Swift 向けの各種
テンプレートプロジェクトが作成される
SwiftSwift プロジェクトの作成プロジェクトの作成
●
新しいプロジェクトを作る際に言語欄で
「Swift」を選択すると Swift 向けの各種
テンプレートプロジェクトが作成される
SwiftSwift の基本的なお約束の基本的なお約束
●
変数に対して型宣言はしません
●
変数の型は自動的に推論されます
– バリアント型ではないので注意
●
一般的なオブジェクト指向の言語です
● 記述的な部分では、AltJS に近い言語です
– CofeeScript とかに近いという感じ(?)
● Class、Struct、Enum があります
●
しかし、どれでも同じようなことができる…
目次目次
● Swift のセットアップ
● Swift の基本的な構文
● Swift の発展的な構文
!書く前の注意!!書く前の注意!
●
プログラム中に日本語がある場合に補完が効きま
せん(コメントも含まれます)(XCode beta6-2)
●
コピーライトに「年」とか入ってると死ぬ
変数の型変数の型 (C(C言語との対応言語との対応))
●
基本的に大文字になると考えればいい
● int → Int
● float → Float
● double → Double
●
文字列等
● String (NSString in ObjC)
● Array, Dictionary
● AnyObject (id in ObjC)
変数の宣言変数の宣言
● let か var を付けて宣言 (基本 var でいい)
● let は Java でいう Final に近い
– 一度代入されると変更できない
●
型を明示することも可能
クラスの宣言クラスの宣言
● class 以下でクラスを宣言
● 継承とプロトコル (インターフェース) は :
以下にカンマ区切りで名前を羅列する
●
フィールドの宣言は同じ
init deinitinit deinit
●
イニシャライザとファイナライザを記述できる
●
!イニシャライザの段階でフィールド変数を
全部初期化しなければならない!
– 例外はあるが後述する
initinit のあれこれのあれこれ
● 継承した場合、super.init() を呼ばないといけない
● しかし、super.init() の前に必ず継承して追加した
フィールド変数を全て初期化しないといけない
● super.init() を呼ぶ前に継承元のフィールド変数を
読み込むような処理を書いてはいけない
initinit のあれこれのあれこれ
● 継承した場合、super.init() を呼ばないといけない
● しかし、super.init() の前に必ず継承して追加した
フィールド変数を全て初期化しないといけない
● super.init() を呼ぶ前に継承元のフィールド変数を
読み込むような処理を書いてはいけない
関数宣言関数宣言
●
関数宣言は以下のようなフォーマットで行う
● func 関数名 (引数名1:引数型1, …) -> 返り値の型 {
●
無名関数はこのようには宣言しないので注意
– Blocks という項目にて後述
オーバーライドオーバーライド
●
関数のオーバーライドは明示的に宣言する
● func の前に override と記述
静的メソッド静的メソッド
● func の前に class を付ける
●
静的フィールド変数には対応していない
– 構造体、列挙体のみ用いることができる
表示関数表示関数
● Java っぽく print, println みたいな関数がある
●
文字列の中に数値を埋め込む方法もある
文字列文字列
●
文字列は直感的に分かりやすくなった
● NSString の基本的な操作構文にも対応してる
● + で文字列結合できるよ、やったね!
– Objective-C では糞長い関数を書く必要がある
数値数値
●
数値は自動でオブジェクトにボクシングされる
● Objective-C 的には NSNumber に勝手に変化する
– 一見、生の数値に対してメソッドコールが可能
キャストキャスト
● Swift では暗黙の型変換は行われない
● 1 + 1.1 はエラーになる (型が違うため)
– 演算子オーバーロードで解決はできる
●
変数の型キャストは以下のように行う
●
型名で覆う キャスト範囲が分かりやすい
演算子オーバーロード演算子オーバーロード
●
型の演算を上書きすることもできる
● @infix を付けて関数を書き換える
タプルタプル
●
タプルを用いることができる
●
簡易的な構造体だと思えば大体あってる
(Float, Float, Float) のタプルは
struct fvec3{ float f1, f2, f3; } のようなもの
Optional TypeOptional Type
●
個人的にややっこしい部分なので強調
● Swift では安全性の為に、基本的に変数に
null の代入を許容していない
→ null の表現はどのようにしたらいいのか?
→ Optional Type を用いる
– null を許容した型と捉えればいい
? or !? or !
●
変数宣言の際に型を明示し、型名の後に
? or ! をつけると Optional Type になる
● null の代入が許容される
nullnull に対する参照に対する参照 (1)(1)
● 基本的に null に対する参照は null が返る
●
ランタイムエラーにはならず、処理が続行する
● Swift では明示的に記載しなければならない
Null 要素の場合は結果は Null になる関数呼び出し
nullnull に対する参照に対する参照 (2)(2)
● null に対する参照が行われた場合、ランタイムエ
ラーにしたいという場合も明示的に書く
● ? ではなく ! にする
Null 要素の場合ランタイムエラーになる関数呼び出し
Optional TypeOptional Type の代入の代入
● 通常の変数に Optional Type の変数を代入したい
● null の場合ランタイムエラーになる
●
単純に代入文を書くと構文エラーになる
– 代入後の変数名に ! マークを付ける
基本的にランタイムエラーに基本的にランタイムエラーに
● Optional Type だが、基本的にnull参照はランタイ
ムエラーにして欲しいし、! とか書きたくない場合
●
要するに今まで通りの変数をお望みの場合
– 変数宣言時に型の後に ? ではなく ! で宣言
● ! の記載を省略することができる (個人的には非推奨)
配列配列
● 配列の宣言は形名の後に[]をつける
or Array<型名> と宣言する
●
自動ボクシングで数値もらくらく格納!!
要素ゼロの配列で初期化
2要素の配列
同じ意味
配列配列 :: 謎仕様謎仕様
● 配列の Optional Type が使いにくい
●
何故かメンバが見付からなくなる
●
何故かインデックスアクセスができなくなる
– [] アクセスも演算子オーバーロードみたいなもの
● 一度 ! で普通の配列型に代入してから用いる
辞書辞書
●
配列とほぼ同様に辞書も用いることができる
●
しかし、型に対して注意する必要がある
●
謎バグは辞書でも発生する
格納されている変数の型は Optional Type
辞書の型辞書の型
●
辞書の型は初期化時に決定する
●
厳し目に設定されるので、よくエラーになる
●
明示的に型を表現することも可能
forfor 文文
● for 文がリッチになっている
●
列挙構文も勿論対応してるし、
タプルだったら中身まで分解できる
型のエイリアス型のエイリアス
●
型には別名を付けて参照しやすくできる
●
タプルとか辞書みたいに型が長くなるのには有効
– 構造体作れっていう突っ込みは無しで
目次目次
● Swift のセットアップ
● Swift の基本的な構文
● SwiftSwift の発展的な構文の発展的な構文
列挙型列挙型
● Swift において列挙型は以下のように定義する
● case で各列挙要素を作る
複数一気に定義できる
列挙型の型推論列挙型の型推論
●
列挙型の比較など、型推論が有効なケースについ
て、列挙型の名前の記述が省略できる
列挙型内の関数列挙型内の関数
●
列挙型内に関数を定義することができる
Self によって呼出されている
列挙体が取得できる
型に紐付いた列挙体型に紐付いた列挙体
●
列挙体に型を紐付けることができる
紐付ける型、文字列も対応
ここを基準に値を振ってくれる
列挙型を用いた列挙型を用いた SwitchSwitch
● Switch 構文で列挙型が使用できる
値を紐付いた列挙体値を紐付いた列挙体
● Enum の要素に値を紐付けることが可能
どの型の値を何個紐付けるか
Switch 文の中で取り出せる
他の文中では不明
型情報の確認型情報の確認
● AnyObject (Any) の型が何であるかを確認
● as を用いることで確認が可能
プロトコルプロトコル ((インターフェースインターフェース))
●
実装しなければならない関数を定義する
● Java でいうインターフェース
この関数を実装しなければいけない
Getter, SetterGetter, Setter
● Getter, Setter の簡単な作成方法が用意されている
●
フィールド自体が無い場合もあるので注意
X に依存した値で
フィールドとして直接値を
持つように振舞っているだけ
didset willsetdidset willset
●
フィールド変数がセットされる前と後に動作を挟
む事ができる仕組みが用意されている
構造体構造体
●
構造体は以下のように定義できます
●
勿論関数も定義できるよ!!
構造体のプロトコル構造体のプロトコル
●
構造体でもプロトコルを指定できる
●
指定された関数の実装が必須
構造体構造体 : mutating: mutating
●
構造体の内部に宣言された関数内で、メンバを書
き換える場合は関数に mutating の識別子をつける
●
高速化のためだと考えられる
letlet 文の値文の値
● Let 文は代入に成功した時に 1 を返す (?)
● Optional Chaining
– それが実行できた時のみ動作
第一級関数第一級関数
●
関数が第一級オブジェクト
● Objective-C の Blocks の役割もこれ
Objective-CObjective-C との連携との連携
● Swift プロジェクト内で Objective-C ファイルを作
成すると、Bridging-Header が作成される
● Swift で扱うファイルをインクルード
Objective-CObjective-C との連携との連携
● Swift のプログラムを Objective-C で用いる場合
● プロジェクト名-Swift.h をインクルード
変換命名規則変換命名規則
● Objective-C と Swift の関数変換
● Objective-C
● Swift
以上
ありがとうございました!

Mais conteúdo relacionado

Mais procurados

Swift の可変値と不変値 #cocoa_kansai
Swift の可変値と不変値 #cocoa_kansaiSwift の可変値と不変値 #cocoa_kansai
Swift の可変値と不変値 #cocoa_kansaiTomohiro Kumagai
 
Swiftからlibuvを呼び出すTIPS
Swiftからlibuvを呼び出すTIPSSwiftからlibuvを呼び出すTIPS
Swiftからlibuvを呼び出すTIPSjugemjugemjugem
 
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!Jun-ichi Sakamoto
 
これからの「async/await」の話をしよう
これからの「async/await」の話をしようこれからの「async/await」の話をしよう
これからの「async/await」の話をしようKouji Matsui
 
async/awaitダークサイド is 何
async/awaitダークサイド is 何async/awaitダークサイド is 何
async/awaitダークサイド is 何Kouji Matsui
 
Typescriptの中のこと(浅め)
Typescriptの中のこと(浅め)Typescriptの中のこと(浅め)
Typescriptの中のこと(浅め)Kazuhide Maruyama
 
いまさら恥ずかしくてAsyncをawaitした
いまさら恥ずかしくてAsyncをawaitしたいまさら恥ずかしくてAsyncをawaitした
いまさら恥ずかしくてAsyncをawaitしたKouji Matsui
 
Swift の可変値と不変値 〜 前回の続き(おまけ)〜 #cocoa_kansai
Swift の可変値と不変値 〜 前回の続き(おまけ)〜 #cocoa_kansaiSwift の可変値と不変値 〜 前回の続き(おまけ)〜 #cocoa_kansai
Swift の可変値と不変値 〜 前回の続き(おまけ)〜 #cocoa_kansaiTomohiro Kumagai
 
TypeScriptをオススメする理由
TypeScriptをオススメする理由TypeScriptをオススメする理由
TypeScriptをオススメする理由Yusuke Naka
 
Async DeepDive basics
Async DeepDive basicsAsync DeepDive basics
Async DeepDive basicsKouji Matsui
 
コンパイラ指向ReVIEW
コンパイラ指向ReVIEWコンパイラ指向ReVIEW
コンパイラ指向ReVIEWMasahiro Wakame
 
ジェネリック関数の呼び出され方 #cocoa_kansai
ジェネリック関数の呼び出され方 #cocoa_kansaiジェネリック関数の呼び出され方 #cocoa_kansai
ジェネリック関数の呼び出され方 #cocoa_kansaiTomohiro Kumagai
 
ng-japan 2015 TypeScript+AngularJS 1.3
ng-japan 2015 TypeScript+AngularJS 1.3ng-japan 2015 TypeScript+AngularJS 1.3
ng-japan 2015 TypeScript+AngularJS 1.3Masahiro Wakame
 
async/await不要論
async/await不要論async/await不要論
async/await不要論bleis tift
 
Swift 2.0 大域関数の行方から #swift2symposium
Swift 2.0 大域関数の行方から #swift2symposiumSwift 2.0 大域関数の行方から #swift2symposium
Swift 2.0 大域関数の行方から #swift2symposiumTomohiro Kumagai
 
.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組みKouji Matsui
 
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京hecomi
 
インフラ自動化とHashicorp tools
インフラ自動化とHashicorp toolsインフラ自動化とHashicorp tools
インフラ自動化とHashicorp toolsUchio Kondo
 

Mais procurados (20)

Swift の可変値と不変値 #cocoa_kansai
Swift の可変値と不変値 #cocoa_kansaiSwift の可変値と不変値 #cocoa_kansai
Swift の可変値と不変値 #cocoa_kansai
 
Swiftからlibuvを呼び出すTIPS
Swiftからlibuvを呼び出すTIPSSwiftからlibuvを呼び出すTIPS
Swiftからlibuvを呼び出すTIPS
 
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
 
これからの「async/await」の話をしよう
これからの「async/await」の話をしようこれからの「async/await」の話をしよう
これからの「async/await」の話をしよう
 
async/awaitダークサイド is 何
async/awaitダークサイド is 何async/awaitダークサイド is 何
async/awaitダークサイド is 何
 
Typescriptの中のこと(浅め)
Typescriptの中のこと(浅め)Typescriptの中のこと(浅め)
Typescriptの中のこと(浅め)
 
いまさら恥ずかしくてAsyncをawaitした
いまさら恥ずかしくてAsyncをawaitしたいまさら恥ずかしくてAsyncをawaitした
いまさら恥ずかしくてAsyncをawaitした
 
TypeScript超入門
TypeScript超入門TypeScript超入門
TypeScript超入門
 
Griffon10 in groovy_fx
Griffon10 in groovy_fxGriffon10 in groovy_fx
Griffon10 in groovy_fx
 
Swift の可変値と不変値 〜 前回の続き(おまけ)〜 #cocoa_kansai
Swift の可変値と不変値 〜 前回の続き(おまけ)〜 #cocoa_kansaiSwift の可変値と不変値 〜 前回の続き(おまけ)〜 #cocoa_kansai
Swift の可変値と不変値 〜 前回の続き(おまけ)〜 #cocoa_kansai
 
TypeScriptをオススメする理由
TypeScriptをオススメする理由TypeScriptをオススメする理由
TypeScriptをオススメする理由
 
Async DeepDive basics
Async DeepDive basicsAsync DeepDive basics
Async DeepDive basics
 
コンパイラ指向ReVIEW
コンパイラ指向ReVIEWコンパイラ指向ReVIEW
コンパイラ指向ReVIEW
 
ジェネリック関数の呼び出され方 #cocoa_kansai
ジェネリック関数の呼び出され方 #cocoa_kansaiジェネリック関数の呼び出され方 #cocoa_kansai
ジェネリック関数の呼び出され方 #cocoa_kansai
 
ng-japan 2015 TypeScript+AngularJS 1.3
ng-japan 2015 TypeScript+AngularJS 1.3ng-japan 2015 TypeScript+AngularJS 1.3
ng-japan 2015 TypeScript+AngularJS 1.3
 
async/await不要論
async/await不要論async/await不要論
async/await不要論
 
Swift 2.0 大域関数の行方から #swift2symposium
Swift 2.0 大域関数の行方から #swift2symposiumSwift 2.0 大域関数の行方から #swift2symposium
Swift 2.0 大域関数の行方から #swift2symposium
 
.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み
 
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
 
インフラ自動化とHashicorp tools
インフラ自動化とHashicorp toolsインフラ自動化とHashicorp tools
インフラ自動化とHashicorp tools
 

Destaque

AnyObject – 自分が見落としていた、基本の話
AnyObject – 自分が見落としていた、基本の話AnyObject – 自分が見落としていた、基本の話
AnyObject – 自分が見落としていた、基本の話Tomohiro Kumagai
 
iOS開発を楽しむ最初の一歩!デリゲートをなるべく分かりやすく!
iOS開発を楽しむ最初の一歩!デリゲートをなるべく分かりやすく!iOS開発を楽しむ最初の一歩!デリゲートをなるべく分かりやすく!
iOS開発を楽しむ最初の一歩!デリゲートをなるべく分かりやすく!Kanako Kobayashi
 
ようこそ! Swift Playgroundsへ
ようこそ! Swift Playgroundsへようこそ! Swift Playgroundsへ
ようこそ! Swift PlaygroundsへKinkumaDesign
 
ほんわかSwift勉強資料
ほんわかSwift勉強資料ほんわかSwift勉強資料
ほんわかSwift勉強資料kouhei kawamata
 
Swift 3 その基本ルールを眺める #cswift
Swift 3 その基本ルールを眺める #cswiftSwift 3 その基本ルールを眺める #cswift
Swift 3 その基本ルールを眺める #cswiftTomohiro Kumagai
 
Xcode bot
Xcode botXcode bot
Xcode bottoyship
 
スタートアップ勉強会
スタートアップ勉強会スタートアップ勉強会
スタートアップ勉強会Ken Haneda
 
Universal Link
Universal LinkUniversal Link
Universal Linktoyship
 
Swift3 typecasting nested_type
Swift3 typecasting nested_typeSwift3 typecasting nested_type
Swift3 typecasting nested_typeEunjoo Im
 
Notifications in iOS10
Notifications in iOS10Notifications in iOS10
Notifications in iOS10toyship
 
30代からのプライベートiOSデベロッパーのとしての軌跡
30代からのプライベートiOSデベロッパーのとしての軌跡30代からのプライベートiOSデベロッパーのとしての軌跡
30代からのプライベートiOSデベロッパーのとしての軌跡Fumiya Sakai
 
Open stack development in sicr2jp
Open stack development in sicr2jpOpen stack development in sicr2jp
Open stack development in sicr2jpshintaro mizuno
 
ContainerViewとStoryboardとSwift3.0の交響曲(シンフォニー)
ContainerViewとStoryboardとSwift3.0の交響曲(シンフォニー)ContainerViewとStoryboardとSwift3.0の交響曲(シンフォニー)
ContainerViewとStoryboardとSwift3.0の交響曲(シンフォニー)Fumiya Sakai
 
みんなで Swift 復習会での談笑用スライド – in 札幌 1st′ #minna_de_swift
みんなで Swift 復習会での談笑用スライド – in 札幌 1st′ #minna_de_swiftみんなで Swift 復習会での談笑用スライド – in 札幌 1st′ #minna_de_swift
みんなで Swift 復習会での談笑用スライド – in 札幌 1st′ #minna_de_swiftTomohiro Kumagai
 
プロトコル指向 - 夢と現実の狭間 #cswift
プロトコル指向 - 夢と現実の狭間 #cswiftプロトコル指向 - 夢と現実の狭間 #cswift
プロトコル指向 - 夢と現実の狭間 #cswiftTomohiro Kumagai
 
NS Prefix 外伝 … Copy-On-Write #関モバ
NS Prefix 外伝 … Copy-On-Write #関モバNS Prefix 外伝 … Copy-On-Write #関モバ
NS Prefix 外伝 … Copy-On-Write #関モバTomohiro Kumagai
 
コードを書きやすくしてくれる Xcode の基本機能 #NSStudy #devsap
コードを書きやすくしてくれる Xcode の基本機能 #NSStudy #devsapコードを書きやすくしてくれる Xcode の基本機能 #NSStudy #devsap
コードを書きやすくしてくれる Xcode の基本機能 #NSStudy #devsapTomohiro Kumagai
 

Destaque (20)

Swift入門おさらい
Swift入門おさらいSwift入門おさらい
Swift入門おさらい
 
Swift入門
Swift入門Swift入門
Swift入門
 
AnyObject – 自分が見落としていた、基本の話
AnyObject – 自分が見落としていた、基本の話AnyObject – 自分が見落としていた、基本の話
AnyObject – 自分が見落としていた、基本の話
 
iOS開発を楽しむ最初の一歩!デリゲートをなるべく分かりやすく!
iOS開発を楽しむ最初の一歩!デリゲートをなるべく分かりやすく!iOS開発を楽しむ最初の一歩!デリゲートをなるべく分かりやすく!
iOS開発を楽しむ最初の一歩!デリゲートをなるべく分かりやすく!
 
ようこそ! 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
 
Xcode bot
Xcode botXcode bot
Xcode bot
 
スタートアップ勉強会
スタートアップ勉強会スタートアップ勉強会
スタートアップ勉強会
 
Universal Link
Universal LinkUniversal Link
Universal Link
 
Swift3 typecasting nested_type
Swift3 typecasting nested_typeSwift3 typecasting nested_type
Swift3 typecasting nested_type
 
Notifications in iOS10
Notifications in iOS10Notifications in iOS10
Notifications in iOS10
 
30代からのプライベートiOSデベロッパーのとしての軌跡
30代からのプライベートiOSデベロッパーのとしての軌跡30代からのプライベートiOSデベロッパーのとしての軌跡
30代からのプライベートiOSデベロッパーのとしての軌跡
 
Open stack development in sicr2jp
Open stack development in sicr2jpOpen stack development in sicr2jp
Open stack development in sicr2jp
 
ContainerViewとStoryboardとSwift3.0の交響曲(シンフォニー)
ContainerViewとStoryboardとSwift3.0の交響曲(シンフォニー)ContainerViewとStoryboardとSwift3.0の交響曲(シンフォニー)
ContainerViewとStoryboardとSwift3.0の交響曲(シンフォニー)
 
みんなで Swift 復習会での談笑用スライド – in 札幌 1st′ #minna_de_swift
みんなで Swift 復習会での談笑用スライド – in 札幌 1st′ #minna_de_swiftみんなで Swift 復習会での談笑用スライド – in 札幌 1st′ #minna_de_swift
みんなで Swift 復習会での談笑用スライド – in 札幌 1st′ #minna_de_swift
 
プロトコル指向 - 夢と現実の狭間 #cswift
プロトコル指向 - 夢と現実の狭間 #cswiftプロトコル指向 - 夢と現実の狭間 #cswift
プロトコル指向 - 夢と現実の狭間 #cswift
 
NS Prefix 外伝 … Copy-On-Write #関モバ
NS Prefix 外伝 … Copy-On-Write #関モバNS Prefix 外伝 … Copy-On-Write #関モバ
NS Prefix 外伝 … Copy-On-Write #関モバ
 
コードを書きやすくしてくれる Xcode の基本機能 #NSStudy #devsap
コードを書きやすくしてくれる Xcode の基本機能 #NSStudy #devsapコードを書きやすくしてくれる Xcode の基本機能 #NSStudy #devsap
コードを書きやすくしてくれる Xcode の基本機能 #NSStudy #devsap
 

Semelhante a Study Swift

Swift事情2014夏 ~ Swift入門 beta6対応
Swift事情2014夏 ~ Swift入門 beta6対応Swift事情2014夏 ~ Swift入門 beta6対応
Swift事情2014夏 ~ Swift入門 beta6対応Tomoki Hasegawa
 
iOS 8/Swift 概要 #ios8yahoo
iOS 8/Swift 概要 #ios8yahooiOS 8/Swift 概要 #ios8yahoo
iOS 8/Swift 概要 #ios8yahooHiramatsu Ryosuke
 
objc2swift (自動変換の野望)
objc2swift (自動変換の野望)objc2swift (自動変換の野望)
objc2swift (自動変換の野望)Taketo Sano
 
リテラルと型の続きの話 #__swift__
リテラルと型の続きの話 #__swift__リテラルと型の続きの話 #__swift__
リテラルと型の続きの話 #__swift__Tomohiro Kumagai
 
OpenStack Object Storage; Overview
OpenStack Object Storage; OverviewOpenStack Object Storage; Overview
OpenStack Object Storage; Overviewirix_jp
 
Swiftのアプリ開発でハマったこと
Swiftのアプリ開発でハマったことSwiftのアプリ開発でハマったこと
Swiftのアプリ開発でハマったことyohei sugigami
 
20140822 Swift 勉強会 vol.3 - はぢめての Swift
20140822 Swift 勉強会 vol.3 - はぢめての Swift20140822 Swift 勉強会 vol.3 - はぢめての Swift
20140822 Swift 勉強会 vol.3 - はぢめての SwiftMori Tetsuya
 
Swiftの実際ダメな所
Swiftの実際ダメな所Swiftの実際ダメな所
Swiftの実際ダメな所S_Shimotori
 
iOS開発でのおすすめライブラリと管理
iOS開発でのおすすめライブラリと管理iOS開発でのおすすめライブラリと管理
iOS開発でのおすすめライブラリと管理Tomoya Hayakawa
 
Nullabilityについて
NullabilityについてNullabilityについて
Nullabilityについてishikawa akira
 
Swiftでの関数型プログラミングについて考えていること
Swiftでの関数型プログラミングについて考えていることSwiftでの関数型プログラミングについて考えていること
Swiftでの関数型プログラミングについて考えていることShingo Sato
 
東京Node学園 今できる通信高速化にトライしてみた
東京Node学園 今できる通信高速化にトライしてみた東京Node学園 今できる通信高速化にトライしてみた
東京Node学園 今できる通信高速化にトライしてみたYoshiki Shibukawa
 
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフト
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフトobjc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフト
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフトTaketo Sano
 
Obj-CをSwiftにリプレースするお話
Obj-CをSwiftにリプレースするお話Obj-CをSwiftにリプレースするお話
Obj-CをSwiftにリプレースするお話Hitoshi Saito
 
Tizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native apiTizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native apiNaruto TAKAHASHI
 
objc2swift (続・自動変換の野望)
objc2swift (続・自動変換の野望) objc2swift (続・自動変換の野望)
objc2swift (続・自動変換の野望) Taketo Sano
 
プログラミング言語Clojureのニャンパスでの活用事例
プログラミング言語Clojureのニャンパスでの活用事例プログラミング言語Clojureのニャンパスでの活用事例
プログラミング言語Clojureのニャンパスでの活用事例sohta
 
How to improve Type-safety in your Objective-C code
How to improve Type-safety in your Objective-C codeHow to improve Type-safety in your Objective-C code
How to improve Type-safety in your Objective-C codeChiharu Nameki
 

Semelhante a Study Swift (20)

Swift事情2014夏 ~ Swift入門 beta6対応
Swift事情2014夏 ~ Swift入門 beta6対応Swift事情2014夏 ~ Swift入門 beta6対応
Swift事情2014夏 ~ Swift入門 beta6対応
 
iOS 8/Swift 概要 #ios8yahoo
iOS 8/Swift 概要 #ios8yahooiOS 8/Swift 概要 #ios8yahoo
iOS 8/Swift 概要 #ios8yahoo
 
objc2swift (自動変換の野望)
objc2swift (自動変換の野望)objc2swift (自動変換の野望)
objc2swift (自動変換の野望)
 
リテラルと型の続きの話 #__swift__
リテラルと型の続きの話 #__swift__リテラルと型の続きの話 #__swift__
リテラルと型の続きの話 #__swift__
 
OpenStack Object Storage; Overview
OpenStack Object Storage; OverviewOpenStack Object Storage; Overview
OpenStack Object Storage; Overview
 
Swiftのアプリ開発でハマったこと
Swiftのアプリ開発でハマったことSwiftのアプリ開発でハマったこと
Swiftのアプリ開発でハマったこと
 
20140822 Swift 勉強会 vol.3 - はぢめての Swift
20140822 Swift 勉強会 vol.3 - はぢめての Swift20140822 Swift 勉強会 vol.3 - はぢめての Swift
20140822 Swift 勉強会 vol.3 - はぢめての Swift
 
Swiftの実際ダメな所
Swiftの実際ダメな所Swiftの実際ダメな所
Swiftの実際ダメな所
 
iOS開発でのおすすめライブラリと管理
iOS開発でのおすすめライブラリと管理iOS開発でのおすすめライブラリと管理
iOS開発でのおすすめライブラリと管理
 
Nullabilityについて
NullabilityについてNullabilityについて
Nullabilityについて
 
Swiftでの関数型プログラミングについて考えていること
Swiftでの関数型プログラミングについて考えていることSwiftでの関数型プログラミングについて考えていること
Swiftでの関数型プログラミングについて考えていること
 
東京Node学園 今できる通信高速化にトライしてみた
東京Node学園 今できる通信高速化にトライしてみた東京Node学園 今できる通信高速化にトライしてみた
東京Node学園 今できる通信高速化にトライしてみた
 
Swift入門
Swift入門Swift入門
Swift入門
 
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフト
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフトobjc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフト
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフト
 
Obj-CをSwiftにリプレースするお話
Obj-CをSwiftにリプレースするお話Obj-CをSwiftにリプレースするお話
Obj-CをSwiftにリプレースするお話
 
Tizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native apiTizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native api
 
objc2swift (続・自動変換の野望)
objc2swift (続・自動変換の野望) objc2swift (続・自動変換の野望)
objc2swift (続・自動変換の野望)
 
プログラミング言語Clojureのニャンパスでの活用事例
プログラミング言語Clojureのニャンパスでの活用事例プログラミング言語Clojureのニャンパスでの活用事例
プログラミング言語Clojureのニャンパスでの活用事例
 
Spring I/O 2015 報告
Spring I/O 2015 報告Spring I/O 2015 報告
Spring I/O 2015 報告
 
How to improve Type-safety in your Objective-C code
How to improve Type-safety in your Objective-C codeHow to improve Type-safety in your Objective-C code
How to improve Type-safety in your Objective-C code
 

Study Swift