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

iOSアプリの技術選択2022

 iOSアプリの技術選択2022

Tatsuya Tanaka

May 14, 2022
Tweet

More Decks by Tatsuya Tanaka

Other Decks in Programming

Transcript

  1. 5BUTVZB5BOBLBͨͳͨͭ


    J04ΞϓϦͷٕज़બ୒

    View full-size slide

  2. ͨͳͨͭ / Tatsuya Tanaka
    • Ϡϑʔגࣜձࣾ / iOSΞϓϦࠇଳ


    • TechFeed Expert
    @tattn
    @tanakasan2525
    @tattn

    View full-size slide

  3. VTuberελΠϧͰWebձٞʹࢀՃͰ͖ΔΞϓϦެ։த

    View full-size slide

  4. ࠓɺiOSΞϓϦΛ࡞ΔͳΒ

    Ͳ͏͢Δʁ
    ※ ωΠςΟϒͰ࡞੒͢Δ৔߹

    View full-size slide

  5. τϐοΫε
    ɾUIϑϨʔϜϫʔΫͷબఆ

    ɾϥΠϒϥϦ؅ཧ


    ɾΞϓϦͷߏ੒


    ɾCI


    ɾςετ഑෍

    View full-size slide

  6. UIϑϨʔϜϫʔΫͷબఆ

    View full-size slide

  7. UIKit ͱ SwiftUI ͦΕͧΕͷϝϦοτ
    SwiftUI UIKit
    ɾUIͷ։ൃίετΛԼ͛ΒΕΔ

    ɾӡ༻ίετΛԼ͛ΒΕΔ

    ɹɾίϯϙʔωϯτԽ͠΍͍͢


    ɹɾUIͷมߋ͕༰қ

    ɹɾίʔυࠩ෼͕෼͔Γ΍͍͢
    ɾ͞·͟·ͳUIΛ࣮ݱͰ͖Δ

    ɾಈ࡞͕҆ఆ͍ͯ͠Δ

    View full-size slide

  8. UIKit ͱ SwiftUI ͦΕͧΕͷϝϦοτ
    SwiftUI UIKit
    ɾUIͷ։ൃίετΛԼ͛ΒΕΔ

    ɾӡ༻ίετΛԼ͛ΒΕΔ

    ɹɾίϯϙʔωϯτԽ͠΍͍͢


    ɹɾUIͷมߋ͕༰қ

    ɹɾίʔυࠩ෼͕෼͔Γ΍͍͢
    ɾ͞·͟·ͳUIΛ࣮ݱͰ͖Δ

    ɾಈ࡞͕҆ఆ͍ͯ͠Δ

    View full-size slide

  9. UIKit or SwiftUI
    iOS 13Ҏ߱ͷαϙʔτʁ
    UIσβΠϯΛॊೈʹௐ੔Մೳʁ
    YES
    YES
    SwiftUI UIKit
    NO
    NO
    ɾiOS 13Ҏ߱ (Ͱ͖Ε͹࠷৽APIΛ࢖͍͍ͨ)

    ɾiOSඪ४ͷσβΠϯ͔Βҳ୤͢Δͱ

    ɹ։ൃ޻਺͕େ͖͘૿Ճ͢Δ
    ɾݹ͍APIͰ΋࣮૷͸Մೳ


    ɾUIϨΠΞ΢τͷॊೈੑ͕ߴ͍

    View full-size slide

  10. ϥΠϒϥϦ؅ཧ

    View full-size slide

  11. iOSͷϥΠϒϥϦ؅ཧπʔϧ
    SwiftPM Carthage CocoaPods ͦͷଞ

    View full-size slide

  12. Swift Package Manager (SwiftPM) Λ࢖͓͏
    ඪ४ͷSwiftPM͕͓͢͢Ί


    ͦΕҎ֎ͷख๏͸কདྷతʹϝϯςφϯε͞Εͳ͘ͳΔՄೳੑ͕ߴ͍


    SwiftPMʹରԠ͍ͯ͠ͳ͍৔߹ʹہॴతʹଞΛ࢖͏
    SwiftPM Carthage CocoaPods ͦͷଞ

    View full-size slide

  13. ΞϓϦͷߏ੒

    View full-size slide

  14. SwiftPMͰΞϓϦΛϞδϡʔϧԽ͢Δߏ੒͕͓͢͢Ί
    ɾΞϓϦͷϏϧυ୯ҐΛมߋͯ͠Ϗϧυ࣌ؒΛݮΒ͢

    ɾΞϓϦͷઃܭΛϞδϡʔϧʹམͱ͠ࠐΉ

    View full-size slide

  15. ΞϓϦͷઃܭ
    SwiftUIͰ͸ The Composable Architecture (TCA)

    UIKitͰ͸ VIPER૬౰ͷઃܭ ͕Α͘࿩୊ʹ

    View full-size slide

  16. ΞϓϦͷઃܭ
    SwiftUIͰ͸ The Composable Architecture (TCA)

    UIKitͰ͸ VIPER૬౰ͷઃܭ ͕Α͘࿩୊ʹ
    ͜ΕΒΛਪਐͰ͖Δϝϯόʔ͕͍Δ৔߹͸͓͢͢Ί



    ͍ͳ͍৔߹͸·ͣ͸γϯϓϧʹ࣮૷͠ɺ

    ςελϏϦςΟͷ୲อ΍νʔϜ಺ͷҙࢥૄ௨ͳͲͷ

    ՝୊͕໌ΔΈʹͳ͔ͬͯΒݕ౼ͯ͠΋஗͘ͳ͍

    View full-size slide

  17. CI


    (ܧଓతΠϯςάϨʔγϣϯ)

    View full-size slide

  18. CI
    Apple͕ఏڙ͢Δ Xcode Cloud ͸·ͩβ൛


    ଞʹBitriseɺGitHub ActionsɺCodemagicͳͲ༷ʑͳબ୒ࢶ͕͋Δ

    View full-size slide

  19. CI
    Apple͕ఏڙ͢Δ Xcode Cloud ͸·ͩβ൛


    ଞʹBitriseɺGitHub ActionsɺCodemagicͳͲ༷ʑͳબ୒ࢶ͕͋Δ
    ͜ΕҰ୒ͱ͍͏બ୒ࢶ͕ͳ͍ͨΊɺ


    ඞཁͳػೳ΍ࢧ෷͑ΔίετʹԠͯ͡౎౓બ୒͕ඞཁ…
    Ϗϧυؔ܎ΛࣗಈԽ͢ΔͳΒfastlane͕ศར

    ϓϩδΣΫτઃఆ౳͸࢓༷มߋ͕ଟ͍ͨΊɺඪ४ͷ࢓૊ΈͰͷઃఆ͕͓͢͢Ί

    View full-size slide

  20. ςετ഑෍

    View full-size slide

  21. ςετ഑෍
    AppleͷTestFlight͕ͱͯ΋ศརʂ
    େاۀͰ͸ Apple Developer Enterprise Program Ͱͷ

    ഑෍΋૊Έ߹Θͤͯ࢖ΘΕ͍ͯΔ
    ։ൃνʔϜ޲͚ͷ഑෍͸100ਓ

    Ұൠ޲͚ͷςετ഑෍͸1ສਓ


    ෳ਺όʔδϣϯͷ഑෍΋OK
    TestFlight

    View full-size slide

  22. ·ͱΊ
    ɾUIϑϨʔϜϫʔΫ͸SwiftUIΛબ୒Ͱ͖Δঢ়گΛ࡞Ζ͏

    ɾϥΠϒϥϦ؅ཧ͸SwiftPM


    ɾΞϓϦͷߏ੒͸SwiftPMͰͷϞδϡʔϧԽ & νʔϜʹ͋ͬͨઃܭ


    ɾCI͸ඞཁͳػೳʹԠͯ͡બ୒͕ඞཁɺBitrise͸؆୯


    ɾςετ഑෍͸TestFlight

    View full-size slide

  23. ࢀߟࢿྉ
    ɾThe Composable Architecture

    ɹɾhttps://github.com/pointfreeco/swift-composable-architecture

    ɾA Tour of isowords: Part 1


    ɹɾhttps://www.pointfree.co/episodes/ep142-a-tour-of-isowords-part-1

    ɾSwift Packageத৺ͷϓϩδΣΫτߏ੒ͱͦͷ࣮ફ

    ɹɾhttps://fortee.jp/iosdc-japan-2021/proposal/1338c9cc-363a-44a6-bbac-452b67b472fb

    ɾTestFlight


    ɹɾhttps://developer.apple.com/jp/test
    fl
    ight/

    ɾXcode Cloud


    ɹɾhttps://developer.apple.com/jp/xcode-cloud/

    View full-size slide