Skip to content

Kotlin Multiplatform 시작 가이드

시작하기

  1. Kotlin Multiplatform(KMP) 및 Compose Multiplatform(CMP)에 대해 알아봅니다. 이들이 무엇인지, 장점과 사용 사례를 확인하세요.
  2. 샘플 프로젝트에서 KMP를 직접 실행하여 프로젝트 구조가 어떻게 구성되어 있고 다양한 플랫폼에서 어떻게 동작하는지 확인해 보세요.

KMP 기본 사항 배우기

기본 사항은 다음과 같습니다.

  • KMP / CMP 프로젝트 구성 방식 이해하기. 다음 내용을 다룹니다:
    • 공유 모듈(shared module) 내의 공통 코드 및 플랫폼별 코드.
    • 대상 플랫폼(Targeted platform) 선언.
  • KMP 프로젝트에 종속성 추가하기.
    • 멀티플랫폼 및 플랫폼별 종속성 구성의 실제 예시는 샘플에서 확인할 수 있습니다.
    • 해당 샘플의 최종 상태에 도달하는 과정을 설명하는 튜토리얼이 문서에 제공되어 있습니다.
  • 이미 KMP에 익숙하다면, 일반적인 프로젝트를 위한 권장 프로젝트 구조 최신 내용을 확인하세요. 이 가이드는 Android Gradle plugin 9.0의 출시가 KMP 프로젝트 요구 사항에 미친 영향을 고려하며 다음 내용을 다룹니다:
    • 모듈 구조 (라이브러리로 사용되는 공유 코드 모듈과 독립적인 앱 모듈).
    • 새로운 앱 모듈 생성 및 AGP 8에서 사용하던 이전 구조로부터의 전환.
  • JetBrains 개발자 에드보킷(developer advocate)이 녹화한 프로젝트 구조에 관한 권장 영상.

코드 공유하기

KMP 프로젝트에서 코드를 공유하는 방법은 다양하며, 플랫폼별 특성이 있습니다.

  • 앱 모듈에서 공통 코드를 호출하는 기본적인 예시는 온보딩 튜토리얼에서 다룹니다:
  • 플랫폼별 API에 접근하는 방법:
    • 가능한 경우 멀티플랫폼 라이브러리를 사용하세요.
    • 적절한 멀티플랫폼 라이브러리가 없는 경우 expect/actual 메커니즘을 사용하세요.
  • Android Kotlin에서 공유 Kotlin 코드를 호출하는 것은 비교적 간단하지만, iOS 상호 운용성(interoperability)은 별도의 학습이 필요합니다:
    • 공유 코드를 iOS 앱과 통합하는 방법을 알아보세요 (이 문서에서 참조된 모든 샘플에는 iOS 통합 설정 예시가 포함되어 있습니다).

      CocoaPods는 일반적으로 Swift Package Manager로 대체되는 추세이며, 새 프로젝트에서 사용을 권장하지 않습니다.

    • Kotlin 코루틴을 iOS에서 작동시키는 방법이 포함된 샘플 및 튜토리얼을 확인하세요.
    • KMP iOS 앱에서 기존 SPM 패키지 사용에 관한 가이드를 읽어보세요.
    • Kotlin에서 Swift / ObjC 호출 및 그 반대에 대한 심층 설명을 읽어보세요.
    • 더 직관적인 Swift export 방식(현재 Alpha 단계)에 대해 알아보세요.
    • 일반적으로 상호 운용성이 적을수록 좋습니다. 따라서 더 매끄러운 경험을 위해 모든 플랫폼의 주요 UI 구축에는 Compose Multiplatform을 활용하는 것을 권장합니다.

생태계 살펴보기

멀티플랫폼 라이브러리에 대한 종합적인 카탈로그는 klibs.io에서 확인할 수 있습니다.

KMP 라이브러리 만들기

멀티플랫폼 라이브러리를 사용하여 코드를 공유하는 앱을 만들기로 했다면 다음 문서들을 확인하세요:

아티팩트 배포하기

학습 리소스 카탈로그

앞서 언급된 모든 리소스와 더불어 심층 가이드 및 서드파티 콘텐츠가 학습 리소스 페이지에 정리되어 있습니다.