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

『Swift実践入門』制作の舞台裏

inao
February 24, 2017
2.3k

 『Swift実践入門』制作の舞台裏

「『Swift実践入門』刊行記念 Tech Talks」での発表資料です。

https://connpass.com/event/50546/

inao

February 24, 2017
Tweet

Transcript

  1. ʰ4XJGU࣮ફೖ໳ʱ

    ੍࡞ͷ෣୆ཪ
    Ҵඌঘಙ
    8%#13&44ฤू෦ʢٕज़ධ࿦ࣾʣ
    ʰ4XJGU࣮ફೖ໳ʱץߦه೦5FDI5BMLT

    View Slide

  2. લఏ
    ͜͜ʹ͍Βͬ͠ΌΔΑ͏ͳษڧ೤৺ͳํʑ͸ɺ
    ࣥ͝චऀʹͳΓ͏Δํʑͩͱࢥ͍·͢ͷͰɺ
    ͦͷલఏͰ͓࿩͍͖ͤͯͨͩ͞·͢

    View Slide

  3. ͲΜͳࡶࢽɾॻ੶Λ

    ࡞͍ͬͯΔ͔

    ʢࣗݾ঺հʹ͔͑ͯʣ

    View Slide

  4. 8%#13&44
    w೥૑ץͷִ݄ࢽ
    w7PM͸ຊ೔ൃചʂ
    wདྷि7PMͷاըձٞ

    View Slide

  5. 8%#13&44QMVT
    w೥ץߦ։࢝
    wطץ࡭

    View Slide

  6. γϦʔζۙץ
    ޷ධൃചத
    ݄೔
    ൃച༧ఆ

    View Slide

  7. ੍࡞؀ڥ

    View Slide

  8. ओͳπʔϧ
    w(JU)VCͰݪߘ؅ཧ
    wNEJOBPͰݪߘςΩετͷม׵
    w"EPCF*O%FTJHOͰࢴ໘ϨΠΞ΢τ
    wDPEFHFOTXJGUͰαϯϓϧίʔυநग़

    ʢຊॻ༻ͷ৽ฌثʣ

    View Slide

  9. (JU)VCͰݪߘ؅ཧ
    wஶऀͱฤूऀ͕࢖͏
    wه๏͸.BSLEPXO
    wͦΕͧΕͷ࡞ۀ͸ɺ8*1ʢ8PSL*O1SPHSFTTʣͳ

    1VMM3FRVFTUΛग़ͯ͠ߦ͏
    ૿࡮ʢະఆʣʹ

    ޲͚ͯݱࡏਐߦத
    ͷ1VMM3FRVFTU

    View Slide

  10. NEJOBPͰݪߘͷม׵
    wฤूऀ͕࢖͏
    w.BSLEPXOͰॻ͔ΕͨݪߘΛɺ8%#13&44
    8%#13&44QMVT༻ͷ*O%FTJHOλά෇͖ςΩετ
    ʹม׵͢Δ
    w ݟग़͠ɺຊจɺ஫ऍͳͲͷจࣈؔ܎ΛࣗಈϨΠΞ΢τ
    w ը૾ɺදͳͲͷผΦϒδΣΫτ΋ͷ͸खಈ
    w!OBPZB͞Μɺ!IPLBDDIB͞Μɺ!UZQFTUFS͞ΜΒ࡞
    wࣗ෼Ͱ໊෇͚ͨΘ͚Ͱ͸ͳ͍Ͱ͢

    View Slide

  11. "EPCF*O%FTJHOͰ

    ࢴ໘ϨΠΞ΢τ
    wϨΠΞ΢τ୲౰ऀ͕࢖͏
    ͜ͷϖʔδʹ͸ਤද
    ͕ͳ͍ͷͰɺ*O%FTJHO
    λά෇͖ςΩετΛ

    ྲྀ͠ࠐΊ͹΄΅ϨΠ
    Ξ΢τ׬ྃ

    View Slide

  12. ͜͜·Ͱͷπʔϧʹ͍ͭͯৄ͘͠͸ɺ

    ೥ͷ(JU)VC,BJHJͰͷൃදࢿྉ

    ʮ(JU)VCͰࡶࢽɾॻ੶Λ࡞ΔʯΛ͝ཡ͍ͩ͘͞
    IUUQXXXTMJEFTIBSFOFUJOBPHJUIVCLBJHJ

    View Slide

  13. DPEFHFOTXJGUͰίʔυநग़
    wஶऀͱฤूऀ͕࢖͏
    wຊॻ༻ʹஶऀ͞Μ͕৽։ൃ
    wίϚϯυҰൃͰɺݪߘςΩετ͔ΒίʔυΛൈ͖
    ग़͠ɺ഑෍༻ͷ1MBZHSPVOEϑΝΠϧΛੜ੒͢Δ
    wશମͰ΋ͷίʔυย͕͋ΔͨΊɺखಈͩͱ
    ϛε͕ൃੜ͢Δ
    wಈ࡞֬ೝͰ͖ΔͨΊɺࢴ໘ͷ඼࣭޲্ʹ΋׆༂

    View Slide

  14. ͜Μͳײ͡Ͱɺষ͝ͱͷ1MBZHSPVOEϑΝΠϧΛɺ

    ίʔυย͝ͱʹϖʔδΛ෼͚ͯੜ੒ͯ͘͠ΕΔ

    View Slide

  15. ץߦ·Ͱͷ෣୆ཪ

    View Slide

  16. ϑΣʔζ
    wاը
    wࣥච
    w૬ޓϦϥΠτ
    wฤू
    w੍࡞

    View Slide

  17. اըͷਐΊํ
    wίϯηϓτɺର৅ಡऀɺର৅ൣғͳͲΛݻΊΔ
    wৄࡉͳΞ΢τϥΠϯʢ໨࣍ʣʹམͱ͠ࠐΉ
    ʮର৅ಡऀͷ͏ͪҰ൪લఏ஌ࣝͷͳ͍ํ͕ɺ

    ɹΞ΢τϥΠϯΛಡΉ͚ͩͰɺຊॻͷετʔϦʔΛ

    ɹཧղͰ͖ΔΑ͏ʹ͍ͯͩ͘͠͞ʯ

    View Slide

  18. اըεέδϡʔϧ
    wɿΩοΫΦϑ
    wɿΞ΢τϥΠϯܾఆ
    ϲ݄ؒ
    ݟग़͠਺͸
    ʢץߦ࣌͸ʣ

    View Slide

  19. ࣥචͷਐΊํ
    w!JTILBXB͞Μ͸ɺલ൒ͷجຊষ͔Βॻ͘
    w!ZVTFJOJTIJZBNB͞Μ͸ɺޙ൒ͷ࣮ફষ͔Βॻ͘
    ʮಡऀͷํ͕ιʔείʔυ΍දͳͲΛಡΈඈ͹ͯ͠
    ɹຊจ͚ͩΛಡΜͰ΋ɺେҙ͸௥͑ΔΑ͏ʹॻ͍ͯ

    ɹ͍ͩ͘͞ʯ

    View Slide

  20. ࣥචεέδϡʔϧ
    wɿࣥචελʔτ
    wɿશষ୤ߘ
    ϲ݄ؒ
    ͓Ұਓ͋ͨΓ݄ষϖʔε

    View Slide

  21. ͔͜͜Β͕ຊ൪
    ຊॻͰ͸ɺ͔͜͜ΒͷϒϥογϡΞοϓʹ

    ྗΛ஫͗·ͨ͠
    ୤ߘ ॳߍ
    ೖߘ

    View Slide

  22. ૬ޓϦϥΠτͷਐΊํ
    w୲౰ষΛަ୅ͯ͠૬ޓϦϥΠτΛߦ͏
    w ڞஶʹΑΔσϝϦοτΛͳͨ͘͢Ί
    w આ໌ͷաෆ଍ɺ༻ޠͷෆ౷Ұɺจମͷ૬ҧ
    wࣥචऀຊਓ͡Όͳ͍ͱमਖ਼Ͱ͖ͳ͍΋ͷ͸ɺ*TTVFԽ͢Δ
    wϨϏϡϫʔͷํʹΑΔϨϏϡʔ΋ฒߦͯ͠ߦ͏
    ʮଞਓͷจষΛมߋ͢Δͷ͸ؾ͕ͻ͚Δ͔ͱ
    ɹࢥ͍·͕͢ɺࣗ͝਎ͷจষΛਪᏏ͍ͯ͠Δͱ
    ɹ͓ࢥ͍ʹͳͬͯϦϥΠτ͍ͯͩ͘͠͞ʯ

    View Slide

  23. ૬ޓϦϥΠτͷεέδϡʔϧ
    wɿ૬ޓϦϥΠτɺϨϏϡʔελʔτ
    wɿ૬ޓϦϥΠτɺϨϏϡʔ׬ྃ
    wɿϑΟʔυόοΫ΁ͷରԠ׬ྃ
    ϲ݄ؒ

    View Slide

  24. ฤूͷਐΊํ
    w૬ޓϦϥΠτͱಉ༷ʹɺϦϥΠτ͸௚઀ߦ͏
    wෳ਺ষʹؔΘΔϑΟʔυόοΫ͸ɺ*TTVFԽ͢Δ
    wͦͷষݻ༗ͷϑΟʔυόοΫ͸ɺݪߘதʹ˒Ͱ
    ׅͬͯίϝϯτ͢Δ
    w ˒˓˓ͳͲͷ˒ϥΠϒϥϦ͕͋Γ·͢ɻ
    w ˒ͳͥɺ☓☓ͳͷ͔͕ͪΐͬͱΘ͔Γ·ͤΜͰ
    ͨ͠˒

    View Slide

  25. ฤूεέδϡʔϧ
    wɿฤू෦ߍਖ਼ελʔτ
    wɿฤू෦ߍਖ਼׬ྃ
    wɿฤू෦࠶ߍਖ਼׬ྃ
    w શମతʹେ͖͘มΘͬͨͷͰ΋͏Ұ౓
    w ୤ߘ࣌ʹൺ΂ɺ໿ഒɺϖʔδ૿͍͑ͯͯযΔ
    wɿฤू෦࠶ʑߍਖ਼׬ྃ
    w 4XJGUରԠɺඇॏཁ߲໨ͷ࡟আͳͲͨͨ͠Ίࠩ෼Λ֬ೝ
    ϲ݄ؒ
    ʢ4XJGU߹Θͤʹมߋͨͨ͠Ίͱɺح਺݄͸

    ɹࡶࢽͷ࡞ۀΛ͍ͯ͠ΔͨΊΏͬ͘Γϖʔεʣ

    View Slide

  26. ੍࡞ͷਐΊํ
    w*O%FTJHOͰ࡞ͬͨຊ൪ήϥ΁ͷஶऀ͝ߍਖ਼݁Ռ΋ɺ
    ͜Ε·ͰͲ͓Γ1VMM3FRVFTUͰ΋Β͏
    wͦΕΛϨΠΞ΢τ୲౰ऀʹ఻͑Δͷ͸੺ೖΕͰ
    w͜ͷஈ֊Ͱͷมߋ͸࡞ۀϛε͕ൃੜ͠΍͍͢ͷͰɺ

    ฤूஈ֊ͰۃྗΫΥϦςΟΛ্͓͛ͯ͘
    ʮʯͱ͔͸

    ࠩ෼ςΩετͷ൪߸

    View Slide

  27. ੍࡞εέδϡʔϧ
    wɿॳߍ׬੒
    wɿ೦ߍ׬੒ʢෳ਺ճʣ
    wɿҹ࡮ॴೖߘʂ
    ϲ݄ؒ

    View Slide

  28. ਺ࣈͰΞϐʔϧ
    ͜ͷຊ͸ɺΑΓྑ͍ຊΛ໨ࢦͯ͠

    ΈΜͳͰྗΛ߹Θͤͯ޻਺Λ͔͚ա͗

    ͘Β͍͔͚ͯ࡞ͬͯ͠·͍·ͨ͠ͷͰɺ

    ʮ͕Μ͹ͬͨΞϐʔϧʯΛ͍ͤͯͩ͘͞͞

    View Slide

  29. (JU)VC
    wίϛοτ਺ɿ
    w1VMM3FRVFTU਺ɿ
    w*TTVF਺ɿ
    ୤ߘ ॳߍ
    ೖߘ

    View Slide

  30. ϛʔςΟϯάͱΧϯρϝ
    wϛʔςΟϯάɿճ
    w ͍͍݄ͩͨҰ͘Β͍
    wΧϯρϝɿճ
    w ༧ఆΑΓ஗Ε͕ੜͨ͡ͱ͖ʹߦ͏
    w େ൒͸ஶऀ͞Μ͓ೋਓͰɻͨ·ʹશһͰ
    w ʮ૭ͷͳ͍ձٞࣨͰͰ͔͢ʁʯ

    View Slide

  31. ʮ*TTVFରԠɺ˒ରԠɺಈ࡞֬ೝͰ

    ͓ೋਓͦΕͧΕ໿͔͔࣌ؒΔ

    ͱ͍͏ݟੵ΋ΓͰ͢Ͷɻ
    ٳ೔͸೔࣌ؒɺฏ೔͸ຖ೔࣌ؒɺ
    ࡞ۀ͍ͯͩ͘͠͞ʯ


    ͳͱ͖ͷϗϫΠτϘʔυ

    View Slide

  32. ߍਖ਼
    wॴཁ࣌ؒɿ࣌ؒ
    w ࡞ۀ೔
    w ೔͋ͨΓ࣌ؒ
    wϑΟʔυόοΫ਺ʢ˒΍*TTVFʣɿ
    ʢલड़ͨ͠ฤूϑΣʔζͰͷ΋ͷͰ͢ɻ૲ߘஈ֊΍ॳߍ׬੒

    ɹҎޙͷ΋ͷ͸ɺܭଌͯ͠ͳ͍ͷͰؚ·Ε͍ͯ·ͤΜʣ

    View Slide

  33. ·ͱΊ

    View Slide

  34. ͓ೋਓ͔ͩΒͦ͜ɺ͏·͍ͬͨ͘
    wࣄલʹ໘ࣝͳ͠
    w ஶऀ͞ΜͲ͏͠΋ɺஶऀ͞Μͱฤूऀ΋
    w೥ϲ݄ؒͱ͍͏௕ظϓϩδΣΫτ
    w͜͜·Ͱઆ໌͖ͯͨ͠Α͏ͳաෛՙ
    w͝స৬ɺ͓ࢠ༷ͷ஀ੜɺ௕ظग़ுɺւ֎సۈ
    ͳͷʹɺ͔ͤͬ͘ͷٳ೔ʹɺ૭ͷͳ͍ձٞࣨͰͷ

    ΧϯρϝதͰ͋ͬͯ΋ɺݥѱͳงғؾʹͳͬͨΓ

    ͨ͜͠ͱ͸Ұ౓΋͋Γ·ͤΜͰͨ͠☺

    View Slide

  35. 4XJGUͷఆ൪ॻΛ໨ࢦ͍ͨ͠
    վగΛॏͶͳ͕Βɺ௕೥Ѫ͞ΕΔ4XJGUͷఆ൪ॻ
    ʹͳΔ͜ͱΛ໨ඪʹ͍ͯ͠·͢ɻ
    Ͱ΋ɺॳ൛͕ͪΌΜͱചΕͳ͍͜ͱʹ͸ɺվగ
    Ͱ͖·ͤΜɻ
    ͥͻɺ͝ߪಡ͍ͩ͘͞ɻ
    ͦͯ͠ྑ͍ຊͰͨ͠Βɺपғͷํʹ΋קΊͯͩ͘
    ͍͞ʂ

    View Slide

  36. ͝੩ௌ͋Γ͕ͱ͏

    ͍͟͝·ͨ͠

    View Slide