<p>Sebastian introduces the new co-host of the podcast, in a special episode recorded on location at droidcon New York! Joined by Russell Wolf, author of the multiplatform-settings library, we discuss the conference, different code sharing approaches for Kotlin Multiplatform, and how to build great multiplatform libraries.</p>
<ul>
<li>droidcon New York <ul>
<li><a href="https://www.droidcon.com/2024/10/17/when-sharing-isnt-caring-using-platform-specific-code-in-kotlin-multiplatform/" rel="ugc noopener noreferrer" target="_blank">When sharing isn’t caring: Using platform-specific code in Kotlin Multiplatform</a> (Russell’s talk) </li>
<li><a href="https://www.droidcon.com/2024/10/17/compose-multiplatform-on-ios-on-the-road-to-stable/" rel="ugc noopener noreferrer" target="_blank">Compose Multiplatform on iOS: On the Road to Stable</a> (Seb’s talk)  </li>
<li><a href="https://www.droidcon.com/2024/10/17/composing-an-api-the-right-way-3/" rel="ugc noopener noreferrer" target="_blank">Composing an API the *right* way</a> (Márton’s talk)  </li>
</ul>
</li>
<li>The deprecated <a href="https://google.github.io/accompanist/web/" rel="ugc noopener noreferrer" target="_blank">Accompanist WebView implementation</a> for Jetpack Compose  </li>
<li><a href="https://github.com/russhwolf/multiplatform-settings" rel="ugc noopener noreferrer" target="_blank">russhwolf/multiplatform-settings on GitHub</a>  </li>
<li>Kotlin Multiplatform database libraries  <ul>
<li><a href="https://developer.android.com/kotlin/multiplatform/room" rel="ugc noopener noreferrer" target="_blank">Room</a>  </li>
<li><a href="https://sqldelight.github.io/sqldelight/" rel="ugc noopener noreferrer" target="_blank">SQLDelight</a>  </li>
</ul>
</li>
<li>Dependency injection libraries  <ul>
<li><a href="https://github.com/InsertKoinIO/koin" rel="ugc noopener noreferrer" target="_blank">Koin</a>  </li>
<li><a href="https://github.com/evant/kotlin-inject" rel="ugc noopener noreferrer" target="_blank">Kotlin-inject</a>  </li>
</ul>
</li>
<li><a href="https://www.jetbrains.com/help/kotlin-multiplatform-dev/compose-viewmodel.html" rel="ugc noopener noreferrer" target="_blank">ViewModel</a> for Kotlin Multiplatform</li>
</ul>
<p>Hosts:</p>
<ul>
<li>Sebastian Aigner  <ul>
<li><a href="https://sebi.io/" rel="ugc noopener noreferrer" target="_blank">Website</a>  </li>
</ul>
</li>
<li>Márton Braun  <ul>
<li><a href="https://zsmb.co" rel="ugc noopener noreferrer" target="_blank">Website</a></li>
</ul>
</li>
</ul>
<p>Guest:</p>
<ul>
<li>Russell Wolf  <ul>
<li><a href="https://github.com/russhwolf" rel="ugc noopener noreferrer" target="_blank">GitHub</a>  </li>
<li><a href="https://twitter.com/RussHWolf" rel="ugc noopener noreferrer" target="_blank">Twitter</a></li>
</ul>
</li>
</ul>

<p>Timestamps
0:00 Intro at home
2:02 Intro at droidcon NYC
4:23 Russell’s talk topic
8:14 Code sharing approaches
12:28 Wrapping native APIs
16:18 Attempted segue
16:35 Designing reusable APIs
18:02 Actual segue
18:14 multiplatform-settings
20:23 Supported platforms
24:05 SharedPreferences challenges
26:20 Observable preferences
29:51 Secure storage
30:55 Windows again
31:36 Library code as reference
33:15 Testable library code
35:05 Initializing a KMP library
38:18 Database libraries
40:55 Dependency injection
44:40 Outro</p>

Talking Kotlin

Talking Kotlin

