SlideShare ist ein Scribd-Unternehmen logo
1 von 55
Downloaden Sie, um offline zu lesen
EZ-‐‑‒NET  熊⾕谷友宏  
http://ez-‐‑‒net.jp/
Swift  を振り返ってみよう
2015.06.06  
カジュアル  Swift  プログラミング  #0
Swift 楽しい!
熊谷友宏
http://ez-net.jp/
@es_kumagai
Xcode 5 徹底解説
IP Phone 音でダイヤル 音で再配達ゴッド
いつもの電卓
with 割勘ウォッチ
MOSA
新言語 Swift 登場
2014.06.02 @ WWDC 2014
特徴
1. Fast

動的言語らしさをなくして高速化
2. Modern

親しみやすい言語設計
3. Safe

不測の事態を招かない言語設計
4. Interactive

コンパイル言語でありながら即時実行が可能
コンセプト
Objective-C
without the C
― C 言語構造からの訣別 ―
新しい概念
1. Closures

関数を柔軟に扱う
2. Type inference

型推論で効率良くコーディング
3. Multiple return types

戻り値で複数の値を返せる
4. Generics

型に縛られない実装
5. Namespaces

モジュール単位での名前空間
互換性
1. Interoperability

Swift クラスを Objective-C から使用

Cocoa API を Swift コードから利用
2. Mix and Match

Objective-C ファイルと Swift ファイルを

ひとつのプロジェクトに混在して併用
3. Migration

既存の Objective-C コードを Swift から

Swift らしい構文で利用
Swift の特徴
1. Fast
⚫
Objective-C より速いらしい
⚫
静的解決が主体
⚫
最適化しやすい言語設計
2. Modern
NSArray *array = @[ @"A", @"B", @"C" ];
NSString *string =

[array componentsJoinedByString:@", "];
NSLog(@"Value: %@", string);
Objective-C
let array = [ "A", "B", "C" ]
let string = join(", ", array)

println("Value: (string)")
Swift
⚫
nil を意識したコーディング
⚫
型は えて計算する
⚫
switch で全ケースの網羅が必要
⚫
例外の廃止
3. Safe
不測を生まないコードが書ける

▶ 不測を含まないコードを強要される
4. Interactive
⚫
Xcode からの逐次実行

Playground
⚫
ターミナルからの逐次実行

