I think with declarative UI it is a lot easier to ...
# multiplatform
I think with declarative UI it is a lot easier to build cross platform shared UI. It is much easier to test in unit since the UI descriptions are basically functions of the current state which can easily be snapshot tested against different states. React pattern brought a whole new way of thinking to the UI to solve the spaghetti mess of MVC like apps. You don’t need to think about UI changes. Of course some parts need to feel more native. Currently we are building a cross platform app at my work where the navigation is native and the screens themselves share design and layout over all platforms with some native components as switches and date selectors on each platform. The app feels like a native app. (The only difficulty is that it is React Native and that means unnecessary complications with a bridge between native and js for which you need to transform data and limit traffic between layers. ) Cross platform UI is possible but it needs the right designs and abstractions. I really like the concept of the Airbnb design language system. These patterns are recently forming. I think a kotlin based functional declarative UI system is the future. Together with the other foundational work already being done like coroutines and ktor multi platform it could create amazing apps. It is only a matter of time.