Repolode
joreilly

joreilly/ClimateTraceKMP

Climate TRACEの国別排出量データをiOS、Android、デスクトップ、Webで表示するKotlin/Compose Multiplatformのサンプル。

スター
346
フォーク
23
未解決の Issue
8
最終コミット
4 日前

これは何?

ClimateTraceKMPは、climatetrace.orgの温室効果ガス排出量を国別に表示するKotlin Multiplatformのサンプルアプリです。ロジックのほぼすべては、データレイヤー、ビューモデル、Compose Multiplatform UIを含む共有の`composeApp`モジュールにあり、Androidアプリ、iOSアプリ、デスクトップターゲット、Web(Wasm)ターゲットから利用されます。iOSクライアントはSwiftUI上で動作し、国一覧画面はSwiftUIまたはComposeのどちらでも実装できます。国を選択すると、共有Composeで実装された排出量詳細画面に遷移します。同じデータを調べるためのKotlin Notebookも含まれています。

UIクライアントに加えて、このリポジトリではデータをプログラムから利用できる形で提供しています。`mcp-server`モジュールはKotlin MCP SDKを使って国別の排出量データをMCPツールとして公開するため、Claude Desktopなどのクライアントに接続できます。`agents`モジュールには、GoogleのAgent Development Kit for Kotlinで構築されたエージェントが含まれています。このエージェントはMCPクライアントとして動作し、Streamable HTTP経由で`mcp-server`に接続して、ツールとして排出量データを取得します。また、Koogで構築されたアプリ内のAgents画面では、LLMを通じてデータを照会できます。

利用ライブラリにはKtor、Koin、KStore、Voyager、KoalaPlotなどがあります。ビルドは各ターゲットのGradleタスクで実行し、AndroidとiOSのクライアントで共通のMaestro UIテストフローを使って、CI上でエミュレーターとシミュレーターを対象に実行します。

主な機能

  • 01Android、iOS、デスクトップ、Web(Wasm)クライアントで再利用できる、共有Kotlinデータレイヤー、ビューモデル、Compose Multiplatform UI。
  • 02SwiftUI上で動作するiOSアプリ。国一覧画面はSwiftUIまたはComposeのどちらでも実装可能。
  • 03Kotlin MCP SDKを基盤とし、Claude Desktopなどのクライアント向けに国別の排出量データをMCPツールとして公開する`mcp-server`モジュール。
  • 04Streamable HTTP経由でMCPクライアントとして動作するADKベースのエージェントと、LLMへの問い合わせに対応するKoog製のアプリ内Agents画面。
  • 05同じ排出量データを調べられるKotlin Notebook。
  • 06AndroidとiOSのクライアントで共通化され、CIで実行されるMaestro UIテストフロー。

ユースケース

  • モバイル、デスクトップ、Web間でデータ、ビューモデル、Compose UIを共有するKMPプロジェクトの構成を学ぶ。
  • MCPサーバー経由で気候変動による排出量データをLLMアシスタントやエージェントに渡す。
  • 単一のKotlinコードベースからマルチプラットフォームクライアントを試作する。
  • Notebook上で国別の排出量データをインタラクティブに調べる。

クイックスタート

  1. 1

    リポジトリをクローンして、プロジェクトフォルダーを開きます

  2. 2

    Gradleでデスクトップアプリを実行します

    ./gradlew :composeApp:run
  3. 3

    ブラウザーでWeb(Wasm)アプリを実行します

    ./gradlew :composeApp:wasmJsBrowserDevelopmentRun

使う前に知っておきたいこと

  • iOSクライアントのビルドと実行にはXcodeが必要です。
  • AIエージェント機能を使うにはGemini APIキーが必要です。

収録されている特集

トピック

よくある質問

ClimateTraceKMP とは?
Climate TRACEの国別排出量データをiOS、Android、デスクトップ、Webで表示するKotlin/Compose Multiplatformのサンプル。 ClimateTraceKMPは、climatetrace.orgの温室効果ガス排出量を国別に表示するKotlin Multiplatformのサンプルアプリです。ロジックのほぼすべては、データレイヤー、ビューモデル、Compose Multiplatform UIを含む共有の`composeApp`モジュールにあり、Androidアプリ、iOSアプリ、デスクトップターゲット、Web(Wasm)ターゲットから利用されます。iOSクライアントはSwiftUI上で動作し、国一覧画面はSwiftUIまたはComposeのどちらでも実装できます。国を選択すると、共有Composeで実装された排出量詳細画面に遷移します。同じデータを調べるためのKotlin Notebookも含まれています。
ClimateTraceKMP は無料で使えますか?ライセンスは?
ClimateTraceKMP は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
ClimateTraceKMP は今もメンテナンスされていますか?
活発にメンテナンス中。ClimateTraceKMP の最終コミットは 2026年11月2日 です。
ClimateTraceKMP は何に使えますか?
モバイル、デスクトップ、Web間でデータ、ビューモデル、Compose UIを共有するKMPプロジェクトの構成を学ぶ。 MCPサーバー経由で気候変動による排出量データをLLMアシスタントやエージェントに渡す。 単一のKotlinコードベースからマルチプラットフォームクライアントを試作する。 Notebook上で国別の排出量データをインタラクティブに調べる。
ClimateTraceKMP のインストール方法は?
リポジトリをクローンして、プロジェクトフォルダーを開きます Gradleでデスクトップアプリを実行します: ./gradlew :composeApp:run ブラウザーでWeb(Wasm)アプリを実行します: ./gradlew :composeApp:wasmJsBrowserDevelopmentRun
ClimateTraceKMP はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/joreilly/ClimateTraceKMP

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト