Native cross platform UI

You lost my intrest now.

That’s not technically true. It’s entirely possible to use native controls from C# on any platform.

Presently, Objo’s UI layer is based open the open source (and well funded, well established and stable) Avalonia framework. I am planning on supporting some form of interop capability with the underlying C# code so it would be possible to leverage native controls if a third party provider wanted to do that.

Same for me, sadly.

It is always interesting how many people from XoJo scene are in the need of native controls and native dialogs. I can understand that from the point of view that it looks then like an original mac application. But makes that really such big difference for the end user? Are tthe end users so fixated to their Gui when buying a program? I have no Idea.

There are Mac purists out there still. But as time goes on and more apps become web based I feel many (most?) don’t care as much. I know my opinion on non-native controls has changed considerably in the last 10 years.

What I can understand is that people want native dislogs for file operations and native dialogs. That’s the point why flatlaf got exactly this ability to call native file choosers from Java Swing applications. I wrote about it in the Java thread on this server. While it makes finding of files les complex it is a MUST HAVE in my eyes on macOS and also on Windows and linux.

Not just TECHNICALLY not true I can actually say the the stuff in my Tinkering about thread IS 100% native controls on each desktop target

On the other side: why this efford? No need for. At the end only a couple of people believing that they can only sell mac software. The rest will be happy with different solutions.

because what I’m building ISNT Mac only - its a C# wrapper around native controls on each of Mac/Windows/Linux

So overall the hierarchy is (for a button)

Button
    - Mac Button    
    - Windows Button
    - Linux Button

You can stick to JUST the generic button across all targets
And, when need, if desired, easily use the platform specific methods/properties with a simple #if block surrounding the platform specific code

And this applies to all other controls views & even the application itself

Plus, should I need to, its easy to make platform specific controls

About this biggest “issue” is layout metrics since those vary between systems
Since I havent got that far yet it would need platform specific code to resize the window, and relay controls to maintain relative positions
So I’m thinking a system like autolayout as part of this would work nicely to maintain everything

This already exists on the Mac and the engine to do it already has existing ports to many languages so implementing it for Windows & Linux shouldnt be that hard (famous last words)

The big question I have is: why??? Many controls of avalonia having wide potential of functionality. Why get down to the native parts all platforms have? But that’s the point in my eyes: people believing that’s the only thing really important.

As far as I know good Software is. May be that’s why we are growing like heck and others thinking how to get the next contract. Todays software has no connections to native. It has connections to functionality and usability. And no, not all mac users thinking they would need everthing native. They use what they want. Native or not.

Because thats what I want ?

You’re business and what you do leads you to do what you want
Which is to have the exact same ui regardless of platform
Fine - thats what YOU want

I dont

And that is YOUR opinion
There’s no right or wrong to opinions
You believe what you believe and I happen to believe there IS value to native UI

There’s nothing to PROVE
its not like math where I say “2+2 = 5” and you can factually say “you’re wrong !”

IF what I did, and the clients I have and deal with wanted “gerenci same ui across all platforms” then thats what I’d do

But thats NOT what they want either

IN YOUR fields sure I can believe that esp with devices because its NOT obvious its running on a Mac, Linux, Windows, or whatever
I’ve worked in that realm before and when you get to define what is “standard” for such a thing then sure do whatever the hell you want
Been there done that

But for what I AM dealing with it absolutely does matter

Its why electron apps annoy the hell out of me
All these little quirks where they are close but not quite right
And Rider, while a great IDE, is 100% NOT a Mac app
And its obvious in how it works, the shortcuts it uses, how the editor works etc
I have to make myself work ITs way
And that is annoying

It is more what the customers want and not only in medical field. Cause of several customers we are active in more than only medical field. Sometimes it sounds for me like I have a medical only pathway. No. Sure not. As we are working for customers in banking environment we have much more fields we are working. Nobody asks for native there. Not what I want. But what the customers want. If I would do what I want I would be still a one man show with too less contracts.

And again: this field is 20% of the software we are producing.

