# Multiplatform Settings version 0.7 is out!

DevFeed: [Multiplatform Settings version 0.7 is out!](<https://devfeed.tech/articles/multiplatform-settings-version-0-7-is-out-25001.md>)

Original publisher: [Read original article](<https://dev.to/russhwolf/multiplatform-settings-version-0-7-is-out-2l0>)

Author: Russell Wolf

Published: 2020-12-27T00:37:48Z

Content type: release

Language: en

Sources: [DEV Community 👩💻👨💻: Russell Wolf](<https://devfeed.tech/sources/dev-community-russell-wolf.md>)

Topics: [multiplatform](<https://devfeed.tech/topics/multiplatform.md>), [Coroutines](<https://devfeed.tech/topics/coroutines.md>), [releases](<https://devfeed.tech/topics/releases.md>), [Android](<https://devfeed.tech/topics/android.md>), [Jetpack](<https://devfeed.tech/topics/jetpack.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [coding](<https://devfeed.tech/tags/coding.md>), [community](<https://devfeed.tech/tags/community.md>), [coroutines](<https://devfeed.tech/tags/coroutines.md>), [database](<https://devfeed.tech/tags/database.md>), [development](<https://devfeed.tech/tags/development.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [inclusive](<https://devfeed.tech/tags/inclusive.md>), [jetpack](<https://devfeed.tech/tags/jetpack.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlinmultiplatform](<https://devfeed.tech/tags/kotlinmultiplatform.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>), [news](<https://devfeed.tech/tags/news.md>), [release](<https://devfeed.tech/tags/release.md>), [serialization](<https://devfeed.tech/tags/serialization.md>), [software](<https://devfeed.tech/tags/software.md>)

## AI overview

The article announces Multiplatform Settings version 0.7. It describes kotlinx.serialization integration for storing serializable values, Flow extensions, and coroutine-based interfaces intended to work with suspend-based key-value storage such as Jetpack DataStore.

## Source excerpt

Today I've released version 0.7 of Multiplatform Settings! There's a lot of new features in this one, including integrations with some of the kotlinx libraries which have been incubating in PRs for a long time, so I'm excited to hear what people think. TL;DR links Release Notes Maven Central Read on for more details on what's new. Serialization I've had the idea in my head for a while that I'd like to generalize the existing delegate APIs to enable storing non-primitive data. Thanks to some suggestions from Eugenio Marletti and Leonid Startsev I came to realize how that could be done using kotlinx.serialization, by using its custom format APIs. There's been a PR open for a while which I iterated on as the serialization library adjusted those APIs and approached it's first stable release. Now that the library has reached 1.0, even if most of the encoder/decoder APIs are still experimental, it feels like the right time to release the integration with Multiplatform Settings. With this, if you have a serializable class like @Serializable class User(val nickname: String?) you can save an instance to Settings by calling settings.encodeValue(User.serializer(), "user", user) and retrieve it with val user: User = settings.decodeValue( User.serializer(), "user", defaultValue ) val nullableUser: User? = settings.decodeValueOrNull( User.serializer(), "user" ) or you could do both via a delegate api var user by settings.serializedValue(User.serializer(), "user") Of course, it's no substitute for a structured database like sqlite if you need atomicity for more complex data, but for simple use-cases I hope people find it helpful. I also think it's also a neat demonstration of some less well-known parts of kotlinx.serialization, so I hope it can inspire other interesting custom formats as well. Coroutines Similar to serialization, there's been a PR up for a while with Flow extensions on ObservableSettings. That's finally merged in 0.7, with two different artifacts depending on whet