本人
iOS6年くらい
kotlinはほぼ初学(6年前くらいにUIちょろっと作ったことある)
困ったところ。
コードはある程度生成AIが作ってくれるのでそれを読むだけで理解できないとこはそんななかった。
どっちかというとグレイドル周りで苦戦した。
期間は10日くらい。
グレイドルのざっくり理解。
settings.gradle.kts
⇩
ここが大元
plugins {
id("com.android.library") version "8.3.2"
id("org.jetbrains.kotlin.multiplatform") version "2.1.21"
id("org.jetbrains.kotlin.native.cocoapods") version "2.1.21"
}
みたいにKMPを行う為の「最も元になる部分を管理する」ところ。
また、マルチモジュール化とかアプリの根底を触るときに触るところ。
tomlファイル
各ライブラリ(1st-3rdパーティのダウンロードやバージョンの管理)をエイリアス定義するとこ。
ルートのグレイドル
ルートのグレイドルからtomlのエイリアスを呼び出す。
(なおここではalias(libs.plugins.kotlinSerialization).apply(false))のように
定義だけしてバージョン管理はtomlファイルに任せるべき。(これを徹底しないと多分バージョン管理がグダる。apply(false)がバージョン管理しないよって意味らしい。)
プロジェクトのグレイドル
KMPはライブラリをビルドするプロジェクトなので、iOS,Android両OSにどんな形で成果物を渡すかを設定するところ!
↑
を理解するのに時間かかった。
やったこととしては
簡単なHTTP通信による
ポストとゲットのサンプルを作り
realmで内部データベースを持った。
アーキテクチャは
クリーンアーキテクチャ
データソース
(実際の通信部や内部データベースアクセス部)
⇩
リポジトリ
(複数のデーターソースのデーターを加工する役割。今回は土管)
⇩
ユースケース
(Xcode側から見えるとこ。データソースから取得したデータをマッパーなどでただの構造体にする役割)
みたいな感じ。
以下使用したツール
Kotor(通信部)
Realm-kotlin(内部データベース)
koin(DI)