#!/usr/bin/swift
ビルド操作不要でコードを実行可能
Objective-C
without the C
行末文字からの訣別
i += 10;
Objective-C
i += 10
Swift
行末のセミコロンを省略可能に
条件文の括弧からの訣別
if (i == 10)
{
}
Objective-C
if i == 10 {
}
Swift
評価式の外側括弧を省略可能に
プリミティブからの脱却
⚫
Int や enum も機能を持てる
⚫
関数も変数で普通に扱える
すべての型の対等な扱いが可能に
C リテラルからの訣別
NSString *str = @"OBJC STRING";
NSNumber *num = @10;
char* str = "C STRING";
int num = 10;
Objective-C
let str:String = "SWIFT STRING"
let num:Int = 10
Swift
C リテラルの考慮が不要に
リテラル表現の簡素化
NSArray *arr = @[ @5, @10 ];
NSDictionary *dic = @{ @"K1":@1, @"K2":@2 };
let arr:[Int] = [ 5, 10 ]
let dic:[String:Int] = [ "K1": 1, "K2": 2 ]
Swift
Objective-C
オブジェクトを意味する "@" が不要に
変数の刷新
NSInteger i = 10;
const NSInteger i = 10;
NSString* s = @"TEXT";
NSMutableString* s = [@"TEXT" mutableCopy];
Objective-C
var i = 10
let i = 10
let s = "TEXT"
var s = "TEXT"
Swift
二種類の変数を利用可能に
文字列リテラルの拡張(展開)
NSString *str = [NSString
stringWithFormat:@"Name=%@, Value=%d",
name, value];
Objective-C
let str:String
= "Name=(name), Value=(value)"
Swift
リテラル内で変数を展開可能に
文字列リテラルの拡張(連結)
NSString *str = [@"MSM"
stringByAppendingString:@"2014"];
Objective-C
let str:String = "MSM" + "2014"
Swift
演算子で文字列を連結可能に
文字列リテラルの拡張(比較)
if ([string1 isEqualToString:string2])
{
}
Objective-C
if string1 == string2 {
}
Swift
演算子による文字列比較が可能に
名前付き引数
[MyClass methodWithValue:10.0 ofType:@"$"]
Objective-C
MyClass.method(value:10.0, ofType:"$")
Swift
引数にラベル名を付与可能に
新しいデータ型
// タプル…複数の型を自由に組み合わせられる
let value:(Int,String) = (200, "SWIFT")
// nil 許容型…値の他に「ない」状態を扱える
let value:Int? = nil
// 値つき列挙型…自由な値を持てる列挙子
enum Enumerate {
case Name(String)
case NoName
}
Swift
しがらみのないスマートな書式に
switch 構文の大幅な拡張
⚫
変数に格納した値を使った分岐
⚫
範囲による分岐
⚫
文字列による分岐
⚫
タプルの値に応じた分岐
⚫
値つき列挙型の値に応じた分岐
整数値リテラル以外でも分岐が可能に
数値リテラル
さりげなく嬉しい機能
let dec = 200 // 10進数
let hex = 0xc8 // 16進数
let oct = 0o310 // 8進数
let bin = 0b11001000 // 2進数
let d = 2.10
let d = 1.25e-4 // 1.25×10-4
let d = 0x15p3 // 0x15×23
⚫
ヘッダーファイル不要
⚫
同じ名前で異なる引数の関数
⚫
引数の既定値
ほかにもいろいろ
Objective-C without the C
C 言語のしがらみを捨てることで
言語機能を大幅に向上
Objective-C without the C
不不変値  
可変値
構造体
プロトコル
ジェネリック
Objective-C C
Swift
Swift の新しい概念
Closure
// クロージャの定義
let isOK:(Int)->Bool = {(code:Int)->Bool in
return contains(200..<300, code)
}
// 関数のように実行
let result = isOK(200)
// 別の関数の引数に渡して実行
let result = contains(statuses, isOK)
Swift
即席関数をシンプルに作って使える
Type inference
型が明らかなら記述不要
⚫
初期値を伴う変数や定数の宣言
⚫
コレクションから要素を順次取得
⚫
列挙型を扱うことが明確な場合
⚫
制御構文で let で値の対応を取る
⚫
クロージャの戻り値や引数
Multiple return types
func getStatus()->(code:Int, status:String) {
return (200, "OK")
}
Swift
戻り値で複数の値を返せる
enum Status {
case OK
case Failed(String)
}
func getStatus()->Status {
return Status.OK
}
Swift
Generics
func add<T:IntegerArithmeticType>(v1:T, v2:T)->T {
return value1 + value2
}
Swift
型に縛られない実装
⚫
任意の型を扱える
⚫
コードの共通化・実装の効率化
⚫
プロトコル主体のコーディング
Namespaces
import MyModule1
import MyModule2
let obj1 = MyModule1.MyClass()
let obj2 = MyModule2.MyClass()
Swift
Swift の新しい概念
モジュール単位での名前空間
⚫
モジュール単位で空間を分離
⚫
同じ名前の異なる型を識別可能
Objective-C との互換性
Interoperability
Objective-C と Swift の相互運用
Interoperability
Swift と Objective-C の互換性
Swift クラスを Objective-C で使用可能
⚫
NSObject の継承または @objc 属性が必須
⚫
メソッド名が Objective-C 的に自動調整
⚫
@objc クラスではインスタンスを返すための

