Desktop Apps should not share the same UI as Web Pages, which should not share the same UI as Mobile Apps. With Kotlin Multiplatform for Web now stable, this is clearer than ever. Your background and some components can be the same between them, but the UI should be vastly different. For instance, Desktop apps are mini window managers by design and tend to use multiple layouts to display lots of information and actions at the same time because monitors are so large and the mouse is so precise. They use a large amount of dialogs and popups, and generally have tabs inside of them for different things loaded at the same time. Memory, CPU, and disk usage are virtually unlimited. Notifications don't really exist, and you need to develop your own update warning system. Users are in the mindset that the app is theirs to own and organize, which leads to long-term thinking. On the web, there are no windows. Dialogs are terrible, and any internal tabs should use the browser's own tabbing system. Routes must be addressable with readable links that the user can see (which is not a thing in the Desktop or mobile). Bottom navigation is in conflict with the browser's own navigation buttons, and everything is just one pull away from a full restart. Somewhat unlimited memory, but CPU, IO, and disk are severely constrained by the browser. Users are in the mindset that they are renting the app while they are there; they are in somebody else's house, which leads to short-term thinking. On mobile, everything is very large. Buttons are big, and space is extremely limited. Some popups work, others don't. Tabs don't exist (even though many phones try to make it happen). Something that is just a click away on the Desktop is 3 clicks down on mobile. Navigation requires links, but the user never sees them. Memory is hard-capped at 512MB per app, background processes generally don't work, and the OS may decide to kill half of your stuff at any moment. Around the globe, phones cannot be trusted and are generally treated as a disposable asset, like your app. Devs that try to optimize for all 3 of them at the same time end up just making the lowest common denominator, and users suffer with massive delays and lack of care.

Replies (8)

Naw just write for web and gaslight users into believing your pwa is actually a mobile and desktop app too.
Amen. Desktop is the only experience that is actually good, phone is all we use.
? Why are you assuming that because it is different it is not recognizable? Are you dumb? Branding can be the same in very different UIs.
dangershony's avatar
dangershony 1 week ago
Generally you are correct, but... It also depends what is your application doing, and the level of sophistication and complexity you need. It may also mean that you are adapting/disabling parts of the code for different platforms. (some features are just not available on mobile or web etc..) It's still way cheaper then maintaining 3 different apps
↑