Closed bmc08gt closed 11 months ago
Was able to invert App and Platform to get this to work.
commonMain
interface PlatformComponent {
fun provideSettings(): SettingsProvider
}
androidMain
@AppScope
@Component
abstract class ApplicationComponent(
@get:Provides val context: Context
): PlatformComponent {
@Provides fun AndroidSettingsProvider.bind(): SettingsProvider = this
}
iosMain
@AppScope
@Component
abstract class ApplicationComponent: PlatformComponent {
@Provides
fun IOSSettingsProvider.bind(): SettingsProvider = this
companion object {
fun create() = ApplicationComponent::class.create()
}
}
👍 good tip, at some point it would be good to collect specific multi-platform guidance.
I think the original issue is because the processor is unable to 'see' the platform-specific bindings. Would have to dig into it more to see exactly why.
I hav an interface for creating a
SettingsProvider
on each platform defined as:with the iOS and Android looking something to this effect:
It is being provided in a similar fashion to the greeter example, using a component graph of:
which is being created in
ContentView.swift
I seem to be unable to provide the
SettingsProvider
via:Is there a piece I am missing or is this a bug? Everything is being done in a single
shared/
source dir