일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ㅋㅁ
- 디자인패턴 #
- 프로토타입 패턴
- factory method
- PrototypePattern
- 빌터패턴
- 디자인패턴
- 추상팩토리패턴
- Functional Programming
- F
- 싱글톤
- 함수형프로그래밍
- 코틀린
- designPattern
- Singleton
- El
- 추상 팩토리
- builderPattern
- 팩토리 메소드
- Kotlin
- a
- 옵저버 패턴
- Design Pattern
- Observer Pattern
- ㅓ
- Abstract Factory
- r
- Today
- Total
오늘도 더 나은 코드를 작성하였습니까?
코틀린 멀티 플랫폼 모바일(Kotlin multiPlatform) 본문
다중 플랫폼(Android, Ios, JS) 프로그래밍 지원은 Kotlin의 중요한 장점.
네이티브 프로그래밍의 유연성과 이점을 유지하면서 다른 플랫폼에 대해 동일한 코드를 작성하고 유지 관리하는 데 소요되는 시간을 줄임
- Andoroid / Ios
모바일 플랫폼 간에 코드를 공유하는 것은 주요 Kotlin 다중 플랫폼 사용 사례 중 하나입니다. Kotlin Multiplatform Mobile을 사용하면 플랫폼 간 모바일 애플리케이션을 구축하고 Android와 iOS 간에 비즈니스 로직, 연결성 등의 공통 코드를 공유할 수 있습니다.
- Full stack web service
코드 공유가 이점을 가져올 수 있는 또 다른 시나리오는 브라우저에서 실행되는 서버와 클라이언트 측 모두에서 논리를 재사용할 수 있는 연결된 응용 프로그램입니다.
- Multiplatform libraries
Kotlin Multiplatform은 라이브러리 작성에도 유용합니다.
JVM, JS 및 기본 플랫폼에 대한 공통 코드 및 해당 플랫폼별 구현을 사용하여 다중 플랫폼 라이브러리를 생성할 수 있습니다.
다중 플랫폼 라이브러리를 다른 플랫폼 간 프로젝트에서 종속성으로 사용할 수 있습니다.
- 모바일 및 웹 애플리케이션을 위한 공통 코드
Kotlin Multiplatform을 사용하는 또 다른 인기 있는 사례는 Android, iOS 및 웹 앱에서 동일한 코드를 공유하는 것입니다. 프론트엔드 개발자가 코딩하는 비즈니스 로직의 양을 줄이고 제품을 보다 효율적으로 구현하여 코딩 및 테스트 노력을 줄입니다
Kotlin 다중 플랫폼 작동 방식
Kotlin 다중 플랫폼 작동 방식
Common Kotlin
- 언어, 핵심 라이브러리 및 기본 도구가 포함.
- common Kotlin으로 작성된 코드는 모든 플랫폼의 모든 곳에서 작동
- common 코드는 HTTP(Ktor-client), 직렬화(.serialization.kotlinx) 및 코루틴 관리와 같은 일상적인 작업을 다루는 라이브러리 세트에 의존성을 가짐
platform version Kotlin
- 플랫폼과 상호 운용하려면 플랫폼별 버전의 Kotlin을 사용
- 플랫폼별 Kotlin 버전(Kotlin/JVM, Kotlin/JS, Kotlin/Native)에는 Kotlin extention, 플랫폼별 라이브러리 및 도구가 포함
- 플랫폼을 통해 플랫폼 네이티브 코드(JVM, JS 및 네이티브)에 액세스하고 모든 네이티브 기능을 활용.
공유 코드에서 플랫폼별 API에 액세스해야 하는 경우 예상 및 실제 선언의 Kotlin 메커니즘을 사용
Kotlin 다중 플랫폼 라이브러리를 사용하면 공통 및 플랫폼별 코드에서 로직을 재사용
Android Native Code
IOS Native Code
Shared Code
commonMain (Pure Kotlin , expect)
androidMain (Kotlin/Android, actual)
IosMain (Kotlin / Ios, actual)
commonMain / Platform.kt
expect fun getOsVersion(): String
expect fun httpClient(config: HttpClientConfig<*>.() -> Unit = {}): HttpClient
IosMain / Platform.kt
import platform.UIKit.UIDevice
actual fun getOsVersion() {
return UIDevice.currentDevice.systemName() + " " + UIDevice.currentDevice.systemVersion
}
androidMain / Platform.kt
actual fun getOsVersion() {
return "Android ${android.os.Build.VERSION.SDK_INT}"
}