Slide 1

Slide 1 text

-*/&઎͍J04ΞϓϦ ։ൃͷݱঢ় -*/&'VLVPLB!UBLFUJO -*/&%FWFMPQFS.FFUVQJO'VLVPLB

Slide 2

Slide 2 text

ࣗݾ঺հ w !UBLFUJO w ೥ੜ·Ε w ݩ؟ڸ԰ w J04։ൃྺ೥

Slide 3

Slide 3 text

ΞδΣϯμ w -*/&઎͍ʹ͍ͭͯ w αʔϏε։ൃϑϩʔ w ࠷ۙͷ։ൃํ਑ w ࣾ಺ศརXFCαʔϏε

Slide 4

Slide 4 text

-*/&઎͍ʹ͍ͭͯ

Slide 5

Slide 5 text

-*/&઎͍ w -*/&಺ αʔϏεͱͯ͠ϦϦʔε w ୯ಠΞϓϦ ͱͯ͠ϦϦʔε

Slide 6

Slide 6 text

-*/&઎͍ • ܳೳքͰ࿩୊ͷεϐϦνϡ Ξϧঁࢠେੜ$)*&ɺήο λʔζ൧ాͳͲͷ઎͍ࢣʹ ΑΔʮຊ֨઎͍ʯ • 100໊Ҏ্ͷਓؾ઎͍ࢣͷ த͔Βࣗ෼ͷ೰Έʹ߹ͬ ͨ۩ମతͳΞυόΠεͱ ؑఆΛड͚Δ͜ͱ͕Ͱ͖ Δʮ೰Έ૬ஊॴʯ

Slide 7

Slide 7 text

-*/&઎͍ w ରԠ04J04Ҏ্

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

݄ ݄ ݄ ݄ ݄ ϦϦʔε 7FSTJPO -*/&઎͍ ։ൃ෱ԬҠ؅ J04DVU 7FSTJPO ݄ -*/&'VLVPLB ։ൃ্ཱࣨͪ͛

Slide 10

Slide 10 text

αʔϏε։ൃϑϩʔ

Slide 11

Slide 11 text

اը σβΠφ ΤϯδχΞ 2" 5& 5&

Slide 12

Slide 12 text

اը σβΠφ ΤϯδχΞ 2" 5& 5& ౦ژ ෱Ԭ

Slide 13

Slide 13 text

اը σβΠφ ΤϯδχΞ 2" 5& 5&

Slide 14

Slide 14 text

اը σβΠφ ΤϯδχΞ 2" 5& 5& ΞΠσΞͩΑ

Slide 15

Slide 15 text

اը σβΠφ ΤϯδχΞ 2" 5& 5& ;Ή;ΉɺͰ͖ͦ͏ ΞΠσΞͩΑ

Slide 16

Slide 16 text

اը σβΠφ ΤϯδχΞ 2" 5& 5& ΋ͬͱ͜͏͢Ε͹Α͘Ͷʁ ΞΠσΞͩΑ

Slide 17

Slide 17 text

اը σβΠφ ΤϯδχΞ 2" 5& 5& ΋ͬͱ͜͏͢Ε͹Α͘Ͷʁ ͋ʔɺͳΔ΄ͲɻΠΠωɻ

Slide 18

Slide 18 text

اը σβΠφ ΤϯδχΞ 2" 5& 5& ͜͏͍͏ࣄ͠Α͏ͱࢥͬͯΔ

Slide 19

Slide 19 text

اը σβΠφ ΤϯδχΞ 2" 5& 5& ͜͏͍͏ࣄ͠Α͏ͱࢥͬͯΔ ϞοΫ࡞Γ·͢Ͷ

Slide 20

Slide 20 text

اը σβΠφ ΤϯδχΞ 2" 5& 5& ϞοΫ࡞ͬͨΑɻ ͜Μͳಈ͖ͯ͠Ͷɻ

Slide 21

Slide 21 text

اը σβΠφ ΤϯδχΞ 2" 5& 5& ͪΐɺݫ͘͠Ͷʁ ϞοΫ࡞ͬͨΑɻ ͜Μͳಈ͖ͯ͠Ͷɻ

Slide 22

Slide 22 text

اը σβΠφ ΤϯδχΞ 2" 5& 5& ͜Μͳײ͡ͰͲ͏ʁ ϞοΫ࡞ͬͨΑɻ ͜Μͳಈ͖ͯ͠Ͷɻ

Slide 23

Slide 23 text