クラスメソッドの実装が必要
⚫
Objective-C にない機能を使ったものは不可

オーバーロード, Generics, …
Interoperability
Swift と Objective-C の互換性
Swift クラスを Objective-C で使用可能
MyClass* obj
= [[MyClass alloc] initWithValue:10];
obj.value;
class MyClass : NSObject {
var value:Int
init(value:Int)
}
Swift
Objective-C
― #import "PROJNAME-Swift.h" で利用可能に ―
Interoperability
Swift と Objective-C の互換性
Cocoa API を Swift から利用可能
⚫
ほぼ全てを Swift らしいコードで利用可能
⚫
利用できないものもある
let value:NSString = "TEST STRING"
value.stringByReplacingOccurrencesOfString("TEST",
withString: "SWIFT",
options: NSStringCompareOptions.LiteralSearch,
range: NSMakeRange(0, value.length))
Swift
― import Foundation 等で利用可能に ―
Mix and Match
Objective-C と Swift との混在
Swift と Objective-C の互換性
Mix and Match
Swift と Objective-C の互換性
Objective-C ファイルと Swift ファイルを混在
Migration
既存の Objective-C を Swift で活用
Swift と Objective-C の互換性
Migration
Swift と Objective-C の互換性
自作 Objective-C クラスを Swift で使用
⚫
プロジェクトの Build Settings で

Objective-C Bridging Header を登録
⚫
そこへ Swift で使いたいヘッダーファイルを

#import すると Swift で利用可能になる
⚫
C++ / Objective-C++ コードは利用不可

ヘッダーに C++ 固有の機能さえなければ OK
― Swift 側で import する必要なく利用可能 ―
let obj = MyClass(value:10)
obj.value
Migration
Swift と Objective-C の互換性
自作 Objective-C クラスを Swift で使用
@interface MyClass : NSObject
@property (readwrite) NSInteger value;
- (instancetype)initWithValue:(NSInteger)value;
@end
Swift
Objective-C
Objective-C と Swift の
相互乗り入れが非常にしやすい
― 小さい単位での Swift への移行が可能 ―
現代らしさを積極的に取り入れながら
既存の環境でもすぐに使える言語
Swift
を握るところ
2種類の変数
変数が意味を持つ時代へ
• 不変値変数 let

値 を表現する
• 可変値変数 var

状態 を表現する
// 平面を動く物体の座標
var location:(x,y)
// 平面座標の値
let location:(x,y)
2種類の変数
変数が意味を持つ時代へ
オプショナル
⚫
値がある場合とない場合をとる
⚫
存在しないことを意識でき
⚫
Optional<T> と

ImplicitlyUnwrappedOptional<T>
存在しないを扱える型
生まれ変わった構造体
⚫
値や状態を表現する
⚫
内容を自由に設計できる
⚫
格納先に応じて振る舞いが変化
変数に特化した型の誕生
列挙型と switch
⚫
選択肢を有限に絞れる
⚫
取り得る範囲が明確になる
⚫
想定外を検出できる
安全性に着目した網羅性のコンセプト
Swift を楽しみましょう!

Weitere ähnliche Inhalte

Was ist angesagt?

Xcode 7 の新しいところ #cm_ios9
Xcode 7 の新しいところ #cm_ios9Xcode 7 の新しいところ #cm_ios9
Xcode 7 の新しいところ #cm_ios9Tomohiro Kumagai
 
Swift 3 その基本ルールを眺める #cswift
Swift 3 その基本ルールを眺める #cswiftSwift 3 その基本ルールを眺める #cswift
Swift 3 その基本ルールを眺める #cswiftTomohiro Kumagai
 
第7回 カジュアル Swift 勉強会 @ 青葉台 オープニング #cswift
第7回 カジュアル Swift 勉強会 @ 青葉台 オープニング #cswift第7回 カジュアル Swift 勉強会 @ 青葉台 オープニング #cswift
第7回 カジュアル Swift 勉強会 @ 青葉台 オープニング #cswiftTomohiro Kumagai
 
