KMP(Kotlin Muliplatform)로 Android 와 IOS를 모두 지원하는 앱을 만들자 (1)

akcineg·2025년 2월 12일
0

안드로이드 공부

목록 보기
10/12
post-thumbnail

Android 개발만 해왔는데, 갑자기 ios도 대응하는 앱 개발을 하게 되었다. 크로스 플랫폼인 flutter와 react native도 있었지만, 러닝 커브와 현 상황을 생각했을 때 코틀린 멀티플랫폼으로 개발하는 것이 적합하다는 생각이 들어 코틀린 멀티플랫폼으로 두 플랫폼에 대응하기로 결정하였다.

KMP(Kotlin Multiplatform)란?

Kotlin Multiplatform은 네이티브 프로그래밍의 이점을 유지하면서 다양한 플랫폼에 적합한 애플리케이션을 제작하고 여러 플랫폼에서 코드를 효율적으로 재사용할 수 있도록 해주는 기술입니다. 애플리케이션이 iOS, Android, macOS, Windows 및 Linux 등에서 실행됩니다.

정리하면 코틀린 멀티플랫폼을 통해 공통적으로 사용되는 코드를 재사용하여 여러 플랫폼에서 어플리케이션을 실행시킬 수 있다. 플랫폼에 종속적인 UI는 따로 구현하고, 비즈니스 로직은 공통적으로 구현하여 생산력을 높일 수 있다.

KMP를 사용하기 전에는 KMP가 믿을만 한 것인가? 라는 생각이 들었다. 아무래도 이런 생각을 가지는 개발자에게 신뢰감을 주기 위해서인지 KMP를 채택한 여러 유명한 회사를 소개해주었다. 넷플릭스, 포브스, 맥도날드를 포함한 여러 회사들이 KMP를 채택했다고 한다. 각 회사들이 아직도 사용하고 있는지는 모르겠지만 KMP 채택 소개 글도 업로드되어 있다.
https://www.jetbrains.com/help/kotlin-multiplatform-dev/case-studies.html

Compose Multiplatform

Android에서 기본적으로 지원하는 선언형 UI 툴킷인 Compose를 통해서 Android, IOS, 데스크탑의 UI를 구성할 수 있도록 한다. 따라서 Compose Multiplatform 프로젝트를 만들면 '거의' 모든 코드를 Kotlin으로 작성할 수 있다.

안드로이드는 원래 Compose로 UI를 구현하기 때문에 문제가 없지만, 아직 iOS는 베타 버전이기 때문에 제약사항이 꽤 존재하는 것으로 알고 있다.

KMP로 직접 쓸 앱을 만들자

회사에서 진행하는 프로젝트에서 ios까지 대응해야 해서 고민 끝에 Kotlin Multiplatform을 선택하게 되었지만, 아무래도 베타 버전인 Compose Multiplatform 까지 선택하기에는 분명 문제가 있을 것이라고 생각해서 ios UI는 필요 시 swift를 통해 구현하기로 결정하였다.

그래서 swiftUI와 KMP에 익숙해지고자 직접 만들고 싶은 앱을 만들어볼 것이다.

프로젝트 세팅

KMP 프로젝트를 생성하기 위해서는 Android Studio IDE에서 Settings -> Plugins 에 들어가 Kotlin Multiplatform 플러그인을 다운받으면 된다. IDE를 다시 열어 New Project를 클릭하면 Kotlin Multiplatform App 프로젝트를 선택하여 생성할 수 있다.

전부 기본 세팅으로 프로젝트를 생성하면 프로젝트 구조는 다음과 같다.

androidApp, iosApp, shared 세 가지 폴더가 프로젝트에 있다. android 플랫폼에 종속적인 구현은 androidApp에서, iOS 플랫폼에 종속적인 구현은 iosApp에서, 공통된 로직에 대한 구현은 shared에서 구현하면 된다.

마무리

프로젝트 세팅을 마치고, 구현에 대한 것은 다음 포스팅에 올릴 예정이다.

profile
Android Developer

0개의 댓글