목록Kotlin Multiplatform (6)
Groo
의존성 종류 1. Multiplatform dependencies - 여러 플랫폼을 지원하는 멀티 플랫폼 라이브러리 - 보통 여러 플랫폼에서 공통으로 사용하는 commonMain 모듈에 멀티 플랫폼 라이브러리를 추가해서 사용함 - Koin, Apollo, Okio 등이 존재함 2. Native Depdencies - 특정 플랫폼에 한정된 라이브러리 - 보통 각 플랫폼별 고유 api가 해당함 - 예를 들어 내부 스토리지 접근, OS 자체 기능 활용 등 이전 프로젝트에서 이어서 진행할게요. 이번에는 kotlinx-datetime 라이브러리를 사용해서 현재를 기준으로 내년까지 며칠이 남았는지를 보여주는 기능을 구현해 볼게요. kotlin { sourceSets { val commonMain by getting..
KMP 프로젝트를 생성하고 iOS 애플리케이션을 빌드했는데 아래처럼 오류가 발생했어요. 코드에는 문제가 없었고 시뮬레이터를 새로 설치해도 해결되지 않았어요. > Task :shared:linkDebugFrameworkIosX64 FAILED error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld invocation reported errors Please try to disable compiler caches and rerun the build. To disable compiler caches, add the following line to the gradle.properties file..
이번에는 플랫폼별로 UI를 다뤄볼게요. 안드로이드는 Jetpack Compose를 사용하고 iOS는 SwfitUI를 사용해요. 두 가지 모두 선언형 UI 프레임워크여서 서로가 비슷하다는 것을 많이 느끼실거에요. Android 우선 androidApp 모듈은 안드로이드 애플리케이션의 주체에요. 해당 모듈에서 MainActivity와 UI를 정의하고 shared 모듈에 접근하기도 하죠. MainActivity로 이동해서 greet 메서드를 호출하는 곳을 선택하고 코드 내부로 들어가보세요. 그리고 아래처럼 문자열 리스트를 반환 하도록 greet 메서드를 수정해보세요. fun greet(): List = buildList { add(if (Random.nextBoolean()) "Hi!" else "Hello!..
commonMain 모듈에는 각 플랫폼 모듈에서 공통으로 사용할 수 있는 코드가 포함되어 있어요. 하지만 해당 모듈은 각 플랫폼과 독립적으로 운영되도록 디자인 되어서 만약 여러분이 특정 플랫폼의 api를 해당 모듈에서 작성한다면 ide는 에러를 발생 시킬거에요. KMP 프로젝트를 생성하면 commonMain 모듈에 기본으로 Greeting.kt 파일이 추가되어 있을거에요. 내부 greet 함수에서 Java의 Random 클래스를 사용해보세요. 그러면 ide에서 해당 Random 클래스는 사용할 수 없다고 여러분께 말할거에요. commonMain 모듈에서는 순수 Kotlin으로만 코드를 작성할 수 있기 때문이죠. import java.util.Random fun greet(): String { val fi..