That is your way of workfing. But you may have problems to find a mac native IDE in this hard programming world. I do not know one for cross platform development. Mac Only development: Swift and Swift UI. That’s it. But this is also something what is sometimes not possible cause customers want and need working software.

And more and more of it is web software and has no connection to native anymore. Cloud computing makes desktop go away. And this trend will not stop.

What your BUSINESS customers want. That’s not the majority of users.

I just set up a new Mac laptop for an elderly neighbour who’s wife had died so he can stay in touch with his relatives. Native is incredibly important in that context as he is easily confused when something looks different.

I simplified the interface as far as I could and removed all unnecessary options (eg unused apps in the dock, unused tags and folders in the sidebar, usage options that are too much for him). Something like using the keyboard to CMD TAB between apps or using the space bar to pause a movie is already too much - he can only handle ONE OPTION and doesn’t want more.

I think this is a religious discussion.

Most of today’s users are accustomed to “web apps” and may not even use desktop apps. When they do, it might be a web app running in a local wrapper (e.g. Electron).

OS purists do exist but if I were building something to target Win/Mac/Linux it would not be with native controls. In that situation, rendering the same on all platforms has advantages over being platform-specific IMO. Easier to support and document that way, for one thing.

There can still be behavioral differences on different platforms according to what users expect. For example Objo puts the menu bar where a user expects it on each OS. I haven’t explored enough yet to know how it handles generic operations (printing, file picking) that the OS has built in dialogs for but I’d be fine with it calling native modal dialogs like that.

Of course if you want native controls “all the way” on each platform by all means go for it. Nothing wrong with that. Not sure if your users care though. And I’d think it would make the underlying framework a lot more complex.

The menue bar ca be placed for apple without any problem, it has to be wrapped correctly. I guess that Garry will do that later also. And yes, you are right, it IS a religious discussion. My mother in law with more then eighty years has no problems using Linux or Windows. She changes her Notebook from time to time and yes: it is always a learning curve. She says: her only way to stay okay in her age is learning. So everybody has another IDeas about that. I guess, this is a discussion which becomes more and more useless hance more and more vendors stopping to develop platform dependent while they have - like all companies - the need of lowering the costs.

Asking me the outcome will alwayys be: for what? But hey, who am I. The customers are not interested in my case. And a few applications are used by a big amount of ens users. Also they care only about the functionality of the application and not about native gui. But this can change.

I’m open to accept the fact that both ways have supporters. What I dislike much is when someone doesn’t respect opinions of others and just think his/her way of thinking is the only possible way.

And this thread shows those persons exist.

It is not the only possible way. But it is in the meantime the most used way in the industry. Lowering costs is the argument number one for it. It started with the high amount of former Web apps becoming desktop. And this will never stop. Has apple a beautiful ui? Yes. Ist it worth to develop the application two times to be native? Not for the most cases. If I have to write platform dependent for Mac, swift ui ist best friend.

I understand, but keep in mind that I can respect your [right to have] your opinion and still think it’s wrong and I might point out why I think so. And this isn’t meant to offend.

One must always be careful to not confuse your beliefs / preferences with your identity. That way when someone doesn’t accept your preference, it isn’t seen as a personal assault of some kind. It’s not personal. As @thorstenstueker points out, from a business perspective and most kinds of users, it generally is a bad idea. Twenty, maybe even 15 or possibly 10 years ago, the calculus was arguably different.

I’ve been at software development for 43 years now and I’ve had to let go of more than a few personal preferences / ideals to account for what my clients and their users actually care about rather than what I wish they would care about, either because such things evolved away from my preferences or never intersected in the first place. It’s life.

Same here but 39 years in the industry. And nothing is wrong on it. Projects to generate money are needed and to do them cross platform makes it possible. Nobody would care about a vscode windows only. It would not be needed. And nobody would want to pay developing on all platforms. Simple the situation in the market today. I am sorry that I am always hard in this things but it would not be possible to pay my employees the monthly salary when not thinking about the business. And there is no interest in native. There may be niches. But niche markets are complex to get. We need food every month for the guys believing in my company every day.

I thought I saw a stray pixel on a UI once but to my enormous relief it was on a speck of dust.