KMP 배워본 소감입니다.
마스터 클래스라고 들었는데 결국 수박 겉핥기로 정해진 코드 따라서 해보는것 정도네요
중간에 플러그인 에러와 컴파일 문제등의 근본원인 해결은 못하고 어느정도 완성된 코드나 강의를 따라가 보면서 느낌만 배운것 같네요
초반 동작 원리를 이해했으니 그래도 나름의 성과는 있었다 생각합니다. 실생활(업무/취미.사이드 프로젝트)에 도입해보고 싶기도 하구요.
간단히 배운거 정리해 보자면 4가지 정도 있네요
1. kotlin 베이스라서 android 친화적입니다. 그래서 어찌보면 ios 쪽을 어떻게 지원할지가 관건인거죠 그외 다른 플랫폼들도요
그 과정을 중요한 UIKit CoreFoundation 그리고 SwiftUI 를 어떻게 풀어나가는지에 대해서 흥미 있게 보면서 진행했습니다.
모든 과정은 gradle 이 잘 커버했구요 관련 플러그인들도 열일 하셨고 그레이들 생태계를 더 잘 이해하고 싶다는 맘이 커졌습니다.
ios 쪽은 Cocoapods, Cartage,SPM 으로 의존성 해결 관리자 대격변이 아직도 한창이거든요
ios 쪽 gradle 태스크로 shared framework 로 최종적으로 빌드를 말아주는데 swift objc 바인딩은 jetBrains 사에서 제공된 래핑 레이어가 깔끔하게 노가다 잘 해주셨더라구요. kotlin 쪽에서 아주 편하게 iOS 쪽 API 를 사용할수 있는게 인상적이었습니다.
2.그외 유용한 tool/library들은 OSS로 extension 을 잘 말아 주시네요
물론 그에 따라서 plugin 이 안정적이지 않아서 IDE 가 먹통이 되는 경우도 종종 있었습니다.
pure 와 beta version 의 oss raw 한 느낌을 제대로 경험했네요
3. flutter 의 dart 처럼 외부 컴파일 툴체인을 준비하지 않아도 되는게 좋은 낮은 진입장벽이었고
kotlin 언어의 강력함은 확실히 매력적이네요
4. 다만 그레이들 내부 구조 이해가 부족한게 아직 저의 한계라 중간에 발생하는 에러 해결이 쉽지는 않았네요
미리미리 ktor, sqldelight, koin 등 라이브러리 지식이 좀 있었었더라면 하는 반성도 합니다.
여담으로 JetBrains 에서 시작해서 android 에서도 공식지원을 약속받아서 따로 만들던 IDE 도 중단하고 더 강력해질것 같아요
Apple 쪽 진영에서 얼마나 성과를 거두느냐가 파급력을 또 가를듯 합니다.
이전 Google I/O 24 에서는 거의 조명도 못받던 플러터는 멀티플랫폼 일선에서는 약간 약해진 느낌입니다.
그래도 어느정도 파이가 있으니 한동안은 유지가 될거라 플러터도 다시 한번 만져 보고 비교해 보려 합니다.