For all native targets, there are WorkRunner
implementations backed by Kotlin's
Worker APIs.
// Create a WorkRunner backed by a new Worker instance
val workRunner = WorkRunners.nativeWorker()
// Optional: Provide details for the new Worker instance
val workRunner = WorkRunners.nativeWorker(
name = "Worker-1",
errorReporting = true,
)
// Alternatively, use an existing Worker Instance
val workRunner = WorkRunners.nativeWorker(myWorkerInstance)
For Apple targets, the DispatchQueueWorkRunner
backed by dispatch_queue
is available.
val globalWorkRunner = DispatchQueueWorkRunner.global()
val mainWorkRunner = DispatchQueueWorkRunner.main()
val customWorkRuner = WorkRunners.fromDispatchQueue(myDispatchQueue)
Since Kotlin 1.7.20 enabled the new memory manager by default, Mobius.kt has been updated to support it. The last Mobius.kt version supporting the old memory manager is v1.0.0-rc01.