기존 프로젝트에 Kotlin 멀티플랫폼 추가

Android 프로젝트 내에서 Kotlin 멀티플랫폼 (KMP) 모듈을 만들려면 Android 스튜디오 Meerkat 및 Android Gradle 플러그인 8.8.0 이상에서 사용할 수 있는 Kotlin 멀티플랫폼 공유 모듈 템플릿을 사용하세요.

모듈 템플릿은 Android 및 iOS 플랫폼을 타겟팅하는 최소 구성으로 새 모듈 생성을 자동화합니다. KMP는 데스크톱 및 웹과 같은 다른 타겟도 지원하며, 이는 나중에 모듈에 추가할 수 있습니다. 전체 목록은 지원되는 플랫폼의 안정성을 참고하세요. 타겟을 선언하려면 멀티플랫폼 Gradle DSL 참조의 타겟을 참고하세요.

공유 KMP 모듈 설정

공유 KMP 모듈을 만들려면 다음 단계를 따르세요.

  1. File > New > New Module을 선택합니다.
  2. Templates 패널에서 Kotlin Multiplatform Shared Module 템플릿을 선택합니다.
새 KMP 모듈 만들기
그림 1. 새 KMP 모듈 만들기

템플릿의 필드는 다음과 같습니다.

  • Module name: Gradle 모듈 이름과 iOS 프레임워크 이름을 정의합니다 (나중에 변경할 수 있음).
  • Package name: 이 모듈에 있는 파일의 패키지 이름을 정의합니다.
    1. Finish를 클릭하고 Gradle이 프로젝트와 동기화되도록 허용합니다. 새로 만든 모듈 파일을 소스 제어에 추가하라는 메시지가 표시될 수도 있습니다.

완료되면 Android 스튜디오 프로젝트 뷰에 각 플랫폼의 소스 세트와 함께 새 공유 모듈이 표시됩니다.

새로 공유된 모듈을 보여주는 프로젝트 뷰
그림 2. 새로 공유된 모듈을 보여주는 프로젝트 뷰

모듈 마법사는 새로 만든 모듈을 기존 모듈에 종속 항목으로 추가하지 않습니다. 다음 단계로, 다른 Android 종속 항목과 마찬가지로 공유 모듈을 기존 Gradle 모듈 중 하나에 연결해야 합니다.

dependencies {
    ...
    implementation(project(":shared"))
}

사용 설정하면 평소처럼 코드에 액세스할 수 있습니다. Android 앱에서는 androidMain 또는 commonMain에서 사용할 수 있는 코드에 액세스할 수 있습니다.

Kotlin 멀티플랫폼 프로젝트 구조에 관한 자세한 내용은 Kotlin 멀티플랫폼 프로젝트 구조의 기본사항을 참고하세요.

iOS 앱에 공유 모듈 설정

Swift는 Kotlin 모듈을 직접 사용할 수 없으며 컴파일된 바이너리 프레임워크를 생성해야 합니다.

Android 스튜디오의 새 모듈 템플릿은 각 iOS 아키텍처의 프레임워크를 생성하도록 공유 모듈을 구성합니다. 공유 모듈의 build.gradle.kts 파일에서 다음 코드를 찾을 수 있습니다.

val xcfName = "sharedKit"

iosX64 {
  binaries.framework {
    baseName = xcfName
  }
}

iosArm64 {
  binaries.framework {
    baseName = xcfName
  }
}

iosSimulatorArm64 {
  binaries.framework {
    baseName = xcfName
  }
}

다른 아키텍처 유형을 정의하는 방법에 대한 자세한 내용은 계층적 프로젝트 구조를 참조하세요.

iOS 프로젝트에서 공유 코드에 액세스할 수 있도록 하려면 Swift 소스를 컴파일하기 전에 Kotlin 프레임워크를 생성하는 스크립트 단계를 추가합니다.

  1. Android 스튜디오에서 파일을 마우스 오른쪽 버튼으로 클릭하고 Open In 및 Open in Associated Application을 선택합니다. 그러면 Xcode에서 iOS 앱이 열립니다.
연결된 애플리케이션에서 열기
그림 3. 연결된 애플리케이션에서 열기
  1. 프로젝트 탐색기에서 프로젝트 이름을 더블클릭하여 프로젝트 설정을 엽니다.
Xcode 프로젝트 설정 대화상자
그림 4. Xcode 프로젝트 설정 대화상자
  1. 기본 Run Script 이름을 Compile Kotlin Framework로 변경하여 이 단계에서 실행하는 작업을 더 잘 식별합니다. Run Script 제목을 더블클릭하여 수정합니다.
  2. 빌드 단계를 펼치고 Shell 텍스트 필드에 다음 스크립트 코드를 입력합니다.
새 실행 스크립트 빌드 단계 추가
그림 5. 스크립트 실행 빌드 단계
  1. Compile Sources 단계 앞에 Run Script 단계를 드래그합니다.

    소스 컴파일 전에 스크립트 빌드 단계 실행
    그림 6. 소스 컴파일 전에 스크립트 빌드 단계 실행

  2. ⌘B를 클릭하거나 Product(제품) 메뉴로 이동하고 Build(빌드)를 선택하여 Xcode에서 프로젝트를 빌드합니다.

빌드가 성공하면 다음 아이콘이 표시됩니다.

Xcode에 표시된 빌드 성공
그림 7. 빌드 성공

iOS 앱에서 공유 코드에 액세스

iOS 앱이 공유 모듈의 코드에 액세스할 수 있는지 확인하려면 다음을 실행합니다.

  1. iOS 프로젝트에서 다음 위치에 있는 ContentView.swift 파일을 엽니다. Sources/View/ContentView.swift
  2. 파일 상단에 sharedKit 가져오기를 추가합니다.
  3. 표시된 문자열에 Platform_iosKt.platform() 정보를 포함하도록 다음과 같이 텍스트 뷰를 수정합니다.

이 업데이트는 앱이 공유 모듈에서 platform() 함수를 호출할 수 있는지 확인합니다. 이 함수는 iOS 플랫폼에서 실행할 때 'iOS'를 반환해야 합니다.

iOS 앱을 실행하는 Xcode 시뮬레이터
그림 8. iOS 앱을 실행하는 Xcode 시뮬레이터

추가 리소스