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

GANMA!にSwift PMを 導入した話

GANMA!にSwift PMを 導入した話

iOS Snack bar #1 2022/05/13

masayuki sano

May 19, 2022
Tweet

Other Decks in Programming

Transcript

  1. Swift PM導入の背景 • xcodeprojファイルのコンフリクト • Embedded frameworkを気軽に作成しづらい • Swift PMでライブラリ管理

    • Embedded frameworkをSwift Packageへ • マルチモジュール化 SwiftPMに対応したライブラリも増えてきたこともあり段階的に導入していく 課題感
  2. <1st step> Cocoa Pods x Swift PMへ SwiftPMに対応 → Swift

    PM バイナリ形式のxcframework → Swift PM それ以外の広告SDKなど → CocoaPods Carthage → 削除 モジュールへ依存追加 Package.resolved
  3. <2nd step> Embedded Frameworkの移行 まずはEmbedded frameworkをSwift Packageに移行 そのあと第3ステップでViewやPresentationも移行 App ∟View

    ∟ ViewModel, Presenter ∟ Resources Embedded framework ∟DataLayer ∟ ModelLayer ∟ DomainLayer ∟ ApplicationLayer 以前のGANMA!のプロジェクト構成
  4. <3rd step> マルチモジュール化 xib, storyboardを使用する場合 App ∟View ∟ ViewModel, Presenter

    ∟ Resources 表示確認をしながら少しずつViewLayerに分離中 ViewのSwift Packageへの移動 コードからxibを使用する場合 Appに残っているコードをSwift Packageに移し モジュールを作成しやすいようにしていく
  5. @_exported import @_exported importにより同一モジュールでのimport Assetsを 書かなくても使用可能 @_exported import Assets //

    import Assets がいらない File1.swit File2.swit Module A import ModuleA // Assets使用可能 File1.swit Module B