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

限られたリソースで進める段階的なSwit移行

 限られたリソースで進める段階的なSwit移行

2017.05.31 Wantedly 技術見学会 〜iOS編〜
https://wantedly.connpass.com/event/56920/

での発表内容です。

Jiro Nagashima

May 31, 2017
Tweet

More Decks by Jiro Nagashima

Other Decks in Technology

Transcript

  1. Ӭౡ ࣍࿕ʗJIRO NAGASHIMA
    ݶΒΕͨϦιʔεͰਐΊΔ
    ஈ֊తͳSwitҠߦ
    - Wantedly ٕज़ݟֶձ 2017.05.31 -

    View full-size slide

  2. γΰτͰίίϩΦυϧ
    SwitͷҠߦͱฒߦͯ͠
    ղܾ͢΂͖՝୊

    View full-size slide

  3. γΰτͰίίϩΦυϧ
    Wantedly Visit ͷΞϓϦ։ൃʹ͓͚Δ՝୊
    ݶΒΕͨϦιʔε
    1
    2
    3
    ωοτϫʔΫ૚ͷ࠶ઃܭͷඞཁੑ
    Ϧετදࣔͷ࠶ઃܭͷඞཁੑ

    View full-size slide

  4. γΰτͰίίϩΦυϧ
    Wantedly Visit ͷΞϓϦ։ൃʹ͓͚Δ՝୊
    ݶΒΕͨϦιʔε
    1
    2
    3
    ωοτϫʔΫ૚ͷ࠶ઃܭͷඞཁੑ
    Ϧετදࣔͷ࠶ઃܭͷඞཁੑ

    View full-size slide

  5. γΰτͰίίϩΦυϧ
    ݶΒΕͨϦιʔε
    2016.09 2017.04
    ৽نࣄۀ΁ͷ஫ྗ
    ৽نϝϯόʔ௥Ճ
    ৽نࣄۀ΁ͷ஫ྗͰҰ࣌ظ͸1ਓͰ։ൃ

    View full-size slide

  6. γΰτͰίίϩΦυϧ
    ݶΒΕͨϦιʔε
    άϩʔενʔϜͷΤϯδχΞͷۀ຿͸୯७ͳ։ൃ͚ͩͰͳ͍
    ΤϯδχΞɾσβΠφʔͰऔΓ૊ΉάϩʔεϋοΫ // Speaker Deck - https://speakerdeck.com/hedjirog/ensiniatesainatequ-rizu-mugurosuhatuku

    View full-size slide

  7. γΰτͰίίϩΦυϧ
    Wantedly Visit ͷΞϓϦ։ൃʹ͓͚Δ՝୊
    ݶΒΕͨϦιʔε
    1
    2
    3
    ωοτϫʔΫ૚ͷ࠶ઃܭͷඞཁੑ
    Ϧετදࣔͷ࠶ઃܭͷඞཁੑ

    View full-size slide

  8. γΰτͰίίϩΦυϧ
    ωοτϫʔΫ૚ͷ࠶ઃܭͷඞཁੑ
    RestKit ΛΞϓϦͷϦϦʔε͔࣌Βར༻
    ΢ΣϒαʔϏεͷΫϥΠΞϯτ࣮૷޲͚ͷϑϨʔϜϫʔΫ
    ʢ ௨৴ / Ϛοϐϯά / ӬଓԽ ʣ
    2014.02 (໿3೥લ)

    View full-size slide

  9. γΰτͰίίϩΦυϧ
    RestKit ͷ՝୊
    • Objective-Cͷ࣮૷ͰϢʔβʔ͕ݮΓϝϯςφϯεස౓͕௿͘
    • AFNetworking 1.xܥʢNSURLConnectionΛ಺෦ར༻ʣʹґଘ
    • Ұ෦ͷΫϥογϡͷཁҼʹ΋
    ωοτϫʔΫ૚ͷ࠶ઃܭͷඞཁੑ
    → ґଘΛͳͯ͘͠ ୅ସͷ࣮૷ Λཱ֬͢Δඞཁ͕͋Δ

    View full-size slide

  10. γΰτͰίίϩΦυϧ
    Wantedly Visit ͷΞϓϦ։ൃʹ͓͚Δ՝୊
    ݶΒΕͨϦιʔε
    1
    2
    3
    ωοτϫʔΫ૚ͷ࠶ઃܭͷඞཁੑ
    Ϧετදࣔͷ࠶ઃܭͷඞཁੑ

    View full-size slide

  11. γΰτͰίίϩΦυϧ
    Ϧετදࣔ
    • ืू
    • ϑΟʔυ
    • ϒϩάهࣄɺࣾһΠϯλϏϡʔͳͲ
    • ࡢ೥͔ΒΞϓϦ΁ಋೖ
    Ϧετදࣔͷ࠶ઃܭͷඞཁੑ

    View full-size slide

  12. γΰτͰίίϩΦυϧ
    Ϧετදࣔ ͷ՝୊
    • ίϯςϯπͷଟ༷ԽͱෳࡶԽ
    • RestKitʹґଘͨ͠جఈΫϥε (View Controller) Λܧঝ࣮ͯ͠૷
    • εΫϩʔϧͷύϑΥʔϚϯε௿Լ
    Ϧετදࣔͷ࠶ઃܭͷඞཁੑ
    → ෳࡶੑʹରॲ͠ಘΔ ୅ସͷ࣮૷ ͰύϑΥʔϚϯε޲্Λ໨ࢦ͢

    View full-size slide

  13. γΰτͰίίϩΦυϧ
    SwiftҠߦͷ೉͠͞
    ݶΒΕͨϦιʔε
    1
    2
    3
    ωοτϫʔΫ૚ͷ࠶ઃܭͷඞཁੑ
    Ϧετදࣔͷ࠶ઃܭͷඞཁੑ
    SwiftҠߦ ͱฒߦͯ͠ ୅ସͷ࣮૷ ͷཱ֬ͱద༻΋ඞཁ
    ※ Ϧιʔε͸ݶΒΕ͍ͯΔ…

    View full-size slide

  14. γΰτͰίίϩΦυϧ
    ஈ֊తʹ
    SwiftҠߦΛਐΊΔ

    View full-size slide

  15. γΰτͰίίϩΦυϧ
    ஈ֊తͳSwiftҠߦ
    ϑΣʔζ 2ɿ୅ସͷ࣮૷ͷద༻ʢαϒը໘ʣ
    ϑΣʔζ 3ɿ୅ସͷ࣮૷ͷద༻ʢϝΠϯը໘ʣ
    ϑΣʔζ 1ɿSwiftͷॳظಋೖ

    View full-size slide

  16. γΰτͰίίϩΦυϧ
    ஈ֊తͳSwiftҠߦ
    ϑΣʔζ 2ɿ୅ସͷ࣮૷ͷద༻ʢαϒը໘ʣ
    ϑΣʔζ 3ɿ୅ସͷ࣮૷ͷద༻ʢϝΠϯը໘ʣ
    ϑΣʔζ 1ɿSwiftͷॳظಋೖ

    View full-size slide

  17. γΰτͰίίϩΦυϧ
    ஈ֊తͳSwiftҠߦ
    ϑΣʔζ 1ɿSwiftͷॳظಋೖ
    • Objective-CͷϓϩδΣΫτ΁ͷSwiftͷ෦෼ಋೖ
    • ϢʔβʔͷӨڹ͕খ͍͞ൣғ Ͱ࢝ΊΔ
    • Apple WatchΞϓϦ
    • A/Bςετج൫
    • σΟʔϓϦϯΫʹΑΔΞϓϦىಈ࣌ͷը໘੍ޚ
    • طଘͷ࣮૷Λେ͖͘ม͑Δ͜ͱ͸·ͩ͠ͳ͍

    View full-size slide

  18. γΰτͰίίϩΦυϧ
    ஈ֊తͳSwiftҠߦ
    ϑΣʔζ 2ɿ୅ସͷ࣮૷ͷద༻ʢαϒը໘ʣ
    ϑΣʔζ 3ɿ୅ସͷ࣮૷ͷద༻ʢϝΠϯը໘ʣ
    ϑΣʔζ 1ɿSwiftͷॳظಋೖ

    View full-size slide

  19. γΰτͰίίϩΦυϧ
    ஈ֊తͳSwiftҠߦ
    ϑΣʔζ 2ɿ୅ସͷ࣮૷ͷద༻ʢαϒը໘ʣ
    • ϢʔβʔͷӨڹ͕ݶఆతͳը໘ ͰҠߦΛਐΊΔ
    • ձࣾը໘
    • ݕࡧը໘
    • ϝοηʔδը໘
    • ୅ସͷ࣮૷ ͷཱ֬΋ਐΊͯطଘͷ࣮૷Λஔ͖׵͍͑ͯ͘

    View full-size slide

  20. γΰτͰίίϩΦυϧ
    ஈ֊తͳSwiftҠߦ
    ϑΣʔζ 2ɿ୅ସͷ࣮૷ͷద༻ʢαϒը໘ʣ
    ձࣾը໘
    • ը໘಺ʹෳ਺ͷαϒίϯςϯπ͕ଘࡏ
    • ෳ਺ͷ௨৴ϦΫΤετΛॲཧ
    • ৽نը໘ͳͷͰθϩϕʔεͰઃܭ
    • APIΫϥΠΞϯτ
    • ืूͷϦετදࣔ

    View full-size slide

  21. γΰτͰίίϩΦυϧ
    ݕࡧը໘
    • ืूͱձࣾΛಉ࣌ݕࡧ
    • ෳ਺ͷ௨৴ϦΫΤετΛॲཧ
    • ΠϯΫϦϝϯλϧαʔν΋
    • طଘը໘ͷஔ͖׵͑ͱ࣮ͯ͠૷
    • ߴ౓ͳRxSwiftͷར༻
    • ืूͷϦετදࣔͷϒϥογϡΞοϓ
    ஈ֊తͳSwiftҠߦ
    ϑΣʔζ 2ɿ୅ସͷ࣮૷ͷద༻ʢαϒը໘ʣ

    View full-size slide

  22. γΰτͰίίϩΦυϧ
    ϝοηʔδը໘
    • ΑΓߴ౓ͳϦετදࣔ
    • ঢ়ଶʹԠͨ͡ηϧͷද੍ࣔޚ͕ඞཁ
    • طଘ࢓༷ʹԊ࣮ͬͨ૷ͷஔ͖׵͑
    • ϖʔδϯάͷ࣮૷
    • “Pull to Refresh” ͷ࣮૷
    • ஔ͖׵͑ͷίετײͷ೺Ѳʹ΋
    ஈ֊తͳSwiftҠߦ
    ϑΣʔζ 2ɿ୅ସͷ࣮૷ͷద༻ʢαϒը໘ʣ

    View full-size slide

  23. γΰτͰίίϩΦυϧ
    ओʹ࠾༻ͨ͠ϥΠϒϥϦ
    • RxSwift
    • MVVMͷσʔλόΠϯσΟϯάɺෳࡶͳඇಉظॲཧ
    • Moya
    • ωοτϫʔΫ૚ͷ࣮૷ɺRxSwiftͱͷ࿈ܞ΋Մೳ
    • Unbox
    • JSONͷσίʔυ
    • YYText
    • ߴ౓ͳςΩετॲཧɺϨΠΞ΢τܭࢉΛඇಉظͰߦͳ͏͜ͱ΋Մೳ
    ஈ֊తͳSwiftҠߦ
    ϑΣʔζ 2ɿ୅ସͷ࣮૷ͷద༻ʢαϒը໘ʣ

    View full-size slide

  24. γΰτͰίίϩΦυϧ
    ஈ֊తͳSwiftҠߦ
    ϑΣʔζ 2ɿ୅ସͷ࣮૷ͷద༻ʢαϒը໘ʣ
    ϑΣʔζ 3ɿ୅ସͷ࣮૷ͷద༻ʢϝΠϯը໘ʣ
    ϑΣʔζ 1ɿSwiftͷॳظಋೖ

    View full-size slide

  25. γΰτͰίίϩΦυϧ
    ஈ֊తͳSwiftҠߦ
    ϑΣʔζ 3ɿ୅ସͷ࣮૷ͷద༻ʢϝΠϯը໘ʣ
    • ϢʔβʔͷӨڹͷେ͖͍ը໘ Ͱͷద༻
    • ΞϓϦىಈ࣌ͷืूͷϦετදࣔ
    • Comming Soon…
    • ϑΟϧλʔ΍ݕࡧΛେ͖͘มߋͯ͠ϦϦʔε

    View full-size slide

  26. γΰτͰίίϩΦυϧ
    SwiftҠߦʹ͓͚Δ޻෉

    View full-size slide

  27. γΰτͰίίϩΦυϧ
    SwiftҠߦʹ͓͚Δ޻෉
    • ஈ֊తʹ ਐΊΔ
    • ϢʔβʔͷӨڹ͕খ͍͞ൣғ͔Β
    • ઃܭํ਑ཱ͕֬͢Δ·ͰԿ౓΋εςοϓΛ౿Ή
    • ৽نػೳ ΍ ৽نը໘ Ͱ࣮૷Λࢼ͢
    • ※ ΤϯδχΞͰࢪࡦͷݕ౼ΛਐΊ͍ͯΔͷͰ࣮ࢪ͢Δࢪࡦͷίϯτϩʔϧ͕Մೳ
    • θϩϕʔεͰઃܭΛߟ͑ΒΕΔΑ͏ʹ
    • طଘ࣮૷ͷஔ͖׵͑ Λҙࣝͯ͠ݒ೦఺Λ௵͓ͯ͘͠

    View full-size slide

  28. γΰτͰίίϩΦυϧ
    ͓·͚

    View full-size slide

  29. Wantedly Ͱ͸ iOSΤϯδχΞ Λืू͍ͯ͠·͢ʂʂ
    https://www.wantedly.com/projects/102790

    View full-size slide