iOS 8/Swift 概要 #ios8yahoo
iOS 8/Swift 概要 #ios8yahooiOS 8/Swift 概要 #ios8yahoo
iOS 8/Swift 概要 #ios8yahooHiramatsu Ryosuke
 
Xcodeを便利に使って爆速開発する #yxcm
Xcodeを便利に使って爆速開発する #yxcm Xcodeを便利に使って爆速開発する #yxcm
Xcodeを便利に使って爆速開発する #yxcm Hiramatsu Ryosuke
 
Swiftのswitchはとってもパワフル!
Swiftのswitchはとってもパワフル!Swiftのswitchはとってもパワフル!
Swiftのswitchはとってもパワフル!akatsuki174
 
もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo
もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahooもしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo
もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahooniwatako
 
Async deepdive before de:code
Async deepdive before de:codeAsync deepdive before de:code
Async deepdive before de:codeKouji Matsui
 
Swiftだめ自慢Beta5
Swiftだめ自慢Beta5Swiftだめ自慢Beta5
Swiftだめ自慢Beta5今城 善矩
 
Swiftビギナーズ勉強会_swift感想文
Swiftビギナーズ勉強会_swift感想文Swiftビギナーズ勉強会_swift感想文
Swiftビギナーズ勉強会_swift感想文Naoki Numajiri
 
真Intermediate languageのキホン
真Intermediate languageのキホン真Intermediate languageのキホン
真Intermediate languageのキホンKouji Matsui
 
PHPUnitでリファクタリング
PHPUnitでリファクタリングPHPUnitでリファクタリング
PHPUnitでリファクタリングTakako Miyagawa
 
Ifcq o smeetup20190517_tokyo_8esp32iot
Ifcq o smeetup20190517_tokyo_8esp32iotIfcq o smeetup20190517_tokyo_8esp32iot
Ifcq o smeetup20190517_tokyo_8esp32iotIf_CQ
 
Apple審査を一発通過! iOS開発経験0でも出来る じげん流Swift開発のすべて
Apple審査を一発通過!iOS開発経験0でも出来るじげん流Swift開発のすべてApple審査を一発通過!iOS開発経験0でも出来るじげん流Swift開発のすべて
Apple審査を一発通過! iOS開発経験0でも出来る じげん流Swift開発のすべてMasaru Gushiken
 
Nespのコード生成
Nespのコード生成Nespのコード生成
Nespのコード生成Kouji Matsui
 
パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理Kouji Matsui
 
js-ctypes - ネイティブコードを呼び出す新しいカタチ
js-ctypes - ネイティブコードを呼び出す新しいカタチjs-ctypes - ネイティブコードを呼び出す新しいカタチ
js-ctypes - ネイティブコードを呼び出す新しいカタチMakoto Kato
 

Was ist angesagt? (20)

Xcode 7 の新しいところ #cm_ios9
Xcode 7 の新しいところ #cm_ios9Xcode 7 の新しいところ #cm_ios9
Xcode 7 の新しいところ #cm_ios9
 
Swift 3 その基本ルールを眺める #cswift
Swift 3 その基本ルールを眺める #cswiftSwift 3 その基本ルールを眺める #cswift
Swift 3 その基本ルールを眺める #cswift
 
第7回 カジュアル Swift 勉強会 @ 青葉台 オープニング #cswift
第7回 カジュアル Swift 勉強会 @ 青葉台 オープニング #cswift第7回 カジュアル Swift 勉強会 @ 青葉台 オープニング #cswift
第7回 カジュアル Swift 勉強会 @ 青葉台 オープニング #cswift
 
iOS 8/Swift 概要 #ios8yahoo
iOS 8/Swift 概要 #ios8yahooiOS 8/Swift 概要 #ios8yahoo
iOS 8/Swift 概要 #ios8yahoo
 
