KMPの始め方1

2024/04/27に公開

背景

KMPのアプリ開発に取り組みたいと考えたのですが、実際に作ってみないと理解が進まないので、簡単なアプリを作成してみます。

作るもの

  • AppBar

検索窓、ベルアイコンを持つ一般的なAppBar。

  • Bottom Navigation

・アイコンとラベルを持つメニュー。
・タップしたらハプティックフィードバック。
・選んだメニューをハイライト。

  • Bottom Sheet

・一般的なBottomSheet。

  • WebView

・Pull To Refreshを制御できる?
・UserAgentはカスタマイズできる?
・JavaScriptInterfaceは受け取れる?

  • AppLinks

特定のURLパターンで開いて、アプリ起動する。

  • API通信

適当なAPI引いてアプリ表示まで。

  • DataBase

起動日、氏名を表示のみ保存するようなDB。

プロジェクト作成

brew install kdoctor

実行したらオールグリーン。Flutterみたいに環境構築が分かりやすい。

パッケージ構成

重要なパッケージ構成。どこに何のファイルを配置するべきなのか。

  • composeApp
    AndroidアプリにビルドされるKotlinモジュールを持つフォルダ。sharedモジュールをAndroidライブラリとして利用する。

・androidMain:Androidコードを書く。主にJetpack Compose想定。
・composeMain:Compose Multiplatformを使う場合に使用される。

  • iosApp
    iOSアプリにビルドされるXCodeプロジェクトを持つフォルダ。sharedモジュールをCocoaPods dependencyとして利用する。

・iosApp:iOSコードを書く。主にSwift UI想定。

  • shared
    Android, iOSの両方で共通なKotlinモジュールを持つフォルダ。Gradleによって共通化のシステムのビルドが行われる。

・composeMain:Android / iOS共通のコードを書く。
・androidMain:Android特有のコードを書く。
・iosApp:iOS特有のコードを書く。

composeMainにInterfaceを定義し、各OSで実装コードを書く。
composeMainに共通のロジックコードを書く。

JetBrains KMP doc "Examine the project structure"より

まとめ

プロジェクトを作成して、アプリ起動まで行いました。

アプリの修正も、次回以降の記事で提供します!

GitHubで編集を提案

Discussion