Repolode
joreilly

joreilly/ClimateTraceKMP

iOS, Android, 데스크톱, 웹에서 Climate TRACE 국가별 배출량 데이터를 보여 주는 Kotlin/Compose Multiplatform 샘플입니다.

스타
346
포크
23
열린 이슈
8
마지막 커밋
5일 전

어떤 프로젝트인가요?

ClimateTraceKMP는 climatetrace.org의 국가별 온실가스 배출량 데이터를 표시하는 Kotlin Multiplatform 샘플 애플리케이션입니다. 데이터 레이어, 뷰 모델, Compose Multiplatform UI 등 로직 대부분은 공유 `composeApp` 모듈에 있으며, Android 앱과 iOS 앱, 데스크톱 타깃, 웹(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, 데스크톱, 웹(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 테스트 흐름.

활용 사례

  • KMP 프로젝트에서 모바일, 데스크톱, 웹 간에 데이터와 뷰 모델, Compose UI를 공유하는 방법을 살펴보기.
  • MCP 서버를 통해 기후 배출량 데이터를 LLM 어시스턴트나 에이전트에 전달하기.
  • 단일 Kotlin 코드베이스로 멀티플랫폼 클라이언트 프로토타이핑하기.
  • 노트북에서 국가별 배출량 데이터를 대화형으로 탐색하기.

빠른 시작

  1. 1

    저장소를 클론하고 프로젝트 폴더를 엽니다

  2. 2

    Gradle로 데스크톱 앱을 실행합니다

    ./gradlew :composeApp:run
  3. 3

    브라우저에서 웹(Wasm) 앱을 실행합니다

    ./gradlew :composeApp:wasmJsBrowserDevelopmentRun

사용 전 알아둘 점

  • iOS 클라이언트를 빌드하고 실행하려면 Xcode가 필요합니다.
  • AI 에이전트 기능을 사용하려면 Gemini API 키가 필요합니다.

포함된 컬렉션

토픽

자주 묻는 질문

ClimateTraceKMP은(는) 무엇인가요?
iOS, Android, 데스크톱, 웹에서 Climate TRACE 국가별 배출량 데이터를 보여 주는 Kotlin/Compose Multiplatform 샘플입니다. ClimateTraceKMP는 climatetrace.org의 국가별 온실가스 배출량 데이터를 표시하는 Kotlin Multiplatform 샘플 애플리케이션입니다. 데이터 레이어, 뷰 모델, Compose Multiplatform UI 등 로직 대부분은 공유 `composeApp` 모듈에 있으며, Android 앱과 iOS 앱, 데스크톱 타깃, 웹(Wasm) 타깃에서 이를 사용합니다. iOS 클라이언트는 SwiftUI에서 실행되며, 국가 목록 화면을 SwiftUI나 Compose 중 하나로 구현할 수 있습니다. 국가를 선택하면 공유 Compose 배출량 상세 화면으로 이동합니다. 같은 데이터를 살펴볼 수 있는 Kotlin Notebook도 포함되어 있습니다.
ClimateTraceKMP은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
ClimateTraceKMP은(는) Apache-2.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
ClimateTraceKMP은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. ClimateTraceKMP의 마지막 커밋은 2026년 11월 2일입니다.
ClimateTraceKMP은(는) 어디에 사용할 수 있나요?
KMP 프로젝트에서 모바일, 데스크톱, 웹 간에 데이터와 뷰 모델, Compose UI를 공유하는 방법을 살펴보기. MCP 서버를 통해 기후 배출량 데이터를 LLM 어시스턴트나 에이전트에 전달하기. 단일 Kotlin 코드베이스로 멀티플랫폼 클라이언트 프로토타이핑하기. 노트북에서 국가별 배출량 데이터를 대화형으로 탐색하기.
ClimateTraceKMP는 어떻게 설치하나요?
저장소를 클론하고 프로젝트 폴더를 엽니다 Gradle로 데스크톱 앱을 실행합니다: ./gradlew :composeApp:run 브라우저에서 웹(Wasm) 앱을 실행합니다: ./gradlew :composeApp:wasmJsBrowserDevelopmentRun
ClimateTraceKMP은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/joreilly/ClimateTraceKMP

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트