Xcodeを便利に使って爆速開発する #yxcm
Xcodeを便利に使って爆速開発する #yxcm Xcodeを便利に使って爆速開発する #yxcm
Xcodeを便利に使って爆速開発する #yxcm
 
Swift勉強会
Swift勉強会Swift勉強会
Swift勉強会
 
Swiftのswitchはとってもパワフル!
Swiftのswitchはとってもパワフル!Swiftのswitchはとってもパワフル!
Swiftのswitchはとってもパワフル!
 
de:code報告
de:code報告de:code報告
de:code報告
 
もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo
もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahooもしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo
もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo
 
Async deepdive before de:code
Async deepdive before de:codeAsync deepdive before de:code
Async deepdive before de:code
 
Swiftだめ自慢Beta5
Swiftだめ自慢Beta5Swiftだめ自慢Beta5
Swiftだめ自慢Beta5
 
Swiftビギナーズ勉強会_swift感想文
Swiftビギナーズ勉強会_swift感想文Swiftビギナーズ勉強会_swift感想文
Swiftビギナーズ勉強会_swift感想文
 
真Intermediate languageのキホン
真Intermediate languageのキホン真Intermediate languageのキホン
真Intermediate languageのキホン
 
PHPUnitでリファクタリング
PHPUnitでリファクタリングPHPUnitでリファクタリング
PHPUnitでリファクタリング
 
Ifcq o smeetup20190517_tokyo_8esp32iot
Ifcq o smeetup20190517_tokyo_8esp32iotIfcq o smeetup20190517_tokyo_8esp32iot
Ifcq o smeetup20190517_tokyo_8esp32iot
 
Apple審査を一発通過! iOS開発経験0でも出来る じげん流Swift開発のすべて
Apple審査を一発通過!iOS開発経験0でも出来るじげん流Swift開発のすべてApple審査を一発通過!iOS開発経験0でも出来るじげん流Swift開発のすべて
Apple審査を一発通過! iOS開発経験0でも出来る じげん流Swift開発のすべて
 
Nespのコード生成
Nespのコード生成Nespのコード生成
Nespのコード生成
 
パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理
 
js-ctypes - ネイティブコードを呼び出す新しいカタチ
js-ctypes - ネイティブコードを呼び出す新しいカタチjs-ctypes - ネイティブコードを呼び出す新しいカタチ
js-ctypes - ネイティブコードを呼び出す新しいカタチ
 
酒の肴はC# vNext
酒の肴はC# vNext酒の肴はC# vNext
酒の肴はC# vNext
 

Ähnlich wie Swift を振り返ってみよう #cswift

Swiftによる関数型プログラミング超入門
Swiftによる関数型プログラミング超入門Swiftによる関数型プログラミング超入門
Swiftによる関数型プログラミング超入門Hisakuni Fujimoto
 
RFC Viewer開発を通して学ぶ!! iOS開発のパターン化
RFC Viewer開発を通して学ぶ!! iOS開発のパターン化RFC Viewer開発を通して学ぶ!! iOS開発のパターン化
RFC Viewer開発を通して学ぶ!! iOS開発のパターン化幸雄 村上
 
Swiftのアプリ開発でハマったこと
Swiftのアプリ開発でハマったことSwiftのアプリ開発でハマったこと
Swiftのアプリ開発でハマったことyohei sugigami
 
Xcode 6の新機能
Xcode 6の新機能Xcode 6の新機能
Xcode 6の新機能Shingo Sato
 
リテラルと型の続きの話 #__swift__
リテラルと型の続きの話 #__swift__リテラルと型の続きの話 #__swift__
リテラルと型の続きの話 #__swift__Tomohiro Kumagai
 
Swift 2.0 で変わったところ「後編」 #cswift
Swift 2.0 で変わったところ「後編」 #cswiftSwift 2.0 で変わったところ「後編」 #cswift
Swift 2.0 で変わったところ「後編」 #cswiftTomohiro Kumagai
 
Obj-CをSwiftにリプレースするお話
Obj-CをSwiftにリプレースするお話Obj-CをSwiftにリプレースするお話
Obj-CをSwiftにリプレースするお話Hitoshi Saito
 
関数型言語初心者の俺がF#触ってみた
関数型言語初心者の俺がF#触ってみた関数型言語初心者の俺がF#触ってみた
関数型言語初心者の俺がF#触ってみたTakashi Nishisaki
 
Wolcome to swift
Wolcome to swiftWolcome to swift
Wolcome to swiftKyohei Ito
 
Swift事情2014夏 ~ Swift入門 beta6対応
Swift事情2014夏 ~ Swift入門 beta6対応Swift事情2014夏 ~ Swift入門 beta6対応
Swift事情2014夏 ~ Swift入門 beta6対応Tomoki Hasegawa
 
Build 番号の自動更新スクリプトについて #cocoa_kansai
Build 番号の自動更新スクリプトについて #cocoa_kansaiBuild 番号の自動更新スクリプトについて #cocoa_kansai
Build 番号の自動更新スクリプトについて #cocoa_kansaiTomohiro Kumagai
 
ちゃんとWeb会議スライド『Coffee script』
ちゃんとWeb会議スライド『Coffee script』ちゃんとWeb会議スライド『Coffee script』
ちゃんとWeb会議スライド『Coffee script』H2O Space. Co., Ltd.
 
YAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイド
YAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイドYAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイド
YAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイドkeroyonn
 
tech talk about JS #0
tech talk about JS #0tech talk about JS #0
tech talk about JS #0Hika Maeng
 
New Features in C# 10/11
New Features in C# 10/11New Features in C# 10/11
New Features in C# 10/11Akira Inoue
 
Step-Oriented Programming による任意コード実行の可能性
Step-Oriented Programming による任意コード実行の可能性Step-Oriented Programming による任意コード実行の可能性
Step-Oriented Programming による任意コード実行の可能性kozossakai
 

Ähnlich wie Swift を振り返ってみよう #cswift (20)

Swiftによる関数型プログラミング超入門
Swiftによる関数型プログラミング超入門Swiftによる関数型プログラミング超入門
Swiftによる関数型プログラミング超入門
 
The evolution of c#
The evolution of c#The evolution of c#
The evolution of c#
 
Study Swift
Study Swift Study Swift
Study Swift
 
RFC Viewer開発を通して学ぶ!! iOS開発のパターン化
RFC Viewer開発を通して学ぶ!! iOS開発のパターン化RFC Viewer開発を通して学ぶ!! iOS開発のパターン化
RFC Viewer開発を通して学ぶ!! iOS開発のパターン化
 
Swiftのアプリ開発でハマったこと
Swiftのアプリ開発でハマったことSwiftのアプリ開発でハマったこと
Swiftのアプリ開発でハマったこと
 
Swift
SwiftSwift
Swift
 
Xcode 6の新機能
Xcode 6の新機能Xcode 6の新機能
Xcode 6の新機能
 
リテラルと型の続きの話 #__swift__
リテラルと型の続きの話 #__swift__リテラルと型の続きの話 #__swift__
リテラルと型の続きの話 #__swift__
 
Swift 2.0 で変わったところ「後編」 #cswift
Swift 2.0 で変わったところ「後編」 #cswiftSwift 2.0 で変わったところ「後編」 #cswift
Swift 2.0 で変わったところ「後編」 #cswift
 
Obj-CをSwiftにリプレースするお話
Obj-CをSwiftにリプレースするお話Obj-CをSwiftにリプレースするお話
Obj-CをSwiftにリプレースするお話
 
関数型言語初心者の俺がF#触ってみた
関数型言語初心者の俺がF#触ってみた関数型言語初心者の俺がF#触ってみた
関数型言語初心者の俺がF#触ってみた
 
