2014年からswiftを振り返る! #cswift

66
EZ-NET 熊⾕友宏 http://ez-net.jp/ 2016.04.23 カジュアル Swift 勉強会 #7 2014 年から Swift を振り返る! Swift カジュアルプログラミング

Upload: tomohiro-kumagai

Post on 16-Apr-2017

1.052 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: 2014年からSwiftを振り返る! #cswift

EZ-NET 熊⾕友宏 http://ez-net.jp/

2016.04.23 カジュアル Swift 勉強会 #7

2014年からSwiftを振り返る!Swift カジュアルプログラミング

Page 2: 2014年からSwiftを振り返る! #cswift

EZ-NET

Page 3: 2014年からSwiftを振り返る! #cswift

iPhone

Swift

EZ-NET

Page 4: 2014年からSwiftを振り返る! #cswift

EZ-NET

Page 6: 2014年からSwiftを振り返る! #cswift

2014 年 11 ⽉ 1 ⽇

Page 7: 2014年からSwiftを振り返る! #cswift

2014 年 11 ⽉ 1 ⽇

MOSA Software Meeting 2014

Page 8: 2014年からSwiftを振り返る! #cswift

MSM 2014 当時の資料で今の Swift を振り返ってみよう!

Page 9: 2014年からSwiftを振り返る! #cswift

当時の資料

Page 10: 2014年からSwiftを振り返る! #cswift
Page 11: 2014年からSwiftを振り返る! #cswift
Page 12: 2014年からSwiftを振り返る! #cswift

1

Page 13: 2014年からSwiftを振り返る! #cswift
Page 14: 2014年からSwiftを振り返る! #cswift
Page 15: 2014年からSwiftを振り返る! #cswift
Page 16: 2014年からSwiftを振り返る! #cswift
Page 17: 2014年からSwiftを振り返る! #cswift
Page 18: 2014年からSwiftを振り返る! #cswift
Page 19: 2014年からSwiftを振り返る! #cswift

79

4

122

Page 20: 2014年からSwiftを振り返る! #cswift
Page 21: 2014年からSwiftを振り返る! #cswift
Page 22: 2014年からSwiftを振り返る! #cswift

⚫︎

⚫︎

⚫︎

⚫︎

Page 23: 2014年からSwiftを振り返る! #cswift
Page 24: 2014年からSwiftを振り返る! #cswift
Page 25: 2014年からSwiftを振り返る! #cswift
Page 26: 2014年からSwiftを振り返る! #cswift

⚫︎

⚫︎

⚫︎

Page 27: 2014年からSwiftを振り返る! #cswift

NSArray *array = @[ @"A", @"B", @"C" ]; NSString *string = [array componentsJoinedByString:@", "];

NSLog(@"Value: %@", string);

let array = [ "A", "B", "C" ] let string = join(", ", array)

println("Value: \(string)")

Page 28: 2014年からSwiftを振り返る! #cswift

⚫︎

⚫︎

⚫︎

⚫︎

8

10

44

Page 29: 2014年からSwiftを振り返る! #cswift

⚫︎

⚫︎

1

Page 30: 2014年からSwiftを振り返る! #cswift
Page 31: 2014年からSwiftを振り返る! #cswift

i += 10;

i += 10

Page 32: 2014年からSwiftを振り返る! #cswift

if (i == 10) {

}

if i == 10 {

}

Page 33: 2014年からSwiftを振り返る! #cswift

⚫︎

⚫︎

⚫︎

Page 34: 2014年からSwiftを振り返る! #cswift

NSString *str = @"OBJC STRING"; NSNumber *num = @10;

char* str = "C STRING"; int num = 10;

let str:String = "SWIFT STRING" let num:Int = 10

17

Page 35: 2014年からSwiftを振り返る! #cswift

NSArray *arr = @[ @5, @10 ]; NSDictionary *dic = @{ @"K1":@1, @"K2":@2 };

let arr:[Int] = [ 5, 10 ] let dic:[String:Int] = [ "K1": 1, "K2": 2 ]

24 34

Page 36: 2014年からSwiftを振り返る! #cswift

NSInteger i = 10; const NSInteger i = 10;

NSString* s = @"TEXT"; NSMutableString* s = [@"TEXT" mutableCopy];

var i = 10 let i = 10

let s = "TEXT" var s = "TEXT"

3

Page 37: 2014年からSwiftを振り返る! #cswift

