Well, ViewRenderer is supposed to update the UI, so it should be running on the UI thread. This is valid for Android Views, Swing, UIKit, etc.
Arkadii Ivanov
10/29/2024, 6:10 PM
Overall, all MVIKotlin components are running on the UI thread by design.
There are two primary reasons for that:
1. To prevent difficult to debug race conditions.
2. To allow the UI state changes to reach the UI synchronously on the same call stack. E.g. if an intent is sent on button click or text change, then the new state should reach the UI on the same call stack.
All heavy operations should be off-loaded in the Executor.