Save 37% off PRO during our Black Friday Sale! »

iOSレガシーコード改善ガイド〜マンガボックス開発における事例〜

D2f212ce418f3daa29c23914c9b6892b?s=47 kenmaz
January 29, 2016

 iOSレガシーコード改善ガイド〜マンガボックス開発における事例〜

2016/01/29に開催された「DeNA TechCon 2016」での講演資料です。
https://techcon.dena.com

D2f212ce418f3daa29c23914c9b6892b?s=128

kenmaz

January 29, 2016
Tweet

Transcript

  1. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. J04ϨΨγʔίʔυվળΨΠυ 1 Jan

    29, 2016 দલ݈ଠ࿠ IPϓϥοτϑΥʔϜࣄۀ෦ୈ̍෦
 DeNA Co., Ltd. ʙϚϯΨϘοΫε։ൃʹ͓͚Δࣄྫʙ
  2. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ࣗݾ঺հ দલ݈ଠ࿠ (id:kenmaz)

    2003.4 ೔ཱιϦϡʔγϣϯζ (چɾ೔ཱιϑτ΢ΣΞΤϯδχΞϦϯάʣ SIer, Java, Ruby, ଞ 2009.6 υϫϯΰ χίχίɺଞ 2013.4 DeNA ϚϯΨϘοΫε ϦʔυΤϯδχΞ 2
  3. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 3

  4. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 4 ϓϩ࡞Ոͷ  

    ඳ͖͓Ζ͠࡞඼͕   ຖ೔ߋ৽ɺແྉͰಡΊΔ   ϚϯΨࡶࢽΞϓϦ
  5. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 5

  6. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 6 ిࢠॻ੶ετΞ ϚϯΨ౤ߘ

  7. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ຊ୊ 7

  8. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ϨΨγʔίʔυʹ͍ͭͯ 8

  9. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ϚϯΨϘοΫεʹ͓͚ΔϨΨγʔίʔυ •։ൃελʔτ͔Β໿̏೥ •iOS6࣌୅ͷίʔυଟ਺

    •ػೳ௥Ճʹ൐͏ίʔυͷෳࡶԽ •ϨΨγʔίʔυԽͷஹީ 9
  10. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ϚϯΨϘοΫεʹ͓͚ΔϨΨγʔίʔυ •։ൃελʔτ͔Β໿̏೥ •iOS6࣌୅ͷίʔυଟ਺

    •ػೳ௥Ճʹ൐͏ίʔυͷෳࡶԽ •ϨΨγʔίʔυԽͷஹީ 9 iOSϨΨγʔίʔυվળΨΠυ ϨΨγʔίʔυԽͤ͞ͳ͍ͨΊͷऔΓ૊Έ
  11. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ᶃϦϦʔεαΠΫϧͷݟ௚͠ ᶄSwift΁ͷҠߦ ᶅAutoLayout΁ͷରԠ

    ᶆઃܭ ᶇӡ༻ɾϩά 10 iOS ϨΨγʔίʔυվળΨΠυ
  12. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ᶃϦϦʔεαΠΫϧͷݟ௚͠ ᶄSwift΁ͷҠߦ ᶅAutoLayout΁ͷରԠ

    ᶆઃܭ ᶇӡ༻ɾϩά 10 iOS ϨΨγʔίʔυվળΨΠυ ޙ೔webͰެ։Ͱ͖Ε͹ɾɾɾ
  13. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Swift΁ͷҠߦ 11 iOSϨΨγʔίʔυվળΨΠυ

     ͦͷᶄ
  14. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 12 h)ps://developer.apple.com/swi7/ SwiftҠߦͷҙٛ

  15. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 12 h)ps://developer.apple.com/swi7/ SwiftҠߦͷҙٛ

  16. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 12 h)ps://developer.apple.com/swi7/ •

    Type  Safe   • Op<onal   • Immutable   • Generics SwiftҠߦͷҙٛ
  17. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 12 h)ps://developer.apple.com/swi7/ •

    Type  Safe   • Op<onal   • Immutable   • Generics SwiftҠߦͷҙٛ ݴޠͷ҆શੑʹΞϓϦͷ඼࣭ʹ௚݁
  18. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. iOSΤϯδχΞ 1.5ਓ Ͳ͏͢Δ

    13
  19. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. SwiftҠߦ΁ͷجຊઓུ 14

  20. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. SwiftҠߦ΁ͷجຊઓུ 1. طଘίʔυͷڍಈΛഁյ͠ͳ͍͜ͱ

    14
  21. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. SwiftҠߦ΁ͷجຊઓུ 1. طଘίʔυͷڍಈΛഁյ͠ͳ͍͜ͱ

    2. طଘobjcίʔυͷमਖ਼͸ۃྗSwiftͰߦ͏͜ͱ 14
  22. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. SwiftҠߦ΁ͷجຊઓུ 1. طଘίʔυͷڍಈΛഁյ͠ͳ͍͜ͱ

    2. طଘobjcίʔυͷमਖ਼͸ۃྗSwiftͰߦ͏͜ͱ 3. ஈ֊తʹঃʑʹҠߦ͢͢ΊΔ͜ͱ 14
  23. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. SwiftҠߦ΁ͷجຊઓུ 1. طଘίʔυͷڍಈΛഁյ͠ͳ͍͜ͱ

    2. طଘobjcίʔυͷमਖ਼͸ۃྗSwiftͰߦ͏͜ͱ 3. ஈ֊తʹঃʑʹҠߦ͢͢ΊΔ͜ͱ 4. SwiftΒ͍͠ίʔυΛॻ͍࣮ͯ֬ʹ඼࣭ΛߴΊΔ͜ͱ 14
  24. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. SwiftҠߦ΁ͷجຊઓུ 1. طଘίʔυͷڍಈΛഁյ͠ͳ͍͜ͱ

    2. طଘobjcίʔυͷमਖ਼͸ۃྗSwiftͰߦ͏͜ͱ 3. ஈ֊తʹঃʑʹҠߦ͢͢ΊΔ͜ͱ 4. SwiftΒ͍͠ίʔυΛॻ͍࣮ͯ֬ʹ඼࣭ΛߴΊΔ͜ͱ 5. ہॴతͳଥڠ͸ڐ༰ 14
  25. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. SwiftҠߦ΁ͷجຊઓུ 1. طଘίʔυͷڍಈΛഁյ͠ͳ͍͜ͱ

    2. طଘobjcίʔυͷमਖ਼͸ۃྗSwiftͰߦ͏͜ͱ 3. ஈ֊తʹঃʑʹҠߦ͢͢ΊΔ͜ͱ 4. SwiftΒ͍͠ίʔυΛॻ͍࣮ͯ֬ʹ඼࣭ΛߴΊΔ͜ͱ 5. ہॴతͳଥڠ͸ڐ༰ 14 →Mix-and-Match
  26. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Mix and Match

    ͻͱͭͷϓϩδΣΫτͰObjective-CͱSwiftΛࠞ߹ͯ͠࢖͏ͨΊͷػೳ 15 h)ps://developer.apple.com/library/ios/documenta<on/Swi7/Conceptual/BuildingCocoaApps/MixandMatch.html
  27. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Mix and MatchΛ࢖ͬͨSwiftҠߦύλʔϯ

    16
  28. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Mix and MatchΛ࢖ͬͨSwiftҠߦύλʔϯ

    16 ᶃ Ԇ໋ύλʔϯ ᶄ ͝৽نύλʔϯ ᶅ ੾Γग़͠ύλʔϯ ᶆ ϒϦοδύλʔϯ ᶇ extensionύλʔϯ ᶈ ๫࿐ύλʔϯ ᶉ ৐ͬऔΓύλʔϯ ᶊ ࣸܦύλʔϯ
  29. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Mix and MatchΛ࢖ͬͨSwiftҠߦύλʔϯ

    16 ᶃ Ԇ໋ύλʔϯ ᶄ ͝৽نύλʔϯ ᶅ ੾Γग़͠ύλʔϯ ᶆ ϒϦοδύλʔϯ ᶇ extensionύλʔϯ ᶈ ๫࿐ύλʔϯ ᶉ ৐ͬऔΓύλʔϯ ᶊ ࣸܦύλʔϯ ύλʔϯ  ≒  ෢ಓʹ͓͚Δܗ
  30. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Mix and MatchΛ࢖ͬͨSwiftҠߦύλʔϯ

    16 ᶃ Ԇ໋ύλʔϯ ᶄ ͝৽نύλʔϯ ᶅ ੾Γग़͠ύλʔϯ ᶆ ϒϦοδύλʔϯ ᶇ extensionύλʔϯ ᶈ ๫࿐ύλʔϯ ᶉ ৐ͬऔΓύλʔϯ ᶊ ࣸܦύλʔϯ ύλʔϯ  ≒  ෢ಓʹ͓͚Δܗ
  31. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Mix and MatchΛ࢖ͬͨSwiftҠߦύλʔϯ

    16 ᶃ Ԇ໋ύλʔϯ ᶄ ͝৽نύλʔϯ ᶅ ੾Γग़͠ύλʔϯ ᶆ ϒϦοδύλʔϯ ᶇ extensionύλʔϯ ᶈ ๫࿐ύλʔϯ ᶉ ৐ͬऔΓύλʔϯ ᶊ ࣸܦύλʔϯ ύλʔϯ  ≒  ෢ಓʹ͓͚Δܗ ύλʔϯԽ͢Δҙٛ
  32. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Mix and MatchΛ࢖ͬͨSwiftҠߦύλʔϯ

    16 ᶃ Ԇ໋ύλʔϯ ᶄ ͝৽نύλʔϯ ᶅ ੾Γग़͠ύλʔϯ ᶆ ϒϦοδύλʔϯ ᶇ extensionύλʔϯ ᶈ ๫࿐ύλʔϯ ᶉ ৐ͬऔΓύλʔϯ ᶊ ࣸܦύλʔϯ ύλʔϯ  ≒  ෢ಓʹ͓͚Δܗ ύλʔϯԽ͢Δҙٛ →  ໎Θͣ൑அͰ͖Δ
  33. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Mix and MatchΛ࢖ͬͨSwiftҠߦύλʔϯ

    16 ᶃ Ԇ໋ύλʔϯ ᶄ ͝৽نύλʔϯ ᶅ ੾Γग़͠ύλʔϯ ᶆ ϒϦοδύλʔϯ ᶇ extensionύλʔϯ ᶈ ๫࿐ύλʔϯ ᶉ ৐ͬऔΓύλʔϯ ᶊ ࣸܦύλʔϯ ύλʔϯ  ≒  ෢ಓʹ͓͚Δܗ ύλʔϯԽ͢Δҙٛ →  ໎Θͣ൑அͰ͖Δ
  34. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Mix and MatchΛ࢖ͬͨSwiftҠߦύλʔϯ

    16 ᶃ Ԇ໋ύλʔϯ ᶄ ͝৽نύλʔϯ ᶅ ੾Γग़͠ύλʔϯ ᶆ ϒϦοδύλʔϯ ᶇ extensionύλʔϯ ᶈ ๫࿐ύλʔϯ ᶉ ৐ͬऔΓύλʔϯ ᶊ ࣸܦύλʔϯ ύλʔϯ  ≒  ෢ಓʹ͓͚Δܗ ύλʔϯԽ͢Δҙٛ →  ໎Θͣ൑அͰ͖Δ ※֤ύλʔϯ໊͸ࢲʹΑΔউखͳ໋໊
  35. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ᶃԆ໋ύλʔϯ 17 Objec<ve-­‐C

    swi7
  36. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ᶃԆ໋ύλʔϯ 17 objc

      class objc   class objc   class Objec<ve-­‐C swi7
  37. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ᶃԆ໋ύλʔϯ 17 objc

      class objc   class objc   class Nullability,  Genericsʹؔ͢ΔΞϊςʔγϣϯΛ෇Ճ Objec<ve-­‐C swi7
  38. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ᶃԆ໋ύλʔϯ 17 objc

      class objc   class objc   class Nullability,  Genericsʹؔ͢ΔΞϊςʔγϣϯΛ෇Ճ ܕ҆શɾnil  ҆શ  ͳੈք Objec<ve-­‐C swi7
  39. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ᶃԆ໋ύλʔϯ 17 objc

      class objc   class objc   class Nullability,  Genericsʹؔ͢ΔΞϊςʔγϣϯΛ෇Ճ ܕ҆શɾnil  ҆શ  ͳੈք swi7 ҆શʹΞΫηε Objec<ve-­‐C swi7
  40. ᶃԆ໋ύλʔϯ Copyright (C) DeNA Co.,Ltd. All Rights Reserved. objcʹ Nullability,

    Lightweight GenericsΛ௥Ճ͢Δ 18 @interface UserHistory -(Episode*)lastEepisode; -(NSArray*)allEpisodes; @end
  41. ᶃԆ໋ύλʔϯ Copyright (C) DeNA Co.,Ltd. All Rights Reserved. objcʹ Nullability,

    Lightweight GenericsΛ௥Ճ͢Δ 18 @interface UserHistory -(Episode*)lastEepisode; -(NSArray*)allEpisodes; @end NS_ASSUME_NONNULL_BEGIN @interface UserHistory -(nullable Episode*)lastEepisode; -(NSArray<Episode*>*)allEpisodes; NS_ASSUME_NONNULL_END @end
  42. ᶃԆ໋ύλʔϯ Copyright (C) DeNA Co.,Ltd. All Rights Reserved. objcʹ Nullability,

    Lightweight GenericsΛ௥Ճ͢Δ 18 @interface UserHistory -(Episode*)lastEepisode; -(NSArray*)allEpisodes; @end NS_ASSUME_NONNULL_BEGIN @interface UserHistory -(nullable Episode*)lastEepisode; -(NSArray<Episode*>*)allEpisodes; NS_ASSUME_NONNULL_END @end class UserHistory { func lastEepisode()->Episode? func allEepisodes()->[Episode] }
  43. ᶃԆ໋ύλʔϯ Copyright (C) DeNA Co.,Ltd. All Rights Reserved. objcʹ Nullability,

    Lightweight GenericsΛ௥Ճ͢Δ • طଘͷobjcࢿ࢈Λ҆શʹ࢖͑Δ • ϩʔίετɾϋΠϦλʔϯ • SwiftରԠ΁ͷୈҰาͱͯ͠࠷ద 18 @interface UserHistory -(Episode*)lastEepisode; -(NSArray*)allEpisodes; @end NS_ASSUME_NONNULL_BEGIN @interface UserHistory -(nullable Episode*)lastEepisode; -(NSArray<Episode*>*)allEpisodes; NS_ASSUME_NONNULL_END @end class UserHistory { func lastEepisode()->Episode? func allEepisodes()->[Episode] }
  44. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ᶄ͝৽نύλʔϯ 19 Objec<ve-­‐C

    swi7
  45. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ᶄ͝৽نύλʔϯ 19 objc

      class objc   class objc   class Objec<ve-­‐C swi7
  46. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ᶄ͝৽نύλʔϯ 19 objc

      class objc   class objc   class ViewController   .swi7 View   Model   Objec<ve-­‐C swi7
  47. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ᶄ͝৽نύλʔϯ 19 objc

      class objc   class objc   class instan<ate ViewController   .swi7 View   Model   Objec<ve-­‐C swi7
  48. ᶄ͝৽نύλʔϯ Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ৽نViewController͸جຊϑϧSwiftͰॻ͘ ʮ৽ن։ൃ෼͸SwiftͰॻ͖·͢ʯύλʔϯ

    طଘͷobjcίʔυͷґଘ͕গͳ͘΍Γ΍͍͢ ৽͍͠ը໘΍ػೳΛ௥Ճ͢Δέʔεʹ͓͢͢Ί ྫʣ • Ϣʔβొ࿥ɾϩάΠϯ • ϚΠϝχϡʔ • ίΠϯߪೖॲཧ • ಈը޿ࠂ 20
  49. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 21 ᶅ੾Γग़͠ύλʔϯ Objec<ve-­‐C

    swi7
  50. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 21 ᶅ੾Γग़͠ύλʔϯ objc

     class   method   Objec<ve-­‐C swi7
  51. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 21 ᶅ੾Γग़͠ύλʔϯ objc

     class   method   Objec<ve-­‐C swi7
  52. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 21 Logic  

    .swi7 ᶅ੾Γग़͠ύλʔϯ objc  class   method   Objec<ve-­‐C swi7
  53. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 21 Logic  

    .swi7 ᶅ੾Γग़͠ύλʔϯ objc  class   method   ίʔϧ Objec<ve-­‐C swi7
  54. ᶅ੾Γग़͠ύλʔϯ Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ϩδοΫΛswiftʹ੾Γग़͢ 22

    - (NSNumber*)getNum { NSNumber* num = ...; return num; } .m
  55. ᶅ੾Γग़͠ύλʔϯ Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ϩδοΫΛswiftʹ੾Γग़͢ 22

    if (num.integerValue == 0) { NSLog(@"num is zero"); } else { NSLog(@"num is non zero"); } - (NSNumber*)getNum { NSNumber* num = ...; return num; } .m
  56. ᶅ੾Γग़͠ύλʔϯ Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ϩδοΫΛswiftʹ੾Γग़͢ 22

    - (NSNumber*)getNum { NSNumber* num = ...; return num; } .m
  57. ᶅ੾Γग़͠ύλʔϯ Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ϩδοΫΛswiftʹ੾Γग़͢ 22

    - (NSNumber*)getNum { NSNumber* num = ...; return num; } .m [NumLogger debug:num];
  58. ᶅ੾Γग़͠ύλʔϯ Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ϩδοΫΛswiftʹ੾Γग़͢ 22

    - (NSNumber*)getNum { NSNumber* num = ...; return num; } .m + final class NumLogger: NSObject { class func debug(num:NSNumber) { if num.integerValue == 0 { print("num is zero") } else { print("num is non zero") } } } .swi7 [NumLogger debug:num];
  59. ᶅ੾Γग़͠ύλʔϯ Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ϩδοΫΛswiftʹ੾Γग़͢ 22

    - (NSNumber*)getNum { NSNumber* num = ...; return num; } .m + final class NumLogger: NSObject { class func debug(num:NSNumber) { if num.integerValue == 0 { print("num is zero") } else { print("num is non zero") } } } .swi7 [NumLogger debug:num]; • ࠷খݶͷมߋͰطଘobjcϝιουͷϩδοΫΛ௥Ճɾमਖ਼Ͱ͖Δ • ࢖͍Ͳ͜Ζɿϩάग़ྗॲཧɺόϦσʔγϣϯɺUtilతͳॲཧ • Ϣχοτςετ΋ॻ͖΍͍͢
  60. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ᶆϒϦοδύλʔϯ 23 Objec<ve-­‐C

    swi7
  61. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ᶆϒϦοδύλʔϯ 23 objc

      class objc   class objc   class Objec<ve-­‐C swi7
  62. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ᶆϒϦοδύλʔϯ 23 Nested

     Type Top-­‐level   func<on Typealias Tuple enum enum enum struct struct struct objc   class objc   class objc   class Objec<ve-­‐C swi7
  63. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ᶆϒϦοδύλʔϯ 23 Nested

     Type Top-­‐level   func<on Typealias Tuple enum enum enum struct struct struct objc   class objc   class objc   class Objec<ve-­‐C swi7
  64. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ᶆϒϦοδύλʔϯ 23 Nested

     Type Top-­‐level   func<on Typealias Tuple enum enum enum struct struct struct objc   class objc   class objc   class Objec<ve-­‐C swi7
  65. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ᶆϒϦοδύλʔϯ 23 Nested

     Type Top-­‐level   func<on Typealias Tuple enum enum enum struct struct struct objc   class objc   class objc   class Bridging   NSObject Objec<ve-­‐C swi7
  66. objcͱswiftͷڮ౉͠ Ұఆن໛ͷswfitίϯϙʔωϯτ objcίʔυ ͷڮ౉͠ ᶆϒϦοδύλʔϯ Copyright (C) DeNA Co.,Ltd. All

    Rights Reserved. 24 ޿ࠂ࿮ Ad networking logging imp click display/   event  handling
  67. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 25 ᶇextensionύλʔϯ Objec<ve-­‐C

    swi7
  68. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 25 ᶇextensionύλʔϯ FooClass

      method1 method2 Objec<ve-­‐C swi7
  69. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 25 ᶇextensionύλʔϯ FooClass

      method1 method2 method3 Objec<ve-­‐C swi7
  70. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 25 ᶇextensionύλʔϯ FooClass

      method1 method2 method3 FooClass   extension     Objec<ve-­‐C swi7
  71. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 25 ᶇextensionύλʔϯ FooClass

      method1 method2 method3 FooClass   extension     method3 Objec<ve-­‐C swi7
  72. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 25 ᶇextensionύλʔϯ FooClass

      method1 method2 method3 FooClass   extension     method3 Objec<ve-­‐C swi7
  73. ᶇextensionύλʔϯ Copyright (C) DeNA Co.,Ltd. All Rights Reserved. طଘobjcΫϥεΛextension͢Δ 26

    @implement FooClass - (void)method1 {...} - (void)method2 {...} @end .m
  74. ᶇextensionύλʔϯ Copyright (C) DeNA Co.,Ltd. All Rights Reserved. طଘobjcΫϥεΛextension͢Δ 26

    @implement FooClass - (void)method1 {...} - (void)method2 {...} @end .m + extension FooClass { //ϝιου௥Ճ func method3() { … } } .swi7
  75. ᶇextensionύλʔϯ Copyright (C) DeNA Co.,Ltd. All Rights Reserved. طଘobjcΫϥεΛextension͢Δ 26

    @implement FooClass - (void)method1 {...} - (void)method2 {...} @end .m + extension FooClass { //ϝιου௥Ճ func method3() { … } } .swi7 • Ұ൪ࣗવͰద༻ͤ͞΍͍͢ύλʔϯ
  76. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 27 ᶇextensionύλʔϯ ViewerController

    Objec<ve-­‐C swi7
  77. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 27 ᶇextensionύλʔϯ ViewerController

    Objec<ve-­‐C swi7
  78. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 27 ᶇextensionύλʔϯ ViewerController

    Objec<ve-­‐C swi7
  79. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 27 ᶇextensionύλʔϯ ViewerController

    ViewerController   extension Objec<ve-­‐C swi7
  80. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 27 ᶇextensionύλʔϯ ViewerController

    ViewerController   extension func   shareBu)onDidTapped()   Objec<ve-­‐C swi7
  81. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 27 ᶇextensionύλʔϯ ViewerController

    ViewerController   extension func   shareBu)onDidTapped()   Objec<ve-­‐C swi7
  82. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 28 ᶈ๫࿐ύλʔϯ Objec<ve-­‐C

    swi7
  83. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 28 ᶈ๫࿐ύλʔϯ FooClass

      property1 method1 Objec<ve-­‐C swi7
  84. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 28 ᶈ๫࿐ύλʔϯ FooClass

      property1 method1 Objec<ve-­‐C swi7 method2
  85. FooClass   extension     ᶇ extensionύλʔϯ Copyright (C) DeNA

    Co.,Ltd. All Rights Reserved. 28 ᶈ๫࿐ύλʔϯ FooClass   property1 method1 Objec<ve-­‐C swi7 method2
  86. FooClass   extension     ᶇ extensionύλʔϯ Copyright (C) DeNA

    Co.,Ltd. All Rights Reserved. 28 ᶈ๫࿐ύλʔϯ FooClass   property1 method1 Objec<ve-­‐C swi7 method2   method2
  87. FooClass   extension     ᶇ extensionύλʔϯ Copyright (C) DeNA

    Co.,Ltd. All Rights Reserved. 28 ᶈ๫࿐ύλʔϯ FooClass   property1 method1 ࢀরɾίʔϧෆՄ Objec<ve-­‐C swi7 method2   method2
  88. FooClass   extension     ᶇ extensionύλʔϯ Copyright (C) DeNA

    Co.,Ltd. All Rights Reserved. 28 ᶈ๫࿐ύλʔϯ FooClass   property1 method1 Objec<ve-­‐C swi7 method2   method2
  89. FooClass   extension     ᶇ extensionύλʔϯ Copyright (C) DeNA

    Co.,Ltd. All Rights Reserved. 28 ᶈ๫࿐ύλʔϯ FooClass   property1 method1 Objec<ve-­‐C swi7 method2   method2 ҙਤతͳ   ΧϓηϧԽͷഁյʂ
  90. FooClass   extension     ᶇ extensionύλʔϯ Copyright (C) DeNA

    Co.,Ltd. All Rights Reserved. 28 ᶈ๫࿐ύλʔϯ FooClass   property1 method1 Bridging-­‐ Header.h   Objec<ve-­‐C swi7 method2   method2 ҙਤతͳ   ΧϓηϧԽͷഁյʂ
  91. FooClass   extension     ᶇ extensionύλʔϯ Copyright (C) DeNA

    Co.,Ltd. All Rights Reserved. 28 ᶈ๫࿐ύλʔϯ FooClass   property1 method1 Bridging-­‐ Header.h   Objec<ve-­‐C swi7 property1 method1 ެ։ method2   method2 ҙਤతͳ   ΧϓηϧԽͷഁյʂ
  92. FooClass   extension     ᶇ extensionύλʔϯ Copyright (C) DeNA

    Co.,Ltd. All Rights Reserved. 28 ᶈ๫࿐ύλʔϯ FooClass   property1 method1 Bridging-­‐ Header.h   ࢀরɾίʔϧ Objec<ve-­‐C swi7 property1 method1 ެ։ method2   method2 ҙਤతͳ   ΧϓηϧԽͷഁյʂ
  93. ᶈ๫࿐ύλʔϯ Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 29 @interface

    FooClass () @property NSString property1; @end @implement FooClass (void)method1 { ... } @end .m @interface FooClass @end .h
  94. ᶈ๫࿐ύλʔϯ Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 29 @interface

    FooClass () @property NSString property1; @end @implement FooClass (void)method1 { ... } @end .m #import “xxx.h” #import “yyy.h” #import “zzz.h” ... @interface FooClass (PrivateForSwift) @property (readonly) NSString *property1; (void)method1; @end Xxxx-­‐Bridging-­‐Header.h + @interface FooClass @end .h
  95. ᶈ๫࿐ύλʔϯ Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 29 @interface

    FooClass () @property NSString property1; @end @implement FooClass (void)method1 { ... } @end .m extension FooClass { func methods() { property1 = “foo"; method1() } } .swi7 + #import “xxx.h” #import “yyy.h” #import “zzz.h” ... @interface FooClass (PrivateForSwift) @property (readonly) NSString *property1; (void)method1; @end Xxxx-­‐Bridging-­‐Header.h + @interface FooClass @end .h
  96. ᶈ๫࿐ύλʔϯ Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 29 @interface

    FooClass () @property NSString property1; @end @implement FooClass (void)method1 { ... } @end .m extension FooClass { func methods() { property1 = “foo"; method1() } } .swi7 + #import “xxx.h” #import “yyy.h” #import “zzz.h” ... @interface FooClass (PrivateForSwift) @property (readonly) NSString *property1; (void)method1; @end Xxxx-­‐Bridging-­‐Header.h + @interface FooClass @end .h ↑objc͸Ұ੾มߋ͍ͯ͠ͳ͍
  97. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 30 ϓϥΠϕʔτଐੑΛ෦෼తʹެ։͢Δ ᶈ๫࿐ύλʔϯ

  98. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ҙਤతʹΧϓηϧԽΛഁյ 30 ϓϥΠϕʔτଐੑΛ෦෼తʹެ։͢Δ

    ᶈ๫࿐ύλʔϯ
  99. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ҙਤతʹΧϓηϧԽΛഁյ ⁃ extension͔ΒຊମΫϥεͷϓϥΠϕʔτଐੑ΁ͷΞΫηε͕

    Մೳʹ 30 ϓϥΠϕʔτଐੑΛ෦෼తʹެ։͢Δ ᶈ๫࿐ύλʔϯ
  100. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ҙਤతʹΧϓηϧԽΛഁյ ⁃ extension͔ΒຊମΫϥεͷϓϥΠϕʔτଐੑ΁ͷΞΫηε͕

    Մೳʹ ⁃ มߋՕॴ͸ϒϦοδϯάϔομͷΈɺطଘͷ.h/.m͸มߋͳ͠ 30 ϓϥΠϕʔτଐੑΛ෦෼తʹެ։͢Δ ᶈ๫࿐ύλʔϯ
  101. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ҙਤతʹΧϓηϧԽΛഁյ ⁃ extension͔ΒຊମΫϥεͷϓϥΠϕʔτଐੑ΁ͷΞΫηε͕

    Մೳʹ ⁃ มߋՕॴ͸ϒϦοδϯάϔομͷΈɺطଘͷ.h/.m͸มߋͳ͠ ଥڠ͕ඞཁͳ෦෼ 30 ϓϥΠϕʔτଐੑΛ෦෼తʹެ։͢Δ ᶈ๫࿐ύλʔϯ
  102. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ҙਤతʹΧϓηϧԽΛഁյ ⁃ extension͔ΒຊମΫϥεͷϓϥΠϕʔτଐੑ΁ͷΞΫηε͕

    Մೳʹ ⁃ มߋՕॴ͸ϒϦοδϯάϔομͷΈɺطଘͷ.h/.m͸มߋͳ͠ ଥڠ͕ඞཁͳ෦෼ ⁃ ҟ࿦ͷग़Δͱ͜Ζ 30 ϓϥΠϕʔτଐੑΛ෦෼తʹެ։͢Δ ᶈ๫࿐ύλʔϯ
  103. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ҙਤతʹΧϓηϧԽΛഁյ ⁃ extension͔ΒຊମΫϥεͷϓϥΠϕʔτଐੑ΁ͷΞΫηε͕

    Մೳʹ ⁃ มߋՕॴ͸ϒϦοδϯάϔομͷΈɺطଘͷ.h/.m͸มߋͳ͠ ଥڠ͕ඞཁͳ෦෼ ⁃ ҟ࿦ͷग़Δͱ͜Ζ ⁃ Ұ࣌తͳରԠɺͱ͍͏ׂΓ੾Γ 30 ϓϥΠϕʔτଐੑΛ෦෼తʹެ։͢Δ ᶈ๫࿐ύλʔϯ
  104. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ҙਤతʹΧϓηϧԽΛഁյ ⁃ extension͔ΒຊମΫϥεͷϓϥΠϕʔτଐੑ΁ͷΞΫηε͕

    Մೳʹ ⁃ มߋՕॴ͸ϒϦοδϯάϔομͷΈɺطଘͷ.h/.m͸มߋͳ͠ ଥڠ͕ඞཁͳ෦෼ ⁃ ҟ࿦ͷग़Δͱ͜Ζ ⁃ Ұ࣌తͳରԠɺͱ͍͏ׂΓ੾Γ ⁃ ͜͜ΛׂΓ੾Ε͹SwiftԽ͸ҰؾʹਐΉ 30 ϓϥΠϕʔτଐੑΛ෦෼తʹެ։͢Δ ᶈ๫࿐ύλʔϯ
  105. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 31 ᶉ৐ͬऔΓύλʔϯ FooClass

      method1 property1 31 Objec<ve-­‐C swi7 property2 method2
  106. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 31 ᶉ৐ͬऔΓύλʔϯ FooClass

      method1 property1 31 Objec<ve-­‐C swi7 property2 method2 FooClass   extension   method2   property2   ᶇ extensionύλʔϯ ???
  107. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 31 ᶉ৐ͬऔΓύλʔϯ FooClass

      method1 property1 31 Objec<ve-­‐C swi7 property2 method2 FooClass   extension   method2   property2   ᶇ extensionύλʔϯ ???
  108. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 32 ᶉ৐ͬऔΓύλʔϯ 32

    Objec<ve-­‐C swi7
  109. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 32 ᶉ৐ͬऔΓύλʔϯ FooClass

      method1 property1 32 Objec<ve-­‐C swi7
  110. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 32 ᶉ৐ͬऔΓύλʔϯ FooClass

      method1 property1 32 Objec<ve-­‐C swi7 property2 method2
  111. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 32 ᶉ৐ͬऔΓύλʔϯ FooClass

      method1 property1 32 Objec<ve-­‐C swi7 property2 method2 FooClassBase rename
  112. FooClass   Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 32

    ᶉ৐ͬऔΓύλʔϯ FooClass   method1 property1 32 Objec<ve-­‐C swi7 property2 method2 FooClassBase rename
  113. FooClass   extends Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

    32 ᶉ৐ͬऔΓύλʔϯ FooClass   method1 property1 32 Objec<ve-­‐C swi7 property2 method2 FooClassBase rename
  114. FooClass   extends Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

    32 ᶉ৐ͬऔΓύλʔϯ FooClass   method1 property1 32 method2   property2   Objec<ve-­‐C swi7 property2 method2 FooClassBase rename
  115. FooClass   extends Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

    32 ᶉ৐ͬऔΓύλʔϯ FooClass   method1 property1 32 method2   property2   Objec<ve-­‐C swi7 FooClassBase rename
  116. FooClass   extends Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

    32 ᶉ৐ͬऔΓύλʔϯ FooClass   method1 property1 32 method2   property2   Objec<ve-­‐C swi7 ࢀরɾίʔϧ? FooClassBase rename
  117. FooClass   extends Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

    32 ᶉ৐ͬऔΓύλʔϯ FooClass   method1 property1 32 method2   property2   Objec<ve-­‐C swi7 FooClassBase rename
  118. FooClass   extends Bridging-­‐ Header.h   +ᶈ๫࿐ύλʔϯ Copyright (C) DeNA

    Co.,Ltd. All Rights Reserved. 32 ᶉ৐ͬऔΓύλʔϯ FooClass   method1 property1 32 method2   property2   Objec<ve-­‐C swi7 FooClassBase rename
  119. FooClass   extends Bridging-­‐ Header.h   +ᶈ๫࿐ύλʔϯ Copyright (C) DeNA

    Co.,Ltd. All Rights Reserved. 32 ᶉ৐ͬऔΓύλʔϯ FooClass   method1 property1 32 method2   property2   Objec<ve-­‐C swi7 property1 method1 ެ։ FooClassBase rename
  120. FooClass   extends Bridging-­‐ Header.h   +ᶈ๫࿐ύλʔϯ Copyright (C) DeNA

    Co.,Ltd. All Rights Reserved. 32 ᶉ৐ͬऔΓύλʔϯ FooClass   method1 property1 32 method2   property2   Objec<ve-­‐C swi7 property1 method1 ެ։ ࢀরɾίʔϧ FooClassBase rename
  121. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 33 objΫϥεΛswiftͰܧঝ໊͠લΛ৐ͬऔΔ ᶉ৐ͬऔΓύλʔϯ

  122. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ⁃ ܧঝͯ͠৐ͬऔΔ 33

    objΫϥεΛswiftͰܧঝ໊͠લΛ৐ͬऔΔ ᶉ৐ͬऔΓύλʔϯ
  123. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ⁃ ܧঝͯ͠৐ͬऔΔ •

    ΫϥεຊମΛSwiftʹҠ͠ସ͑ɺطଘobjcΫϥε͸਌ ΫϥεԽ 33 objΫϥεΛswiftͰܧঝ໊͠લΛ৐ͬऔΔ ᶉ৐ͬऔΓύλʔϯ
  124. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ⁃ ܧঝͯ͠৐ͬऔΔ •

    ΫϥεຊମΛSwiftʹҠ͠ସ͑ɺطଘobjcΫϥε͸਌ ΫϥεԽ • ϓϩύςΟ΍ϝιου͸ࣗ༝ʹ௥ՃՄೳ 33 objΫϥεΛswiftͰܧঝ໊͠લΛ৐ͬऔΔ ᶉ৐ͬऔΓύλʔϯ
  125. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ⁃ ܧঝͯ͠৐ͬऔΔ •

    ΫϥεຊମΛSwiftʹҠ͠ସ͑ɺطଘobjcΫϥε͸਌ ΫϥεԽ • ϓϩύςΟ΍ϝιου͸ࣗ༝ʹ௥ՃՄೳ • ᶈ๫࿐ύλʔϯͷซ༻Մೳ 33 objΫϥεΛswiftͰܧঝ໊͠લΛ৐ͬऔΔ ᶉ৐ͬऔΓύλʔϯ
  126. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ⁃ ܧঝͯ͠৐ͬऔΔ •

    ΫϥεຊମΛSwiftʹҠ͠ସ͑ɺطଘobjcΫϥε͸਌ ΫϥεԽ • ϓϩύςΟ΍ϝιου͸ࣗ༝ʹ௥ՃՄೳ • ᶈ๫࿐ύλʔϯͷซ༻Մೳ ⁃ ଥڠϙΠϯτ 33 objΫϥεΛswiftͰܧঝ໊͠લΛ৐ͬऔΔ ᶉ৐ͬऔΓύλʔϯ
  127. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ⁃ ܧঝͯ͠৐ͬऔΔ •

    ΫϥεຊମΛSwiftʹҠ͠ସ͑ɺطଘobjcΫϥε͸਌ ΫϥεԽ • ϓϩύςΟ΍ϝιου͸ࣗ༝ʹ௥ՃՄೳ • ᶈ๫࿐ύλʔϯͷซ༻Մೳ ⁃ ଥڠϙΠϯτ • ܧঝؔ܎͕มߋ͞ΕΔ 33 objΫϥεΛswiftͰܧঝ໊͠લΛ৐ͬऔΔ ᶉ৐ͬऔΓύλʔϯ
  128. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ⁃ ܧঝͯ͠৐ͬऔΔ •

    ΫϥεຊମΛSwiftʹҠ͠ସ͑ɺطଘobjcΫϥε͸਌ ΫϥεԽ • ϓϩύςΟ΍ϝιου͸ࣗ༝ʹ௥ՃՄೳ • ᶈ๫࿐ύλʔϯͷซ༻Մೳ ⁃ ଥڠϙΠϯτ • ܧঝؔ܎͕มߋ͞ΕΔ ⁃ ผղˠ 33 objΫϥεΛswiftͰܧঝ໊͠લΛ৐ͬऔΔ ᶉ৐ͬऔΓύλʔϯ
  129. FooClass   method1 property1 Copyright (C) DeNA Co.,Ltd. All Rights

    Reserved. 34 ᶉผղɿ৐ͬऔΓύλʔϯ(ΧςΰϦ֦ு) FooClass   34 property2   (Category  Extension) Objec<ve-­‐C swi7 property1 extensionͰ͸ͳ͘   ಉ໊ΫϥεΛSwi7Ͱ ݩͷFooClassΛ   objcΧςΰϦ֦ுʹ߱֨
  130. FooClass   method1 property1 Copyright (C) DeNA Co.,Ltd. All Rights

    Reserved. 34 ᶉผղɿ৐ͬऔΓύλʔϯ(ΧςΰϦ֦ு) FooClass   34 property2   (Category  Extension) Objec<ve-­‐C swi7 property1 extensionͰ͸ͳ͘   ಉ໊ΫϥεΛSwi7Ͱ ݩͷFooClassΛ   objcΧςΰϦ֦ுʹ߱֨ ☓৐ͬऔΓݩPCKDʹϓϥΠϕʔτଐੑ͕͋Δ৔߹ɺ੍ݶଟΊͳͷͰ/(
  131. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ࢀߟɿΞϯνύλʔϯ 35 //ετΞυϓϩύςΟͷ௥Ճ

    var name:String { get { return objc_getAssociatedObject(self, &key) as! String } set { objc_setAssociatedObject(self, &key, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)} } //ϓϥΠϕʔτϝιουͷ࣮ߦ if respondsToSelector("_reload") { performSelector("_reload") } //ϓϥΠϕʔτϓϩύςΟͷࢀর if let titleLabel = valueForKey("TitleLabel") as? UILabel { ... } • ΧϓηϧԽΛഁյͤͣʹϓϥΠϕʔτ ଐੑΛࢀরɾ௥ՃՄೳ   • ϝϯςφϯεੑ˚   • ϚϯΨϘοΫεͰ͸ۃྗ࢖༻͠ͳ͍Α ͏ʹ͍ͯ͠Δ associatedObject Ωʔ஋ίʔσΟϯά objcηϨΫλʔ
  132. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 36 ᶊࣸܦύλʔϯ Objec<ve-­‐C

    swi7
  133. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 36 FooClass  

    method1 method2 ᶊࣸܦύλʔϯ Objec<ve-­‐C swi7
  134. ࣸܦ Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 36 FooClass

      method1 method2 ᶊࣸܦύλʔϯ Objec<ve-­‐C swi7
  135. FooClass   method1 method2 ࣸܦ Copyright (C) DeNA Co.,Ltd. All

    Rights Reserved. 36 FooClass   method1 method2 ᶊࣸܦύλʔϯ Objec<ve-­‐C swi7
  136. FooClass   method1 method2 ࣸܦ Copyright (C) DeNA Co.,Ltd. All

    Rights Reserved. 36 ᶊࣸܦύλʔϯ Objec<ve-­‐C swi7
  137. FooClass   method1 method2 Copyright (C) DeNA Co.,Ltd. All Rights

    Reserved. 36 ᶊࣸܦύλʔϯ Objec<ve-­‐C swi7
  138. ᶊࣸܦύλʔϯ Copyright (C) DeNA Co.,Ltd. All Rights Reserved. طଘͷobjcίʔυΛswiftͰॻ͖௚͢ •

    ࠷ޙͷखஈ • ςετͷ༗ແͰϦεΫมಈ • ݩίʔυ͕ςετͰอޢ͞Ε͍ͯΔˠ˕ • ର৅objcίʔυΛ·ͣςετͰอޢ͔ͯ͠ΒSwiftͰॻ͖௚͢ˠ̋ • ׬શॻ͖௚͠ˠ˚ • ͋Δҙຯγϯϓϧ͕ͩɺϑϧQA͸ඞਢɺίετେ 37
  139. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ࢀߟɿࣸܦͷ͓ڙʹ 38 •

    Generated Interface
  140. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ࢀߟɿࣸܦͷ͓ڙʹ 39 •

    Generated Interface
  141. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ࢀߟɿࣸܦͷ͓ڙʹ 40 •

    Generated Interface
  142. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ࢀߟɿࣸܦͷ͓ڙʹ • objc→swift

    ίʔυม׵πʔϧ • https://github.com/yahoojapan/objc2swift • https://objectivec2swift.com/?ref=producthunt#/converter/code • http://iswift.org • https://myappconverter.com • https://itunes.apple.com/us/app/o2swift-objective-c-to-swift/id1060352413?ls=1&mt=12 • ͍ͣΕ΋ػցతͳม׵ͳͷͰख௚͠ˍQA͸ඞਢ 41
  143. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 42 ᶃ Ԇ໋ύλʔϯ

    ᶄ ͝৽نύλʔϯ ᶅ ੾Γग़͠ύλʔϯ ᶆ ϒϦοδύλʔϯ ᶇ extensionύλʔϯ ᶈ ๫࿐ύλʔϯ ᶉ ৐ͬऔΓύλʔϯ ᶊ ࣸܦύλʔϯ Mix-and-MatchΛ࢖ͬͨSwiftҠߦύλʔϯ ϦεΫ   τϦοΩʔ౓   Swi7Ҡߦ౓ খ େ
  144. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Կ͔ʹࣅ͍ͯΔ 43

  145. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Կ͔ʹࣅ͍ͯΔ 44 ᶃ

    Ԇ໋ύλʔϯ ᶄ ͝৽نύλʔϯ ᶅ ੾Γग़͠ύλʔϯ ᶆ ϒϦοδύλʔϯ ᶇ extensionύλʔϯ ᶈ ๫࿐ύλʔϯ ᶉ ৐ͬऔΓύλʔϯ ᶊ ࣸܦύλʔϯ
  146. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Կ͔ʹࣅ͍ͯΔ 44 ᶃ

    Ԇ໋ύλʔϯ ᶄ ͝৽نύλʔϯ ᶅ ੾Γग़͠ύλʔϯ ᶆ ϒϦοδύλʔϯ ᶇ extensionύλʔϯ ᶈ ๫࿐ύλʔϯ ᶉ ৐ͬऔΓύλʔϯ ᶊ ࣸܦύλʔϯ h)p://shop.ohmsha.co.jp/shopdetail/000000003881/ ϦϑΝΫλϦϯά
  147. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Կ͔ʹࣅ͍ͯΔ 44 ᶃ

    Ԇ໋ύλʔϯ ᶄ ͝৽نύλʔϯ ᶅ ੾Γग़͠ύλʔϯ ᶆ ϒϦοδύλʔϯ ᶇ extensionύλʔϯ ᶈ ๫࿐ύλʔϯ ᶉ ৐ͬऔΓύλʔϯ ᶊ ࣸܦύλʔϯ h)p://shop.ohmsha.co.jp/shopdetail/000000003881/ ϦϑΝΫλϦϯά Extract  Method   Extract  Class
  148. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Կ͔ʹࣅ͍ͯΔ 45 ᶃ

    Ԇ໋ύλʔϯ ᶄ ͝৽نύλʔϯ ᶅ ੾Γग़͠ύλʔϯ ᶆ ϒϦοδύλʔϯ ᶇ extensionύλʔϯ ᶈ ๫࿐ύλʔϯ ᶉ ৐ͬऔΓύλʔϯ ᶊ ࣸܦύλʔϯ
  149. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Կ͔ʹࣅ͍ͯΔ 45 ᶃ

    Ԇ໋ύλʔϯ ᶄ ͝৽نύλʔϯ ᶅ ੾Γग़͠ύλʔϯ ᶆ ϒϦοδύλʔϯ ᶇ extensionύλʔϯ ᶈ ๫࿐ύλʔϯ ᶉ ৐ͬऔΓύλʔϯ ᶊ ࣸܦύλʔϯ h)p://www.sbcr.jp/products/4797311126.html gof  σβΠϯύλʔϯ
  150. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Կ͔ʹࣅ͍ͯΔ 45 ᶃ

    Ԇ໋ύλʔϯ ᶄ ͝৽نύλʔϯ ᶅ ੾Γग़͠ύλʔϯ ᶆ ϒϦοδύλʔϯ ᶇ extensionύλʔϯ ᶈ ๫࿐ύλʔϯ ᶉ ৐ͬऔΓύλʔϯ ᶊ ࣸܦύλʔϯ h)p://www.sbcr.jp/products/4797311126.html gof  σβΠϯύλʔϯ Bridgeύλʔϯ
  151. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Կ͔ʹࣅ͍ͯΔ 46 ᶃ

    Ԇ໋ύλʔϯ ᶄ ͝৽نύλʔϯ ᶅ ੾Γग़͠ύλʔϯ ᶆ ϒϦοδύλʔϯ ᶇ extensionύλʔϯ ᶈ ๫࿐ύλʔϯ ᶉ ৐ͬऔΓύλʔϯ ᶊ ࣸܦύλʔϯ
  152. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Կ͔ʹࣅ͍ͯΔ 46 ᶃ

    Ԇ໋ύλʔϯ ᶄ ͝৽نύλʔϯ ᶅ ੾Γग़͠ύλʔϯ ᶆ ϒϦοδύλʔϯ ᶇ extensionύλʔϯ ᶈ ๫࿐ύλʔϯ ᶉ ৐ͬऔΓύλʔϯ ᶊ ࣸܦύλʔϯ h)p://www.shoeisha.co.jp/book/detail/9784798116839 ϨΨγʔίʔυվળΨΠυ
  153. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Կ͔ʹࣅ͍ͯΔ 46 ᶃ

    Ԇ໋ύλʔϯ ᶄ ͝৽نύλʔϯ ᶅ ੾Γग़͠ύλʔϯ ᶆ ϒϦοδύλʔϯ ᶇ extensionύλʔϯ ᶈ ๫࿐ύλʔϯ ᶉ ৐ͬऔΓύλʔϯ ᶊ ࣸܦύλʔϯ h)p://www.shoeisha.co.jp/book/detail/9784798116839 ϨΨγʔίʔυվળΨΠυ • εϓϥ΢τϝιου   • εϓϥ΢τΫϥε   • ੩తϝιουͷެ։ ςετίʔυΛॻͨ͘ΊͷϦϑΝΫλϦϯάख๏
  154. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 47 ᶃ Ԇ໋ύλʔϯ

    ᶄ ͝৽نύλʔϯ ᶅ ੾Γग़͠ύλʔϯ ᶆ ϒϦοδύλʔϯ ᶇ extensionύλʔϯ ᶈ ๫࿐ύλʔϯ ᶉ ৐ͬऔΓύλʔϯ ᶊ ࣸܦύλʔϯ Mix-and-MatchΛ࢖ͬͨSwiftҠߦύλʔϯ طଘͷιϑτ΢ΣΞ։ൃٕ๏ͷ׆༻ʹΑΓ   εϜʔζɾ҆શʹSwi7ҠߦՄೳ
  155. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ·ͱΊ 48

  156. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ·ͱΊ 49

  157. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ·ͱΊ Objective-C͔ΒSwiftԽ΁ͷҠߦ͸େมʁ 49

  158. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ·ͱΊ Objective-C͔ΒSwiftԽ΁ͷҠߦ͸େมʁ →·ͣ͸؆୯ͳύλʔϯ͔Βࢼͯ͠ΈΔ

    49
  159. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ·ͱΊ Objective-C͔ΒSwiftԽ΁ͷҠߦ͸େมʁ →·ͣ͸؆୯ͳύλʔϯ͔Βࢼͯ͠ΈΔ

    • Ԇ໋ύλʔϯ 49
  160. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ·ͱΊ Objective-C͔ΒSwiftԽ΁ͷҠߦ͸େมʁ →·ͣ͸؆୯ͳύλʔϯ͔Βࢼͯ͠ΈΔ

    • Ԇ໋ύλʔϯ • ͝৽نύλʔϯ 49
  161. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ·ͱΊ Objective-C͔ΒSwiftԽ΁ͷҠߦ͸େมʁ →·ͣ͸؆୯ͳύλʔϯ͔Βࢼͯ͠ΈΔ

    • Ԇ໋ύλʔϯ • ͝৽نύλʔϯ ׳Ε͖ͯͨΒ͍ΖΜͳύλʔϯΛࢼ͢ 49
  162. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ·ͱΊ Objective-C͔ΒSwiftԽ΁ͷҠߦ͸େมʁ →·ͣ͸؆୯ͳύλʔϯ͔Βࢼͯ͠ΈΔ

    • Ԇ໋ύλʔϯ • ͝৽نύλʔϯ ׳Ε͖ͯͨΒ͍ΖΜͳύλʔϯΛࢼ͢ ύλʔϯʹ͍ͭͯ͋Ε͜Εߟ͑Δͷ΋ָ͍͠ 49
  163. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ·ͱΊ Objective-C͔ΒSwiftԽ΁ͷҠߦ͸େมʁ →·ͣ͸؆୯ͳύλʔϯ͔Βࢼͯ͠ΈΔ

    • Ԇ໋ύλʔϯ • ͝৽نύλʔϯ ׳Ε͖ͯͨΒ͍ΖΜͳύλʔϯΛࢼ͢ ύλʔϯʹ͍ͭͯ͋Ε͜Εߟ͑Δͷ΋ָ͍͠ ⁃ ଞʹ΋ྑ͍ύλʔϯ͕͋Γͦ͏ 49
  164. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ·ͱΊ Objective-C͔ΒSwiftԽ΁ͷҠߦ͸େมʁ →·ͣ͸؆୯ͳύλʔϯ͔Βࢼͯ͠ΈΔ

    • Ԇ໋ύλʔϯ • ͝৽نύλʔϯ ׳Ε͖ͯͨΒ͍ΖΜͳύλʔϯΛࢼ͢ ύλʔϯʹ͍ͭͯ͋Ε͜Εߟ͑Δͷ΋ָ͍͠ ⁃ ଞʹ΋ྑ͍ύλʔϯ͕͋Γͦ͏ ⁃ ໊͔͍͍ͬ͜લر๬ 49
  165. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 50 objc

  166. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 50 objc

  167. swi7 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 50 objc

  168. swi7 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 51 objc

  169. swi7 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 52 objc

    swi7
  170. swi7 swi7 swi7 swi7 Copyright (C) DeNA Co.,Ltd. All Rights

    Reserved. 53 objc swi7 swi7
  171. objc swi7 swi7 Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

    54 swi7 swi7 swi7 swi7 swi7 swi7
  172. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 55 swi7

  173. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 56 ਐ ௙

    Ͳ ͏ Ͱ ͢ ͔
  174. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ϚϯΨϘοΫεͷݱࡏͷSwiftԽ཰ 17%ఔ౓ ·ͩ·ͩ͜Ε͔Β

    57
  175. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ࠓޙͷ༧ଌʢࡶʣ 58 2020೥

     ver5.6  ʹͯSwi7Խ཰100%౸ୡ༧ఆʢࡶʣʂʂʂ
  176. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 59 Let’s Objc

    to Swift !
  177. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ 60