
2025.02.12
職員一人あたり52時間の残業削減に成功 kintone導入がもたらした富士吉田市の自治体DX“変革”ハウツー
MPPでSwift Packagesを使ってみました(全1記事)
リンクをコピー
記事をブックマーク
バレンティノマルコ氏(以下、バレンティノ):こんにちは。今日は、Kotlin Multiplatform Project(MPP)でのSwift Packagesの使い方を発表したいと思います。
私は、マルコバレンティノです。イリノイ大学アーバナ・シャンペーンでコンピューターサイエンスの大学院を卒業しました。2019年4月にチームラボ株式会社に入社し、最初の半年間はiOS開発をして、そのあとの1年間半は、Android開発をしました。
2020年の春からKotlin Multiplatformをプロジェクトに導入して、それ以来、このテクノロジーに取り組んでいます。
「Swift Package Manager」は、swift用の公式のライブラリ管理ツールです。Swiftのビルドシステムと統合されています。Package.swiftというマニフェストファイルはSwiftで書かれていて、依存関係を記述できます。
それでは、Kotlin Multiplatform側で、Swift Package Managerを使いやすくするための「Multiplatform Swift Package」というプラグインを紹介したいと思います。
Multiplatform Swift Packageは、サードパーティで作られたプラグインです。使い方はすごく簡単です。まず、sharedモジュールのgradleファイルのpluginブロックにプラグインとバージョンを定義します。
次は、同じgradleファイルのkotlinブロックに「multiplatformSwiftPackage」のブロックを作ります。今回の例は、簡単なオプションだけを使っています。いろいろなオプションを詳しく見たい場合は、下に書いているリンクにドキュメンテーションがあるので、こちらをご覧ください。
コマンドラインでcreateSwiftPackageのgradleタスクを実行したら、右のような「SwiftPackage」の成果物が作られます。ARM64とx86_64の両方が作られるので、端末でもエミュレータでも使えます。ついでに、Package.swiftも作られるので、そのまま編集なく導入できます。
次にローカルとリモートへの導入の仕方を説明したいと思います。まずローカルの導入を見ていきましょう。
Swift Packageのフォルダーをそのまま「Xcode」のプロジェクトにドラッグ&ドロップします。そうすると、Swift Packageはこんなふうになります。
Swift Package入れたら、Linkingをしなければなりません。Xcodeプロジェクトを開いて、TARGETSのところのアプリケーションを選択して、Build Phasesのタグを選択します。Link Binary With Librariesを開きます。
プラスボタンを押すとこういうウィンドウが出ます。sharedのフレームワークを選択してOKを押します。これでローカルのSwift Packageが使えるようになります。
次はリモートへの導入の仕方を説明したいと思います。今回は「GitHub」を使っています。
まず、新しい成果物のリポジトリを作ります。そして、SwiftPackageのフォルダーの中に、gitをイニシャライズします。
下に貼っている例のリポジトリを、0.0.1のブランチにプッシュすると、GitHub上ではこんなふうに表示されます。
リポジトリが用意できたら、Xcodeプロジェクトを開いて、今回はプロジェクトのところのSwift Packagesのタブを選択します。プラスボタンを押したら、またこういうウィンドウが出ます。
さっき作ったGitHubの成果物のURLを貼って、Nextを押します。次に、バージョンの設定をします。先ほど0.0.1のブランチにプッシュしたので、それを入力します。最後にFinishを押します。
これで、GitHub上にSwift Packageの公開と導入ができました。ブランチを書いて、Swift Packageはこういうかたちです。もう1回ビルドしたら、同じものが出ます。
最後に、MPPでSwift Packagesを使った感想を話したいと思います。まず、Swift Package Managerは、ファーストパーティのソリューションなので、Xcode側のセットアップは特にありませんでした。
「CocoaPods」はRubyで書かれているので、RubyやBundlerのセットアップが必要です。なので、Swift Package Managerのほうがセットアップが簡単にできます。
MPP側のセットアップも簡単でした。プラグインを入れるだけで使えるようになりました。また、ローカルとリモート導入の両方ができました。CocoaPodsのプラグインはローカル向けの導入で、リモートで公開するには自分でpodspecを書く必要があります。なので、こういう面ではSwift Packagesも簡単に使えました。
ただし、Multiplatform Swift Packageは、サードパーティのプラグインなので、MPPやXcodeが変わると、アップデートを待たなければいけない可能性はあります。
また、試した限り、ローカル導入とリモート導入は、同じiOSプロジェクトにはできませんでした。切り替えはできますが、手間が少しかかります。
最後に、利点と欠点ありますが、MPP側でSwift Packageを使うことをお勧めします。
発表は以上です。ご清聴ありがとうございます。
2025.02.13
“最近の新人は報連相をしない”という、管理職の他責思考 部下に対する「NG指示」から見る、認識のズレを防ぐコツ
2025.02.06
すかいらーく創業者が、社長を辞めて75歳で再起業したわけ “あえて長居させるコーヒー店”の経営に込めるこだわり
2025.02.13
AIを使いこなせない人が直面する本当の課題 元マッキンゼー・赤羽雄二氏が“英語の情報”を追い続ける理由
2025.02.12
マネージャーは「プレイング3割」が適切 チームの業績を上げるためのマネジメントと業務の比率
2025.02.12
何度言っても変わらない人への指示のポイント 相手が主体的に動き出す“お願い”の仕方
2025.02.13
「みんなで決めたから」を言い訳にして仲良しクラブで終わる組織 インパクトも多様性も両立させるソース原理
2025.01.07
1月から始めたい「日記」を書く習慣 ビジネスパーソンにおすすめな3つの理由
2025.02.10
32歳で「すかいらーく」を創業、75歳で「高倉町珈琲」で再起業 「失敗したからすかいらーくができた」横川竟氏流の経営哲学
2025.02.14
報連相ができない部下に対するコミュニケーションの取り方 「部下が悪い」で終わらせない、管理職のスキル向上のポイント
2025.02.10
A4用紙を持ち歩いて殴り書きでアウトプット コクヨのワークスタイルコンサルタントが語る、2種類のメモ術
着想から2か月でローンチ!爆速で新規事業を立ち上げる方法
2025.01.21 - 2025.01.21
新人の報連相スキルはマネージメントで引きあげろ!~管理職の「他責思考」を排除~
2025.01.29 - 2025.01.29
【手放すTALK LIVE#45】人と組織のポテンシャルが継承されるソース原理 ~人と組織のポテンシャルが花開く「ソース原理」とは~
2024.12.09 - 2024.12.09
『これで採用はうまくいく』著者が語る、今こそ採用担当に届けたい「口説く」力のすべて
2024.11.29 - 2024.11.29
【著者来館】『成果を上げるプレイングマネジャーは「これ」をやらない』出版記念イベント!
2025.01.10 - 2025.01.10