Platform Integrations in Kotlin Multiplatform with Russell Wolf

NOV 21, 202445 MIN
Talking Kotlin

Platform Integrations in Kotlin Multiplatform with Russell Wolf

NOV 21, 202445 MIN

Description

<p>Sebastian introduces the new co-host of the podcast, in a special episode recorded on location at droidcon New York! Joined by Russell Wolf, author of the multiplatform-settings library, we discuss the conference, different code sharing approaches for Kotlin Multiplatform, and how to build great multiplatform libraries.</p> <ul> <li>droidcon New York <ul> <li><a href="https://www.droidcon.com/2024/10/17/when-sharing-isnt-caring-using-platform-specific-code-in-kotlin-multiplatform/" rel="ugc noopener noreferrer" target="_blank">When sharing isn’t caring: Using platform-specific code in Kotlin Multiplatform</a> (Russell’s talk) </li> <li><a href="https://www.droidcon.com/2024/10/17/compose-multiplatform-on-ios-on-the-road-to-stable/" rel="ugc noopener noreferrer" target="_blank">Compose Multiplatform on iOS: On the Road to Stable</a> (Seb’s talk) </li> <li><a href="https://www.droidcon.com/2024/10/17/composing-an-api-the-right-way-3/" rel="ugc noopener noreferrer" target="_blank">Composing an API the *right* way</a> (Márton’s talk) </li> </ul> </li> <li>The deprecated <a href="https://google.github.io/accompanist/web/" rel="ugc noopener noreferrer" target="_blank">Accompanist WebView implementation</a> for Jetpack Compose </li> <li><a href="https://github.com/russhwolf/multiplatform-settings" rel="ugc noopener noreferrer" target="_blank">russhwolf/multiplatform-settings on GitHub</a> </li> <li>Kotlin Multiplatform database libraries <ul> <li><a href="https://developer.android.com/kotlin/multiplatform/room" rel="ugc noopener noreferrer" target="_blank">Room</a> </li> <li><a href="https://sqldelight.github.io/sqldelight/" rel="ugc noopener noreferrer" target="_blank">SQLDelight</a> </li> </ul> </li> <li>Dependency injection libraries <ul> <li><a href="https://github.com/InsertKoinIO/koin" rel="ugc noopener noreferrer" target="_blank">Koin</a> </li> <li><a href="https://github.com/evant/kotlin-inject" rel="ugc noopener noreferrer" target="_blank">Kotlin-inject</a> </li> </ul> </li> <li><a href="https://www.jetbrains.com/help/kotlin-multiplatform-dev/compose-viewmodel.html" rel="ugc noopener noreferrer" target="_blank">ViewModel</a> for Kotlin Multiplatform</li> </ul> <p>Hosts:</p> <ul> <li>Sebastian Aigner <ul> <li><a href="https://sebi.io/" rel="ugc noopener noreferrer" target="_blank">Website</a> </li> </ul> </li> <li>Márton Braun <ul> <li><a href="https://zsmb.co" rel="ugc noopener noreferrer" target="_blank">Website</a></li> </ul> </li> </ul> <p>Guest:</p> <ul> <li>Russell Wolf <ul> <li><a href="https://github.com/russhwolf" rel="ugc noopener noreferrer" target="_blank">GitHub</a> </li> <li><a href="https://twitter.com/RussHWolf" rel="ugc noopener noreferrer" target="_blank">Twitter</a></li> </ul> </li> </ul> <p>Timestamps 0:00 Intro at home 2:02 Intro at droidcon NYC 4:23 Russell’s talk topic 8:14 Code sharing approaches 12:28 Wrapping native APIs 16:18 Attempted segue 16:35 Designing reusable APIs 18:02 Actual segue 18:14 multiplatform-settings 20:23 Supported platforms 24:05 SharedPreferences challenges 26:20 Observable preferences 29:51 Secure storage 30:55 Windows again 31:36 Library code as reference 33:15 Testable library code 35:05 Initializing a KMP library 38:18 Database libraries 40:55 Dependency injection 44:40 Outro</p>