KMM 기본 세팅

jeonghwan, lee·2023년 8월 24일
0
post-thumbnail

네 이번에는 Kotlin Multiflatform Mobile(이하 KMM)을 이용한 샘플 프로젝트를 만들어볼겁니다.

Create Github repository

먼저 우린 모두 Github을 사용 중일테니 git repository부터 만들어보겠습니다.
이름은 kmm_sample로 만들었어요!

Android Studio를 실행하고 툴바메뉴에서
Android Studio > Setting > Plugins > 'Kotlin MultiFlatform을 검색해주세요!
해당 플러그인이 설치되어있어야지만 새로운 프로젝트를 만들 수 있어요.


Create KMM Project

이제 Android Studio를 키시고 우측 상단에
NewProject로 새로운 프로젝트를 만들어봅시다!!!

오 제일 하단에 Kotlin Multiflatform App이 있군요 !!

이제 프로젝트 명을 달아서 앱을 만듭니다.

흐음.. 이건 뭘까요..
Android project 명칭,
iOS Project 명칭,
그리고 KMM Moudle 명칭인것같군요

우린 샘플앱을 만들테니 기본 세팅대로 설정하고 Finish!!

새 프로젝트를 생성하는데 3분이 넘게 걸렸어요..
아마 android, ios project를 같이 만드니 그런것같네요..

어쩃든 잘 불려졌습니다.
아 꼭 좌측 상단이 Project인지, Android인지 확인하세요!!

오 Android프로젝트는 기본적으로 compose로 작성해야하는군요.

그럼 ios 쪽도 swiftUI로 되어있을려나..?
정답!! ios는 swiftUI로 작성 되어있습니다.

이걸로 KMM의 UI는 선언형 UI를 권장하는걸로 생각되네요.
물론 android, ios 둘 다 명령형 UI로 구현도 가능할듯합니다.

KMM의 기능은 UI 지원이아니라 비즈니스로직, 도메인데이터 지원 이니까요.


Run KMM 프로젝트!

자 그럼 이제 OS별로 실행을 한번 해 보도록 하죠!
먼저 Android 로 실행입니다!
불편하네요. 가운데정렬은 좀 해주지 --

이번에는 iOS 입니다.
먼저 저는 KMM이 잘 사용하려면 Android Studio에서 run을 할 수 있어야 할 것 같아요.
맞아요.
있습니다! 과연 이게 될것인가..? 한번 해보죠.

오 잘 실행 됩니다.
근데... 역시.. android studio에서는 ios UI는 개발하지 못할듯하네요..
당연한건가..? 폐쇄적인 에플...

Greeting Class?

Greeting().greet()를 호출하니
Android는 "Hello, Android 33!" 이라고 뜨고
iOS는 "Hello, iOS 16.4!" 라고 뜨네요 ??
아 ! Greeting은 공통모듈이군요 !
그럼 아마 Shared 모듈에 Greeting이 존재해야합니다!


Greeting 파헤치기

좋은 실마리를 찾았네요.
그럼 이제 우린 Greeting 클래스의 패턴을 학습하면 Custom class를 마구 만들어 낼 수 있겠습니다!
살펴보니 OS별로 다른 값을 주려면 인터페이스를 작성해야하군요.

Greeting interface

OS별로 처리 한다면 매우 번거롭네요.
불가피한경우를 제외한 데이터는 OS영향을 타지않도록 작업해야겠습니다.
너무 번거롭습니다.

Connect Github Repository by Androdi Studio

앗 그러고보니 샘플코드를 github에 연동하는걸 잊었네요.
자 그럼 깃을 연결하려고하기전에 오잉?
KMM에서 미리 gitigore파일을 만들어줬네요?
작성법을 찾아볼까했는데 이러면 바로 붙여도 되겠습니다!

많은 분들이 맥에서 gitKraken, fork, 소스트리 등 툴을 이용하거나
termianl을 사용하는것같은데 전 android studio에 git을 이용합니다.

알탭 할 필요가없어 편리해요. GOOD.

자 커밋했으니 이제 Push를 해야겠죠?
우린 시작할때 kmm_sample repository를 만들었습니다.
commit 했으니 Push를 하면 되는데.
이런... Push 하기 전 스크린샷을 못찍었네요 ㅡㅡ ;;;
아래 첫번째스크린샷에 push All up to Here를 클릭하시면되요;;;

자 이제 해당 화면서 define remote 클릭해서 아까 만들어둔 repository주소를 적어주시면 됩니다!

자 이제 커밋한 내용이 나오고 Push를 하면 ?!

Github Connection Success 😎

역시 잘올라가는군요.


End

오늘은 여기까지하고 다음번엔 데이터를 가져와서 Android, iOS에 데이터를 List에 뿌려볼게요.
KMM에 최대한 포커싱 되도록 Compose, SwiftUI에 대한 내용을 따로 정리하지않을거에요!
참고해주세요!

profile
Mobile Fullstack(?) dev를 꿈꿉니다.😑

0개의 댓글