본문 바로가기

KMP(KMM)

Kotlin Multiplatform Mobile 프로젝트 생성

난 왜 KMP 를 선택했는가

내가 개발자로써 정체기에 진입했다는 느낌을 부쩍받는다.
실력이나 연차가 늘어서가 아니고, 가뜩이나 게으른 성격인데, 요즘 일거리도 없다..
들어와도 Web - app 제작을 요청하면서 Bridge 는 어떻게 쓰는지 모르는 웹개발자들과 함께 일하느라
말하는 능력만 늘어가는 느낌이다.
(절대 그들을 욕할 자격도, 생각도 없다. 요즘 현상이 그저 그럴뿐)

그래서 사업자도 있겠다 이참에 해보고싶은걸 하자!
라는 생각에 시작한 프로젝트는 생각보다 커다란 돌이 되어 굴러오는 중이었으니,
여러 불편한점이 크게 다가와 가져다 버렸던 [플러터] 대신
요즘 계속 눈에 밟히는 KMP 관련 자료를 잔뜩 찾던중 참을 수 없는 유혹에 빠져버렸다.

내가 중요하게 본 부분들을 기준으로 장단점을 구분해봤다.
( 정작 중요한 부분들이 없을 수 있는 개인적인 기준 )

플랫폼 \ 장단점 장점 단점
Flutter 한번에 UI개발 가능 네이티브 코드가져다 쓰는 난이도가 지옥
Native 각 플랫폼에 최적화된 코드 작성가능 api 한개 = (DTO, VM) x 2 플랫폼
KMP 각 플랫폼에 최적화된 코드 작성가능
한번에 UI개발 가능 ( 안쓸거지만 )
중복 코드 최소화 가능
아직 잘 모르겠지만, 충돌 얼마나 날지 벌써 기대됨

어쩌면 그동안 안쓴 내가 멍청이일지도 모르겠다.
Native로 두 플랫폼 모두 만드는 나로써는 너무 기쁘다.

사실 앱개발자로 일하면서 로직에서 막힌다는건 개풀뜯어먹는 소리고
가장 큰 문제는 항상 UI였다.
[그래서 지금도 로직이 제일 중요하다는 말에 동의하지만 하지않는다(?)]

어차피 통일해서 만들어도 결국 Device별로, 버전별로, 등등 문제 생길 거리는 잔뜩이고,
그거 잡겠다고 스파게티 만드느니, 그냥 깔끔하게 네이티브로 각각 만들겠다만,

요즘 API 대응할때 DTO 만드는게 너무 귀찮고 지루하다. -> 시간낭비다

view 만드는것도 귀찮아서 liveTemplate 만들어 쓰는 와중에 DTO 는 너무 소모적이라
짜증내던중 보인거라 한번 시도해보려고 한다.

결국 내게 사업 아이템이란
쓸때는 사업 아이템,
읽을때는 토이 프로젝트니까

먼저 잊지않게 키워드정리부터 해보겠다.

기억해야 할 키워드

  • kdoctor ( 플러터 doctor의 냄새가 나는 더러워보이는 명령어다 )
  • rbenv ( ruby 버전관리)
  • brew ( 사랑해 )
  • pod ( spm 이기고 돌아와줘 )

추가 키워드 (나도 이걸 왜적고있는지 모르겠다.)

  • ide
    • android studio
    • xcode
    • app code ( 서비스 다시해줘 )

문서 링크

먼저 모바일용 문서

https://kotlinlang.org/docs/multiplatform-mobile-getting-started.html

 

Get started with Kotlin Multiplatform for mobile | Kotlin

 

kotlinlang.org

 

프로젝트 생성 관련 

https://plugins.jetbrains.com/plugin/14936-kotlin-multiplatform-mobile?_ga=2.258527298.955421894.1693038025-1055675409.1692875944&_gl=1%2A1k96wpb%2A_ga%2AMTA1NTY3NTQwOS4xNjkyODc1OTQ0%2A_ga_9J976DJZ68%2AMTY5MzA1MDc3OC40LjEuMTY5MzA1MDc3OS41OS4wLjA.

 

Kotlin Multiplatform Mobile - IntelliJ IDEs Plugin | Marketplace

The Kotlin Multiplatform Mobile plugin helps you develop applications that work on both Android and iOS. With the Kotlin Multiplatform Mobile plugin for Android...

plugins.jetbrains.com

 

생성이 끝났다.

 

Swift UI(안씀) 갈아엎으러 가야해서 대충 intro는 끝내보겠다.
Compose UI(안씀) 도 갈아엎을거다.

언젠가 쓸지도 모르지만, 아직은 시기상조라는 내 판단이다

'KMP(KMM)' 카테고리의 다른 글

Kotlin Multiplatform Mobile (1) - SwiftUI 들어내기  (0) 2023.08.28