NSString *str = [NSString stringWithFormat:@"Name=%@, Value=%d", name, value];

let str:String = "Name=\(name), Value=\(value)"

20

Page 38: 2014年からSwiftを振り返る! #cswift

NSString *str = [@"MSM" stringByAppendingString:@"2014"];

let str:String = "MSM" + "2014"

18

Page 39: 2014年からSwiftを振り返る! #cswift

if ([string1 isEqualToString:string2]) {

}

if string1 == string2 {

}

19

3

Page 40: 2014年からSwiftを振り返る! #cswift

[MyClass methodWithValue:10.0 ofType:@"$"]

MyClass.method(value:10.0, ofType:"$")

72 90

Page 41: 2014年からSwiftを振り返る! #cswift

// タプル…複数の型を自由に組み合わせられる let value:(Int,String) = (200, "SWIFT")

// nil 許容型…値の他に「ない」状態を扱える let value:Int? = nil

// 値つき列挙型…自由な値を持てる列挙子 enum Enumerate { case Name(String) case NoName }

4

5

8 41 50

Page 42: 2014年からSwiftを振り返る! #cswift
Page 43: 2014年からSwiftを振り返る! #cswift

44 62 63

⚫︎

⚫︎

⚫︎

⚫︎

⚫︎

64 65 66 67

6

Page 44: 2014年からSwiftを振り返る! #cswift

⚫︎

⚫︎

⚫︎

⚫︎

Page 45: 2014年からSwiftを振り返る! #cswift
Page 46: 2014年からSwiftを振り返る! #cswift
Page 47: 2014年からSwiftを振り返る! #cswift

// クロージャの定義 let isOK:(Int)->Bool = {(code:Int)->Bool in

return contains(200..<300, code) }

// 関数のように実行 let result = isOK(200)

// 別の関数の引数に渡して実行 let result = contains(statuses, isOK)

7

79

Page 48: 2014年からSwiftを振り返る! #cswift

⚫︎

⚫︎

⚫︎

⚫︎

⚫︎

4 6

31 40

43 44

13

81

8

65

Page 49: 2014年からSwiftを振り返る! #cswift

func getStatus()->(code:Int, status:String) { return (200, "OK") }

67

enum Status { case OK case Failed(String) }

func getStatus()->Status { return Status.OK }

50

Page 50: 2014年からSwiftを振り返る! #cswift

func add<T:IntegerArithmeticType>(v1:T, v2:T)->T {

return value1 + value2 }

122

⚫︎

⚫︎

⚫︎

⚫︎

9

Page 51: 2014年からSwiftを振り返る! #cswift

import MyModule1 import MyModule2

let obj1 = MyModule1.MyClass() let obj2 = MyModule2.MyClass()

⚫︎

⚫︎

Page 52: 2014年からSwiftを振り返る! #cswift
Page 53: 2014年からSwiftを振り返る! #cswift
Page 54: 2014年からSwiftを振り返る! #cswift

⚫︎

⚫︎

⚫︎

⚫︎

Page 55: 2014年からSwiftを振り返る! #cswift

MyClass* obj = [[MyClass alloc] initWithValue:10];

obj.value;

class MyClass : NSObject { var value:Int init(value:Int) }

Page 56: 2014年からSwiftを振り返る! #cswift

⚫︎

⚫︎

let value:NSString = "TEST STRING"

value.stringByReplacingOccurrencesOfString("TEST", withString: "SWIFT", options: NSStringCompareOptions.LiteralSearch, range: NSMakeRange(0, value.length))

Page 57: 2014年からSwiftを振り返る! #cswift
Page 58: 2014年からSwiftを振り返る! #cswift
Page 59: 2014年からSwiftを振り返る! #cswift
Page 60: 2014年からSwiftを振り返る! #cswift

⚫︎

⚫︎

⚫︎

Page 61: 2014年からSwiftを振り返る! #cswift

let obj = MyClass(value:10) obj.value

@interface MyClass : NSObject

@property (readwrite) NSInteger value; - (instancetype)initWithValue:(NSInteger)value;

@end

Page 62: 2014年からSwiftを振り返る! #cswift
Page 63: 2014年からSwiftを振り返る! #cswift
Page 64: 2014年からSwiftを振り返る! #cswift
Page 65: 2014年からSwiftを振り返る! #cswift
Page 66: 2014年からSwiftを振り返る! #cswift