@workingkills
Eugenio Marletti
Sharing
[Kotlin code across platforms]
is caring!
KotlinConf
Sharing [Kotlin code across platforms] is caring! Eugenio Marletti - - PowerPoint PPT Presentation
KotlinConf Sharing [Kotlin code across platforms] is caring! Eugenio Marletti @workingkills app app iOS Android frontend backend tools sharing
@workingkills
Eugenio Marletti
KotlinConf
@fbecart
Florent Bécart
(before 1.2)
(before 1.2)
(from 1.2)
ANDROID WebView iOS JavaScriptCore BACKEND JS legacy.js
legacy-test.js ANDROID WebView iOS JavaScriptCore BACKEND JS legacy.js shared-test.kt shared.kt
legacy-test.js ANDROID WebView iOS JavaScriptCore BACKEND JS legacy.js shared-test.kt shared.kt
legacy-test.js ANDROID WebView iOS JavaScriptCore BACKEND JS legacy.js shared-test.kt shared.kt
legacy-test.js ANDROID WebView iOS JavaScriptCore BACKEND JS legacy.js shared.kt shared-test.kt
legacy-test.js ANDROID WebView iOS JavaScriptCore BACKEND JS shared.kt shared-test.kt JVM
/** * A day number, offset from 01/01/2012 !" export type Day = number
/** * A day number, offset from 01/01/2012 !" typealias Day = Int
class Value { constructor(value: Double) { this.value = value } val value: Double
return this.value.toString() } companion object { fun add(v1: Value, v2: Value): Value { return Value(v1.value + v2.value) } fun isZero(valueWithVariance: Value): Boolean { return .0 !!% valueWithVariance.value } fun subtract(v1: Value?, v2: Value?): Value { var value = .0 if (v1 !' null !& v2 !' null) { value = v1.value - v2.value } return Value(value) } } } export class Value { constructor(value) { this.value = value } readonly value: number toString() { return String(this.value) } static add = (v1: Value, v2: Value): Value !$ { return new Value(v1.value + v2.value) } static isZero = (valueWithVariance: Value): boolean !$ { return 0 !!% valueWithVariance.value } static subtract = (v1: Value, v2: Value): Value !$ { let value = 0 if (v1 !& v2) { value = v1.value - v2.value } return new Value(value) } }
@workingkills
BIT.LY/SHARING-KOTLIN-IS-CARING