اը σβΠφ ΤϯδχΞ 2" 5& 5& ͜Μͳײ͡ͰͲ͏ʁ Φοέʔɺ͡ΌΨΠυ࡞ΔͶ

Slide 24

Slide 24 text

اը σβΠφ ΤϯδχΞ 2" 5& 5& ΨΠυ࡞ͬͨΑ

Slide 25

Slide 25 text

اը σβΠφ ΤϯδχΞ 2" 5& 5& ΨΠυ࡞ͬͨΑ

Slide 26

Slide 26 text

اը σβΠφ ΤϯδχΞ 2" 5& 5& Αͬ͠Όɺ։ൃ͢ΔͰ ΨΠυ࡞ͬͨΑ

Slide 27

Slide 27 text

اը σβΠφ ΤϯδχΞ 2" 5& 5& Αͬ͠Όɺ։ൃ͢ΔͰ ΨΠυ࡞ͬͨΑ Μ͡Όςετέʔε࡞͓ͬͯ ͖·͢

Slide 28

Slide 28 text

اը σβΠφ ΤϯδχΞ 2" 5& 5& ։ൃதʜ

Slide 29

Slide 29 text

اը σβΠφ ΤϯδχΞ 2" 5& 5& Ͱ͖ͨ

Slide 30

Slide 30 text

اը σβΠφ ΤϯδχΞ 2" 5& 5& Ͱ͖ͨ σβΠϯ2"͠·͢Ͷ 2"։࢝͠·͢Ͷ

Slide 31

Slide 31 text

اը σβΠφ ΤϯδχΞ 2" 5& 5& Ͱ͖ͨ σβΠϯ2"͠·͢Ͷ 2"։࢝͠·͢Ͷ

Slide 32

Slide 32 text

اը σβΠφ ΤϯδχΞ 2" 5& 5& 2"தʜ

Slide 33

Slide 33 text

اը σβΠφ ΤϯδχΞ 2" 5& 5& ΦοέʔͰ͢ ΦοέʔͰ͢

Slide 34

Slide 34 text

اը σβΠφ ΤϯδχΞ 2" 5& 5& όΠφϦVQMPBEͨ͠Αʂ

Slide 35

Slide 35 text

اը σβΠφ ΤϯδχΞ 2" 5& 5& όΠφϦVQMPBEͨ͠Αʂ ͓͔ͭΕ͞ΜͰͨ͠ʔ

Slide 36

Slide 36 text

اը σβΠφ ΤϯδχΞ 2" 5& 5& "QQMFʹਃ੥ʂ

Slide 37

Slide 37 text

࠷ۙͷ։ൃํ਑

Slide 38

Slide 38 text

0CKFDUJWF$ͷίʔυྔͱϑΝΠϧ਺ pOEOBNFNcXDM pOEOBNFNcYBSHTXDM

Slide 39

Slide 39 text

0CKFDUJWF$ͷίʔυྔͱϑΝΠϧ਺ 4XJGUͷίʔυྔͱϑΝΠϧ਺ pOEOBNFNcXDM pOEOBNFNcYBSHTXDM pOEOBNFTXJGUcXDM pOEOBNFTXJGUcYBSHTXDM 12282

Slide 40

Slide 40 text

৽نίʔυ͸౰વ4XJGUͰॻ͘

Slide 41

Slide 41 text

৽نίʔυ͸౰વ4XJGUͰॻ͘ ͍ͭͰʹॻ͖׵͑Εͦ͏ͳ0CKFDUJWF $ϑΝΠϧ͸4XJGUͰϦϥΠτ͢Δʂ

Slide 42

Slide 42 text

৽نίʔυ͸౰વ4XJGUͰॻ͘ ͍ͭͰʹॻ͖׵͑Εͦ͏ͳ0CKFDUJWF $ϑΝΠϧ͸4XJGUͰϦϥΠτ͢Δʂ ɻɻɻ

Slide 43

Slide 43 text

৽نίʔυ͸౰વ4XJGUͰॻ͘ ͍ͭͰʹॻ͖׵͑Εͦ͏ͳ0CKFDUJWF $ϑΝΠϧ͸4XJGUͰϦϥΠτ͢Δʂ ʊਓਓਓਓਓʊ ʼɹͩΔ͍ɹʻ ʉ:?:?:?:ʉ

Slide 44

Slide 44 text

ίϯόʔτπʔϧ࢖͓͏

Slide 45

Slide 45 text

