Kotlin
A concise multiplatform language developed by JetBrains
Compose Multiplatform 1.0 출시!
Kotlin의 선언형 UI 프레임워크인 JetBrains Compose Multiplatform 버전 1.0이 출시되어 프로덕션 사용이 준비되었습니다! 이 프레임워크의 신규 버전이 제공하는 주요 기능은 다음과 같습니다.
- 데스크톱에서 뛰어난 사용자 인터페이스를 지원하는 Kotlin 앱을 빠르고 효율적으로 개발할 수 있습니다.
- 웹에서 모든 브라우저 API와 완벽한 상호 운용성을 갖춘 Compose for Web의 안정적인 DOM API를 사용하여 프로덕션 수준의 동적 웹 환경을 구축할 수 있습니다. Material UI 위젯은 향후 릴리스에서 지원될 예정입니다.
- 전반적으로 다양한 플랫폼(Android 포함, Jetpack Compose by Google 호환성 사용) 간 전문 기술과 코드를 더 쉽게 공유할 수 있습니다.
하나씩 살펴보겠습니다.
데스크톱용 Kotlin UI
꽤 오랫동안 Kotlin 데스크톱 애플리케이션의 사용자 인터페이스를 개발하려면 기존 Java UI 프레임워크를 사용해야 했습니다. 데스크톱용 모던 UI 개발 스타일을 접목한 Kotlin 라이브러리가 없었기 때문입니다. JetBrains는 Compose Multiplatform을 선보여 변화를 이끌고자 합니다. 이 프레임워크가 Kotlin 앱 UI 개발 경험을 개선하는 방식을 알아보겠습니다.
사용자 인터페이스 개발을 위한 선언형 접근 방식
Compose Multiplatform은 선언형이므로 코드에 앱의 UI 구조가 반영되며, 모델에서 뷰로 데이터 복사 또는 UI 갱신 로직 개발 등의 작업을 고민할 필요가 없습니다. 프레임워크로 모두 처리되므로, UI 개발은 즐거운 경험입니다. 다음 예시의 경우 TextField
의 내용이 수정되면 추가 코딩 없이도 Text
라벨 내용이 업데이트됩니다.
특히 React 또는 Jetpack Compose by Google과 같은 선언형 UI 프레임워크를 사용해본 경우, Compose Multiplatform을 쉽게 시작할 수 있습니다. Compose Multiplatform은 이와 동일한 많은 기능을 지원하므로 부담 없이 편안하게 사용할 수 있습니다.
하드웨어 가속으로 우수한 런타임 성능
모던 사용자 인터페이스에서 성능이 중요합니다. 따라서 Compose Multiplatform 속도 개선을 위해 최선을 다하고 있습니다. Compose Multiplatform은 Skia를 사용합니다. Skia는 모던 브라우저를 포함하여 성능이 중요한 다수의 애플리케이션에서 사용되는 최적화된 그래픽 라이브러리입니다. 즉, Compose Multiplatform은 DirectX, Metal 및 OpenGL 등 데스크톱의 모든 주요 하드웨어 가속 엔진을 지원합니다. 하드웨어 가속이 지원되지 않는 환경에서는 Compose가 최적화된 소프트웨어 렌더러와 함께 제공됩니다.
미리보기 도구를 통해 반복 주기 단축
UI 개발에서 가장 긴 시간이 소요되는 작업 중 하나는 애플리케이션이 완벽하게 보이도록 다시 빌드하는 과정입니다. Compose Multiplatform IDEA 플러그인을 활용하면 이 과정이 간소화됩니다. 기본 제공 라이브 미리보기 기능을 통해 UI 구성 요소를 세밀하게 조정하고, 애플리케이션을 다시 빌드하거나 시작하지 않고도 여러 개의 반복을 생성할 수 있습니다. 이로써 개발 주기가 대폭 단축됩니다.
자동 애플리케이션 패키징으로 자신 있게 선보이는 데스크톱 앱
사용자에게 애플리케이션을 제공하려면 적절한 개발뿐 아니라 적절한 패키징도 필요합니다. Compose Multiplatform은 이에 대한 지원도 제공합니다. Gradle 플러그인은 MacOS용 서명 및 공증을 비롯하여 msi
, dmg
및 deb
형식으로 애플리케이션 패키징을 지원합니다.
Android 및 Java UI 프레임워크의 Jetpack Compose와 상호 운용성
Google에서 제작한 네이티브 UI 빌드용 Android 모던 툴킷인 Jetpack Compose는 모바일 개발자 사이에서 지속적으로 인기를 끌고 있습니다. Jetpack Compose를 사용해본 경험이 있다면 Compose Multiplatform은 쉽게 사용할 수 있습니다. 두 프레임워크가 API의 상당 부분을 공유하기 때문입니다.
사용자 인터페이스가 일반적인 Java UI 프레임워크로 빌드한 데스크톱 애플리케이션을 다루는 경우, Compose Multiplatform에서 사용하기 위해 코드를 완전히 처음부터 다시 작성할 필요가 없습니다. Compose Multiplatform은 상호 운용성이 매우 뛰어나므로 Compose로 작성된 UI 구성 요소를 기존 Java UI에 추가할 수 있습니다. Compose Multiplatform으로 새로운 앱을 빌드하는 경우에도 기존 Java 컨트롤을 추가할 수 있습니다.
Compose Multiplatform 마법사로 빠른 시작 및 실행
이제 Compose Multiplatform을 매우 빠르게 시작할 수 있습니다. IntelliJ IDEA 2021.1+에서 클릭 몇 번만으로 간단한 Compose Multiplatform 프로젝트 생성이 가능합니다.
또한 다양한 튜토리얼을 통해 Compose Multiplatform 데스크톱 대상을 알아볼 수 있습니다.
Compose for Web
Compose Multiplatform은 데스크톱 작업 외에도 DOM 작업을 위한 강력한 선언형 Kotlin/JS API를 제공합니다.
또한 다양한 DOM API, CSS-in-JS 기본 지원, SVG 지원, 타입 지정된 입력 등 모던 웹 프레임워크에 필요한 모든 기능을 제공합니다. Compose Multiplatform의 웹 대상은 Kotlin만으로 작성되었으며 Kotlin의 타입 시스템과 관용구를 최대한 활용합니다. 따라서 다른 Kotlin 대상에서 이미 사용된 동일한 개발 워크플로를 활용할 수 있습니다.
멀티플랫폼 지원
Compose Multiplatform을 사용하면 (직접 지원되는) 데스크톱 및 웹 플랫폼으로 대상이 한정되지 않습니다. Google에서 개발한 유명 UI 프레임워크인 Jetpack Compose를 사용해 Android를 대상으로 지정할 수도 있습니다. 두 프레임워크는 공통 API와 Core를 공유하므로, 완벽한 상호 운용성을 제공합니다. 즉, 공통 UI 및 상태 관리 코드를 다시 작성하지 않아도 됩니다. 한 번 작성한 후 필요할 때 여러 플랫폼에서 다시 사용할 수 있습니다.
기존 Android 애플리케이션을 데스크톱이나 웹으로 가져오는 작업도 Compose Multiplatform을 사용하면 매우 간편합니다. Kotlin 프로젝트 하나로 애플리케이션의 모든 대상을 관리할 수 있습니다.
Compose를 통해 여러 플랫폼을 대상으로 하는 앱 빌드를 빠르게 시작하려면 IntelliJ IDEA 2021.1+에서 Kotlin 프로젝트 마법사를 사용해 보세요.
당장 멀티플랫폼 애플리케이션을 개발할 필요가 없더라도, 플랫폼 한 곳에서 습득한 지식과 전문 기술이 다른 플랫폼에서 유용하게 쓰일 수 있습니다.
베타 이후 변경 사항
Compose Multiplatform 1.0 버전은 이 프레임워크를 프로덕션 애플리케이션에서 사용할 준비가 되었는지 확인하는 데 초점을 맞춘 버전입니다. 결과적으로 이번 릴리스에서 중요한 이슈와 버그가 수정되었으며, 품질과 안정성도 개선되었습니다.
실제 프로덕션 경험
Compose Multiplatform은 오늘 출시되었음에도 일부 프로덕션에서 이미 활용된 바 있습니다. 예를 들어, JetBrains는 2021년 초부터 Jetbrains Toolbox App(https://www.jetbrains.com/toolbox-app/)에 Compose Multiplatform을 적용했습니다. JetBrains IDE용 관리 애플리케이션인 Toolbox App은 매월 1,000,000명 이상의 활성 사용자를 보유하며, 4개월 전 C++ 및 Electron에서 Compose Multiplatform으로 완전히 마이그레이션되었습니다.
마무리
Kotlin 개발자는 이제 Compose Multiplatform이라는 강력한 프레임워크를 통해 데스크톱과 웹 애플리케이션 모두에 적합한 아름다운 UI를 생성할 수 있습니다.
지금 바로 Compose Multiplatform을 사용해 보세요! 공식 튜토리얼에서 가장 간편한 사용 방법을 확인할 수 있습니다. IntelliJ IDEA 2021.1+에서 기본으로 제공되는 Kotlin 프로젝트 마법사를 사용하여 첫 Compose Multiplatform 프로젝트를 생성하고 Kotlin으로 선언형 사용자 인터페이스 빌드를 시작하세요.
여러분의 마음에 드셨으면 좋겠습니다!
게시물 원문 작성자