Today we are announcing the retirement of the Visual Studio for Mac IDE. Visual Studio for Mac 17.6 will continue to be supported for another 12 months, until August 31st, 2024, with servicing updates for security issues and updated platforms from Apple.
Well… this is pretty crappy.
I built a Xamarin app (mac/iOS) because I wanted portability to windows. Then I was forced to upgrade to .net 6/7 because of a library I needed, and that meant upgrading to .Net for Mac/.Net for iOS (which is part of MAUI, but not using MAUI UI controls). MAUI is definitely undercooked at the moment.
What an awful and painful process, but I’m finally there… and they drop the main IDE for development. Damn.
VSCode doesn’t have a visual UI designer (well… neither does VSMac, but it does prepare a copy of your project and opens XCode for editing the storyboard/images, and copies changes back). So does this mean they will add that to VSCode? Or will we all have to switch to raw edits of XML to create UIs like you have to do with MAUI? Ick.
Developing GUIs for windows using MS tools is a lesson in frustration, especially when you want to have cross platform capabilities… WPF -> WinForms -> Xamarin -> Xamarin.Forms -> MAUI/.Net for {Mac,iOS}… Not to mention UWP… Each transition is a rewrite. Damn.
@wth @Spyros We need one universal graphical tool kit that works everywhere!
GTK: Hi, I heard you’re looking fo—
Me: NOT YOU
How about Qt
@LaggyKar I’ve never used it
Every desktop app that’s available on multiple platforms is basically written in it.
Electron:
GTFO Electron, I hate you :P
@JackbyDev oh damn wish I’d thought of that
Electron never forgot you :(
ROFL.
True on desktop OSs. I did quite a bit of commercial dev on GTK many years ago, but I always found the look and feel on Mac (esp) and windows quite klunky. I hear that quite a bit of work has been done on native theming, so perhaps my impressions are out of date. Having said that - GTK wasn’t bad to work with. I also did a project in WxWidgets, but again desktop only. It was not too bad for simple apps.
For the current app - first release target was iOS, then Mac, Android, Windows then Linux. So GTK was out since its not mobile friendly (I have heard you can do something on Android, but iOS is out).
GTK has improved a lot, but native theming isn’t the area. It has very powerful theming but I don’t think a macOS theme exists.
Thanks. I’m very out of date with it.
This may not be a popular opinion, but if the app is large enough, just use Electron.
I really like the idea of having a web UI for its portability and richness (esp thanks to CSS being so close to consistent across all platforms). But I have a metric tonne of business logic and ZKE code in C#/.Net running on Mac/iOS. From your prompt, I did just find Electron.Net, so perhaps there is hope.
And, AFAICT, electron can’t be used for iOS apps on the App Store (am I still wrong about that??)
Plus (personal bent) I did a ton of JavaScript years ago when truthiness and indeterminate behaviour was rampant back in ES5 days. I’m a purist and found it a little ugly, but incredibly fast. Then I found dart which compiled to JS, and I decided that JS made a better assembly language than a usable language. Sadly dart has remained a minor player. JS has moved on and I see lots of the old ugliness (like iterating through properties, exceptions and a sync) has gone away. ES13 looks pretty good, although I haven’t played with it yet.
Have you looked into Flutter? It uses Dart and can compile to native apps for android, ios, windows, Mac, Linux, and web.
After I saw your note, I had a quick catchup on that project.
It looks awesome, with the promise of mobile and desktop, and the ability to make apps that can be uploaded to the AppStore. Plus its Dart which is a pretty well structured language. Its ticking a lot of boxes…
Then I ran « wc -l » on my support libraries (i.e. not UI code) - 64k LoC that would need to be rewritten in dart. But then I noticed Flutnet. its probably an abomination linking the two… but it could be promising.
Thanks for the pointer.