(FOFSBUFE*OUFSGBDF

Slide 46

Slide 46 text

(FOFSBUFE*OUFSGBDF 9DPEFʙ

Slide 47

Slide 47 text

(FOFSBUFE*OUFSGBDF @interface ExampleModel : NSObject @property (nonatomic) NSNumber *amount; @property (nonatomic, copy) NSString *datetime; @property (nonatomic, copy) NSString *title; @end public class ExampleModel : NSObject { public var amount: NSNumber! public var datetime: String! public var title: String! }

Slide 48

Slide 48 text

IUUQPCKDTXJGUZBIPPMBCTKQ PCKDTXJGU 8FC4FSWJDF

Slide 49

Slide 49 text

PCKDTXJGU 044

Slide 50

Slide 50 text

9$4XJGUS 9DPEF1MVHJO

Slide 51

Slide 51 text

9$4XJGUS 9DPEF1MVHJO

Slide 52

Slide 52 text

ॻ͖׵͑Δ·Ͱ࣌ؒऔΕͳ͍

Slide 53

Slide 53 text

ॻ͖׵͑Δ·Ͱ࣌ؒऔΕͳ͍ ʊਓਓਓਓਓਓਓਓਓਓਓਓਓਓਓਓਓʊ ʼɹͤΊͯ0CKFDUJWF$Λڧ͘͠Α͏ɹʻ ʉ:?:?:?:?:?:?:?:?:?:?:?:?:?:ʉ

Slide 54

Slide 54 text

/VMMBCJMJUZ 9DPEFd -JHIU8FJHIU(FOFSJDT 9DPEFd

Slide 55

Slide 55 text

/VMMBCJMJUZ @property (nonnull, copy, nonatomic) NSString *name; @property (copy, nonatomic) NSString * __nonnull name; @property (copy, nonatomic) NSString * _Nonnull name; @property (nullable, copy, nonatomic) NSString *name; @property (copy, nonatomic) NSString * __nullable name; @property (copy, nonatomic) NSString * _Nullable name; - (void)example:(nonnull NSArray *)param; - (void)example:(NSArray * _Nonnull)param;

Slide 56

Slide 56 text

/VMMBCJMJUZ // Objective-C + (NSString *)message; // ࣮͸ nil Λฦ͢ࣄ͕͋Δ // Swift Ͱ͸ func message() -> NSString! Example.message().characters // nil ฦͬͨ࣌ʹ Crash >< // Objective-C + (nullable NSString *)message; // nil ฦ͢ՄೳੑΛ໌ࣔ // Swift Ͱ͸ func message() -> NSString? Example.message()?.characters // Optional Ͱ nil safe

Slide 57

Slide 57 text

/VMMBCJMJUZ ؂ࠪൣғʢ"VEJUFE3FHJPOTʣ NS_ASSUME_NONNULL_BEGIN @interface ExampleModel : NSObject @property (copy, nonatomic) NSString *name; @property (copy, nonatomic) NSString *country; @property (nullable, copy, nonatomic) NSString *hobby;
 @end NS_ASSUME_NONNULL_END

Slide 58

Slide 58 text

-JHIU8FJHIU(FOFSJDT + (NSArray *)someArray { NSArray *var = @[@"test"]; return var; }

Slide 59

Slide 59 text

-JHIU8FJHIU(FOFSJDT // Objective-C + (NSArray *)someArray { NSArray *var = @[@"test"]; return var; } // Swift Example.someArray()[0].characters

Slide 60

Slide 60 text

-JHIU8FJHIU(FOFSJDT // Objective-C + (NSArray *)someArray { NSArray *var = @[@"test"]; return var; } // Swift Example.someArray()[0].characters

Slide 61

Slide 61 text

-JHIU8FJHIU(FOFSJDT // Objective-C + (NSArray *)someArray { UIImage *image = [UIImage imageNamed:@"example.png"]; NSArray *var = @[image]; return var; }

Slide 62

Slide 62 text

-JHIU8FJHIU(FOFSJDT // Objective-C + (NSArray *)someArray { UIImage *image = [UIImage imageNamed:@"example.png"]; NSArray *var = @[image]; return var; } // Swift Example.someArray()[0].characters

Slide 63

Slide 63 text

-JHIU8FJHIU(FOFSJDT NSMutableArray *array = [@[] mutableCopy]; // MyView ͸ UIView ͷαϒΫϥε [array addObject:[MyView new]]; MyView *myView = array[0];

Slide 64

Slide 64 text

-JHIU8FJHIU(FOFSJDT NSMutableArray<__kindof UIView *> *array = [@[] mutableCopy]; // MyView ͸ UIView ͷαϒΫϥε [array addObject:[MyView new]]; MyView *myView = array[0];

Slide 65

Slide 65 text

-JHIU8FJHIU(FOFSJDT Մಡੑ޲্ Swift ͱͷ૬ޓӡ༻ੑ޲্

Slide 66

Slide 66 text

ϨΠΞ΢τ _textLabel.frame = (CGRect){ .origin.x = 0., .origin.y = CGRectGetMaxX(self.itemImageView.frame) + 3., .size.width = CGRectGetWidth(self.itemImageView.frame), .size.height = _textLabel.font.lineHeight * 2. + 7. };

Slide 67

Slide 67 text

ϨΠΞ΢τ ౰વ"VUP-BZPVU࢖͏͔ΒYJCԽ͍ͯ͜͠͏ _textLabel.frame = (CGRect){ .origin.x = 0., .origin.y = CGRectGetMaxX(self.itemImageView.frame) + 3., .size.width = CGRectGetWidth(self.itemImageView.frame), .size.height = _textLabel.font.lineHeight * 2. + 7. };

Slide 68

Slide 68 text

ϨΠΞ΢τ @IBInspectable var borderColor: UIColor = UIColor.clearColor() { didSet { layer.borderColor = borderColor.CGColor } } @IBInspectable var cornerRadius: CGFloat = 0 { didSet { layer.cornerRadius = cornerRadius } } *#*OTQFDUBCMF

Slide 69

Slide 69 text

ϨΠΞ΢τ @IBInspectable var borderColor: UIColor = UIColor.clearColor() { didSet { layer.borderColor = borderColor.CGColor } } @IBInspectable var cornerRadius: CGFloat = 0 { didSet { layer.cornerRadius = cornerRadius } } *#*OTQFDUBCMF

Slide 70

Slide 70 text

ϨΠΞ΢τ 6*7JFX$POUSPMMFS4UPSZ#PBSEԽ

Slide 71

Slide 71 text

ϨΠΞ΢τ 6*7JFX$POUSPMMFS4UPSZ#PBSEԽ import UIKit protocol StoryBoardable extension StoryBoardable where Self: UIViewController { static func viewControllerFromStoryboard() -> Self { let storyboard = UIStoryboard(name: className, bundle: nil) return storyboard.instantiateViewControllerWithIdentifier( className ) as! Self } }

Slide 72

Slide 72 text

ϨΠΞ΢τ 6*7JFX$POUSPMMFS4UPSZ#PBSEԽ // for Objective-C extension UIViewController { @available(*, unavailable) @objc static func viewControllerFromStoryboard() -> UIViewController { let storyboard = UIStoryboard(name: className, bundle: nil) return storyboard. instantiateViewControllerWithIdentifier(className) } }

Slide 73

Slide 73 text

ϨΠΞ΢τ 6*7JFX$POUSPMMFS4UPSZ#PBSEԽ // from Swift let vc = viewControllerFromStoryboard() // from Objective-C MyViewController *viewController = (MyViewController *)[MyViewController viewControllerFromStoryboard];

Slide 74

Slide 74 text

ࣾ಺ศརXFCαʔϏε

Slide 75

Slide 75 text

O%FQMPZ

Slide 76

Slide 76 text

O%FQMPZ

Slide 77

Slide 77 text

"QQ%FQMPZ

Slide 78

Slide 78 text

/1VTI "1/4 ($. ֤αʔϏεαʔό /1VTIαʔό

Slide 79

Slide 79 text

/&-0

Slide 80

Slide 80 text

"QQ3FWJFXT

Slide 81

Slide 81 text

$IBU014 IVCPU

Slide 82

Slide 82 text

·ͱΊ 4XJGUͰॻ͚ͳ͍࣌͸0CKFDUJWF$ͷ৽͍͠ػೳ࢖ͬͯ ૬ޓӡ༻ੑ্͍͛ͯ͜͏ "VUP-BZPVU͍΍Ͱ΋׳ΕΑ͏ -*/&ࣾ͸ศརπʔϧ͕ϞϦϞϦ͋Γ·͢ɻҰॹʹಇ͜͏ʂ 0CKFDUJWF$Λ4XJGUʹҠߦ͢Δͱ͖͸ίϯόʔτπʔϧ Λ͖͔͚ͬʹ͢ΔͱḿΔ