In this blog post, I mentioned that it seemed like the next step for the microPebble-KMP work was to merge it back into microPebble. I spent some time this evening reading the code, and I think I understand what was built as:
-
A handful of business logic was split out of the
uimodule (for instance,DeveloperConnectionScreenStatemoved to acommonMain). -
There were some Bluetooth bug fixes, especially on Android 13!
-
iOS build scaffolding (hooray!)
-
There is a bunch I don’t understand around reimplementing more
uiincommonwith a root composable ofcom.matejdro.micropebble.ui.MicroPebbleApp(and in turn instantiating acom.matejdro.micropebble.ui.navigation.HomeScreen), and I’m not sure I understand why this is necessary rather than using the existingcom.matejdro.micropebble.home.HomeScreen.But then, I can’t figure out how the existing
home.HomeScreenis supposed to be instantiated, either! It seems like there is a lot of navigation stuff that I truly do not understand in the Android world, and I don’t understand why it is unnecessary (or elided?) in the iOS world – or how it might be shared.
So this was kind of a wild ride so far. I initially thought that most of the existing UI got rewritten, and that’s not true. Some of it did, and I’m not sure I understand where this is necessary and where this is unnecessary. So I guess the question is: is the new way something that happened to be quicker to get to a PoC, or something that is inherently better in the iOS-ComposeMP world? And which way do we wish to settle on for where to put UI things going forward?