zt
07/04/2024, 6:05 PMBenoit Billington
07/04/2024, 8:23 PMPlatform.kt
interface Platform {
val name: String
}
expect fun getPlatform(): Platform
Platform.ios.kt
class IOSPlatform: Platform {
override val name: String = "My app name; iOS; ${UIDevice.currentDevice.systemName()}; ${UIDevice.currentDevice.systemVersion}"
}
actual fun getPlatform(): Platform = IOSPlatform()
Platform.jvm.kt
class JVMPlatform: Platform {
override val name: String = "My app name; Desktop; Java ${System.getProperty("java.version")}; ${System.getProperty("os.name")}"
}
actual fun getPlatform(): Platform = JVMPlatform()
Platform.android.kt
class AndroidPlatform : Platform {
private val manufacturer = Build.MANUFACTURER
private val model = Build.MODEL
private val versionApi = Build.VERSION.SDK_INT
private val versionRelease = Build.VERSION.RELEASE
override val name: String = "My app name; Android; $versionRelease ($versionApi); $manufacturer - $model"
}
actual fun getPlatform(): Platform = AndroidPlatform()
Platform.wasm.kt
class WasmPlatform: Platform {
override val name: String = "Web with Kotlin/Wasm" // TODO browser details
}
actual fun getPlatform(): Platform = WasmPlatform()
zt
07/04/2024, 8:24 PMBenoit Billington
07/04/2024, 8:26 PM