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>