Wolcome to swift
Wolcome to swiftWolcome to swift
Wolcome to swift
 
Swift事情2014夏 ~ Swift入門 beta6対応
Swift事情2014夏 ~ Swift入門 beta6対応Swift事情2014夏 ~ Swift入門 beta6対応
Swift事情2014夏 ~ Swift入門 beta6対応
 
Build 番号の自動更新スクリプトについて #cocoa_kansai
Build 番号の自動更新スクリプトについて #cocoa_kansaiBuild 番号の自動更新スクリプトについて #cocoa_kansai
Build 番号の自動更新スクリプトについて #cocoa_kansai
 
Clrh 20140906 lt
Clrh 20140906 ltClrh 20140906 lt
Clrh 20140906 lt
 
ちゃんとWeb会議スライド『Coffee script』
ちゃんとWeb会議スライド『Coffee script』ちゃんとWeb会議スライド『Coffee script』
ちゃんとWeb会議スライド『Coffee script』
 
YAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイド
YAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイドYAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイド
YAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイド
 
tech talk about JS #0
tech talk about JS #0tech talk about JS #0
tech talk about JS #0
 
New Features in C# 10/11
New Features in C# 10/11New Features in C# 10/11
New Features in C# 10/11
 
Step-Oriented Programming による任意コード実行の可能性
Step-Oriented Programming による任意コード実行の可能性Step-Oriented Programming による任意コード実行の可能性
Step-Oriented Programming による任意コード実行の可能性
 

Mehr von Tomohiro Kumagai

最近気づいた勉強法 — 勉強会開催の習慣化 #yumemi_grow
最近気づいた勉強法 — 勉強会開催の習慣化 #yumemi_grow最近気づいた勉強法 — 勉強会開催の習慣化 #yumemi_grow
最近気づいた勉強法 — 勉強会開催の習慣化 #yumemi_growTomohiro 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_swiftTomohiro Kumagai
 
Property Wrappers の特徴を眺める #swiftzoomin
Property Wrappers の特徴を眺める #swiftzoominProperty Wrappers の特徴を眺める #swiftzoomin
Property Wrappers の特徴を眺める #swiftzoominTomohiro 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 #hakataswiftTomohiro Kumagai
 
ニコニコ超会議・文化の交差点 #techpub #ニコニコ超会議 #さくらシンデレラ
ニコニコ超会議・文化の交差点 #techpub #ニコニコ超会議 #さくらシンデレラニコニコ超会議・文化の交差点 #techpub #ニコニコ超会議 #さくらシンデレラ
ニコニコ超会議・文化の交差点 #techpub #ニコニコ超会議 #さくらシンデレラTomohiro Kumagai
 
Swift クラスのイニシャライザー #devsap
Swift クラスのイニシャライザー #devsapSwift クラスのイニシャライザー #devsap
Swift クラスのイニシャライザー #devsapTomohiro 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_swiftTomohiro Kumagai
 
Around the 変数 let #love_swift
Around the 変数 let #love_swiftAround the 変数 let #love_swift
Around the 変数 let #love_swiftTomohiro Kumagai
 
もくもく執筆会 #技術同人誌再販Night
もくもく執筆会 #技術同人誌再販Nightもくもく執筆会 #技術同人誌再販Night
もくもく執筆会 #技術同人誌再販NightTomohiro 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 #hakataswiftTomohiro 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_swiftTomohiro 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 #iosconTomohiro 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_bounen2017Tomohiro Kumagai
 
みんなで Swift 復習会 GO! in 福岡・発表資料
みんなで Swift 復習会 GO! in 福岡・発表資料みんなで Swift 復習会 GO! in 福岡・発表資料
みんなで Swift 復習会 GO! in 福岡・発表資料Tomohiro Kumagai
 

Mehr von 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 を振り返ってみよう #cswift