個人開発iOSアプリにKotlin Multiplatform Projectを採用してみて得られた知見 by asmz

iOSDC Japan 2020
レギュラートーク(20分)

個人開発iOSアプリにKotlin Multiplatform Projectを採用してみて得られた知見

_asmz asmz _asmz
3

Kotlin Multiplatform Project(以降、Kotlin/MPP)とは、Kotlinで書かれたコードをAndroid、iOS、サーバ、ブラウザなど様々なプラットフォームで動作させることができる仕組みです。

Kotlin/MPPは、一度にプロジェクト全体を共通化するのではなく、プロジェクトの一部分だけを共通化できるという特徴があります。例えば、UIなど各プラットフォーム固有の処理が多い部分はそれぞれネイティブで実装し、ビジネスロジックなどのようにプラットフォーム依存が少ない部分のコードのみ共通化する、といったことが可能です。

私は既に個人開発のiOSアプリをリリース済みでしたが、そのAndroid版を開発するにあたり、「API通信やデータモデルの定義は結局どちらもほとんど同じなんだよなぁ。」という気持ちを抱いていました。
そこでこの点について、上記特徴に挙げた「一部コードのみ共通化」によって、既存のiOSプロジェクトは生かしつつ解決できるのではないかと考え、個人開発でKotlin/MPPを採用し、実際にリリースまで行ってみました。

その経験からこのトークでは、既存iOSアプリのKotlin/MPP構成への移行、「API通信処理」「データモデル定義」といった一部コードのみの共通化手順、それらの対応によるメリット・デメリットや使ってみて分かった所感などをお話しできればと思っています。

予定している内容

  • Kotlin/MPPを採用するモチベーション
  • Kotlin/MPP環境構築
  • 既存iOSアプリのKotlin/MPP構成への移行
  • コード共通化手順
  • 開発中に発生した問題とその対処
  • 個人開発ではなく業務での採用判断

対象

Kotlin/MPPをまだ触ったことが無いiOSアプリ開発者