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

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

모듈 템플릿은 Android 및 iOS 플랫폼을 타겟팅하는 최소 구성으로 새 모듈 생성을 자동화합니다.

공유 KMP 모듈 설정

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

  1. File > New > New Module을 선택합니다.
  2. Templates 패널에서 Kotlin 멀티플랫폼 공유 모듈 템플릿을 선택합니다.
새 KMP 모듈 만들기
그림 1. 새 KMP 모듈 만들기

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

  • Module name: Gradle 모듈 이름과 iOS 프레임워크 이름을 정의합니다 (나중에 변경 가능).
  • 패키지 이름: 이 모듈의 파일 패키지 이름을 정의합니다.
    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. 빌드 단계를 펼치고 텍스트 필드에 다음 스크립트 코드를 입력합니다.
새 실행 스크립트 빌드 단계 추가
그림 5. 스크립트 빌드 단계 실행
  1. 스크립트 실행 단계를 소스 컴파일 단계 앞에 드래그합니다.

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

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

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

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

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

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

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

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

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

추가 리소스

KMP 개발을 처음 접하는 경우 공식 KMP 문서에서 자세한 가이드를 확인하세요. iOS 개발이 처음이라면 Swift 기본 문서를 참고하세요.