Slide 41
Slide 41 text
• expect and actual
• Using typealias
• Interfaces
Code sharing
interface ApplicationStorage {
fun putBoolean(key: String, value: Boolean)
}
src/commonMain/kotlin/ApplicationStorage.kt
internal class AndroidStorage(context: Context) : ApplicationStorage {
private val prefs = PreferenceManager
.getDefaultSharedPreferences(context)
override fun putBoolean(key: String, value: Boolean) {
prefs.edit().putBoolean(key, value).apply()
}
}
src/androidMain/kotlin/AndroidStorage.kt
internal class IosStorage : ApplicationStorage {
private val delegate: NSUserDefaults =
NSUserDefaults.standardUserDefaults()
override fun putBoolean(key: String, value: Boolean) {
delegate.setBool(value, key)
}
}
src/iosMain/kotlin/iOSStorage.kt