Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Swiftでアプリを開発した体験記

 Swiftでアプリを開発した体験記

SwiftでiOS8 Day1 に向けてリリースしたSIORIの開発記

yohei sugigami

October 16, 2014
Tweet

More Decks by yohei sugigami

Other Decks in Technology

Transcript

  1. Swift LT
    @Wantedly
    2014-10-16 yohei sugigami
    SwiftͰΞϓϦΛ։ൃͨ͠ମݧه

    View Slide

  2. ਿ্༸ฏ εΪΨϛϤ΢ϔΠ

    5XJUUFS(JU)VC!TVTJFZZ
    J04ΤϯδχΞ௕͍
    ݄͔̒Β8BOUFEMZ+PJO

    View Slide

  3. ݄̕೔J04%BZ
    4JPSJϦϦʔε

    View Slide

  4. 4JPSJ
    ϦϦʔε͸J04ͱಉ࣌ʢظؒλΠτʣ
    ։ൃ͸#FUB൛ͷ4XJGU9DPEFˍJ04
    νϟϨϯδϯάͳ6*69

    View Slide

  5. Ͳ.ײඬ͏
    ָ͍͠։ൃͰͨ͠
    ɾТɾʆ

    View Slide

  6. %&.0

    View Slide

  7. ։ൃεέδϡʔϧ
    6݄2೔

    iOS8

    Swiftൃද
    7݄த०

    ։ൃ։࢝
    9্݄०

    ਃ੥
    ɾ7݄த०͔ΒϓϩλΠϓ࡞੒
    ɾ8݄͔Βຊ֨։ൃ
    6݄1೔ Wantedlyೖࣾ
    ←̎ϲ݄ऑ→
    7݄຤ Swift࠾༻ܾఆ

    View Slide

  8. ։ൃମ੍໊
    σΟϨΫγϣϯ
    iOS (Swift)
    Server (Rails)
    iOS (Swift)
    ͚ͩ׼
    σβΠϯ
    iOS (Swift)
    εʔύʔΤϯδχΞ ৽ถΤϯδχΞ εʔύʔσβΠφ

    View Slide

  9. ΈΜͳͰ4XJGUίʔσΟϯά

    View Slide

  10. 6݄ 9݄
    7݄ 8݄
    ϓϩδΣΫτ͕࢝·Δલ
    ݄ʙ݄̓த०

    View Slide

  11. ηϯηʔγϣφϧͳ4XJGUൃද
    "QQMFͷຊؾ͕఻Θͬͯ͘Δ

    View Slide

  12. ·ͣ͸ษڧˍ৘ใऩू
    ษڧձΛ։͍ͯSwiftͷ஌ݟΛ
    ΈΜͳͰσΟεΧογϣϯ
    Swiftʹؔ৺͕͋ΔΤοδͷ
    ޮ͍ͨਓ͕ͨͪࢀՃͯ͘͠Ε
    ͨͷͰೱΏ͍৘ใަ׵͕
    Ͱ͖·ͨ͠

    View Slide

  13. ௐ΂ͨ͜ͱΛΞ΢τϓοτ
    QiitaʹΞ΢τϓοτ
    Swiftͷهࣄ̍̔ຊ
    ίϝϯτཝͰٞ࿦ͯ͠
    ॿ͚߹͍

    View Slide

  14. 4XJGUͰͭͳ͕ͬͨਓͨͪͷ͓͔͛
    4XJGUྗ͕͍ͭͨͷ͸

    View Slide

  15. 4XJGUָ͍͠Ͷ
    ࣍ͷϓϩδΣΫτͰ࢖͍͍ͨʂ

    View Slide

  16. ৽نϓϩδΣΫτൃ଍
    ݄̓த०ʙ຤
    6݄ 9݄
    7݄ 8݄
    4XJGUͰ։ൃ͸ܾ·ͬͯ·ͤΜͰͨ͠

    View Slide

  17. ϓϩτλΠϓΛ4XJGUͰ࡞ͬͯΈΔ
    ࢼ࡞̍߸Ξχϝʔγϣϯ΋͢ΔΑ
    ࠓͷσβΠϯͱ͸શવҧ͏͆

    View Slide

  18. ϓϩτλΠϓΛ4XJGUͰ࡞ͬͯΈΔ
    ࢼ࡞̎߸

    3BJMTαʔόͱ௨৴΋͢ΔΑ
    3FTU,JUΛݕূ0,
    ͜ͷ͜Ζ͸هࣄΛݟΔͷ͸
    ॎεΫϩʔϧͰͨ͠ ࠓ͸ԣʣ

    View Slide

  19. 4XJGU࠾༻ܾఆʂ
    ݄̓຤
    ͋ͱ࢒Γ̍ϲ݄ͪΐͬͱ
    ࢓༷ࡦఆͱϓϩλΠϓ
    ظؒʹ4XJGUΛݕূ
    ߦ͚ͦ͏ʂ

    View Slide

  20. 6݄ 9݄
    7݄ 8݄
    ຊ֨։ൃ
    ݄̔ʙ্݄̕०

    View Slide

  21. ݄̔த०69ͷ๞͘ͳ͖௥ٻ
    69ͷมߋͱ*OUFSBDUJWF5SBOTJUJPOͷ׆༻

    View Slide

  22. #FUB൛ͷ9DPEFJ04
    ˍ4XJGUʹ೰·͞ΕΔ

    View Slide

  23. #FUB൛ͷ9DPEFJ04ˍ4XJGUʹ೰·͞ΕΔ
    ɾ໰୊͕ൃੜͨ͠ͱ͖ʹXcode, iOS8, Swiftͷ
    ɹͲͷϨΠϠʔͷ໰୊͔੾Γ෼͚͕ඞཁ
    ɹશ෦Beta ͦΕͧΕ҆ఆ͠ͳ͍͠ڍಈ͕͓͔͍͆͠

    ɾXcode͕Α͘མͪΔ
    ɾγϯλοΫεϋΠϥΠτˍೖྗิ׬͕
    ɹΑ͘ޮ͔ͳ͘ͳΔ

    View Slide

  24. #FUB൛ͷ9DPEFJ04ˍ4XJGUʹ೰·͞ΕΔ
    ɾXcodeBeta1͔ΒBeta7·ͰΞοϓσʔτ͢Δ
    ɹ౓ʹେྔͷίϯύΠϧΤϥʔ
    ɾPureSwiftϥΠϒϥϦ͕BetaόʔδϣϯΞοϓͷରԠΛ
    ɹ଴ͯͳ͍ͷͰPureSwiftϥΠϒϥϦΛఘΊΔ
    ɾObjCϥΠϒϥϦ΋Ұ෦ಈ͔ͳ͍
    ɹiOS8 or Swiftʢ༧໿ޠͱόοςΠϯάʣ
    ɾσόοά࣌ʹม਺ͷ஋͕·ͬͨ͘ݟ͑ͳ͍

    View Slide

  25. 4XJGUͰΑ͔ͬͨ఺

    View Slide

  26. ଞͷݴޠΛΑ͘ݚڀ͞Εͯ࡞ΒΕͨϞμ
    ϯݴޠ͸΍Γ͍ͨ͜ͱ͕ΑΓॻ͚Δ
    ॻ͘ͷ͕ؾ͍͍࣋ͪʂ
    ؔ਺ϑΝʔετΫϥεɺΫϩʔδϟɺλϓ
    ϧɺλΠϓΠϯλʔϑΣʔεɺϓϩτίϧ
    ֦ுɺܕਪ࿦ɺ(FOFSJDT
    Α͔ͬͨ఺

    View Slide

  27. ίʔυྔ͕0CK$ʹൺ΂ͯ̒̌ˋ͙Β͍
    ɹ
    4XJGU͸දݱྗ͕ߴ͍ͷͰ୺తʹهड़Ͱ͖
    ΔɺՄಡੑ΋ߴ͘ίʔυϦʔσΟϯά͠
    ΍͍͢
    Α͔ͬͨ఺

    View Slide

  28. ڧྗͳ&OVNʹΑΔঢ়ଶ؅ཧͱ
    4XJUDIʹΑΔύλʔϯϚονϯά

    ʢঢ়ଶ෼ذॲཧʣ
    ֤ঢ়ଶͷϩδοΫΛ&OVNʹهड़

    Ͱ͖ΔͷͰہॴԽͰ͖Δ
    Α͔ͬͨ఺

    View Slide

  29. 4XJGUͱ0CK$ͷڞଘͨ͠։ൃ͕Մೳ
    ࠷ѱ4XJGUͰͲ͏ʹ΋Ͱ͖ͳ͍෦෼͸0CK$
    Ͱهड़͢Ε͹͍͍ͱ͍͏҆৺ײ
    Ұ൪ࠔΔͷ͸

    EFpOF ϚΫϩΛۦ࢖ͨ͠ϥΠϒϥϦ
    4XJGU͔Βݟ͑ͳ͍෦෼͸0CK$Ͱϥοϓ
    Α͔ͬͨ఺

    View Slide

  30. ࠔ͍ͬͯΔ͜ͱ

    View Slide

  31. 4XJGU΋αϙʔτ͞Ε͚ͨͲ
    ͪΌΜͱಈ͍ͯͳ͍ʁʂ

    View Slide

  32. 9DPEFͰ4XJGU͸Wʹͳ͕ͬͨ
    9DPEF#FUBͰ͸
    4XJGUͷ࢓༷͕·ͨมߋ͞Εͯ
    ίϯύΠϧΤϥʔ͕ग़Δ
    ๞͘ͳ͖υϥεςΟοΫͳ
    4XJGUݴޠͷվળ
    ૉ੖Β͍͠Ͱ͢Ͷʂ

    View Slide

  33. 4XJGUͷֶश

    View Slide

  34. J044%,ͷ஌͕ࣝ͋Ε͹ࢀೖোน͸௿͍
    ֶशۂઢ΋ॳظͷஈ֊͔Β৳ͼ͍͖ͯ΍͍͢
    㱺ָ͍͠ʂ

    খ͞ΊͷίʔυϦʔσΟϯά͕͓͢͢Ί
    NBUUU͞Μͷ"MBNPpSF

    IUUQTHJUIVCDPN"MBNPpSF"MBNPpSF
    0CK$ܦݧऀ

    View Slide

  35. ֎తཁҼͷ໰୊
    ɾ৘ใˍαϯϓϧίʔυ͕গͳ͍
    ɾωοτͰ͸#FUB৘ใ͕ೖΓཚΕΔ
    ɾϕετϓϥΫςΟεͷ໛ࡧ
    ɾ໰୊ൃੜ࣌ͷղܾ΋ࣗݾղܾ͢Δ

    ɹඞཁੑ
    J04ॳ৺ऀ
    ϞςΟϕʔγϣϯͰ৐Γ੾Δʂ

    View Slide

  36. ઃܭํ਑ɺίʔσΟϯάن໿ͳͲ
    ڞ௨ೝ͕ࣝͳ͍ͱهड़ʹଟ༷ੑ͕
    ͋ΔͷͰ౷Ұ͠ʹ͍͘
    νʔϜͰಋೖ͢ΔͳΒ
    1VMM3FRʹΑΔίʔυϨϏϡʔͰ୲อ

    ͯ͠·ͨ͠

    View Slide

  37. 4XJGUίʔσΟϯάن໿!8BOUFEMZ

    View Slide

  38. ·ͱΊ
    ˒ 4XJGUͷ։ൃ͸ָ͍͠ʂ
    ˒ 4XJGUͷ஌ݟ΍ࠔͬͨ͜ͱ͸

    0OMJOF0⒐JOFڞʹ৘ใڞ༗
    ˒ 4XJGUͰΞϓϦ͸࡞ΕΔʂ

    View Slide

  39. `
    iOS, Android
    Rails ΤϯδχΞ
    ืूத
    [email protected]
    ڵຯ͕͋Δํ͸ͪ͜Β͔Β͝࿈བྷ͍ͩ͘͞
    ৽͍ٕ͠ज़ʹͲΜͲΜ௅ઓ͍ͨ͠
    ϞόΠϧΤϯδχΞɾ΢Υϯςουʂʂ
    ͪ͜Β͔ΒͰ΋OKͰ͢

    View Slide