Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Suggestion: Cross-platform UI (Windows, MacOS, Linux) #156

Open
AmiK2001 opened this issue Jan 20, 2022 · 55 comments
Open

Suggestion: Cross-platform UI (Windows, MacOS, Linux) #156

AmiK2001 opened this issue Jan 20, 2022 · 55 comments
Assignees
Labels
feature Feature / Tool request or idea
Milestone

Comments

@AmiK2001
Copy link

AmiK2001 commented Jan 20, 2022

Is your feature request related to a problem? Please describe.
The application is cool, but so far it only supports Windows OS.

Describe the solution you'd like
AvaloniaUI is a cross-platform, open source, XAML-based framework that is close to WPF.
It would be nice if a GUI based on AvaloniaUI became optional or even core to make it easier to support a cross-platform user interface.

Describe alternatives you've considered
As a cross-platform alternative to AvaloniaUI, I see only Uno Platform.

@AmiK2001 AmiK2001 changed the title Multiplatform UI (Windows, MacOS, Linux) Suggestion: Multiplatform UI (Windows, MacOS, Linux) Jan 20, 2022
@tobamaestro
Copy link

As a Mac user, would love to contribute in bringing the product to MacOS platform. Regarding desktop development, I'm familiar with ElectronJS, but did some C# (WPF & Windows Forms) and Java (Swing) back in the days.

@isaacrlevin
Copy link

.NET MAUI might be a good option as well when it goes GA
https://docs.microsoft.com/en-us/dotnet/maui/

@AmiK2001
Copy link
Author

.NET MAUI might be a good option as well when it goes GA https://docs.microsoft.com/en-us/dotnet/maui/

MAUI's biggest problem is the lack of Linux support. Some developers may need this.

@AmiK2001 AmiK2001 changed the title Suggestion: Multiplatform UI (Windows, MacOS, Linux) Suggestion: Cross-platform UI (Windows, MacOS, Linux) Jan 20, 2022
@isaacrlevin
Copy link

Have you seen this? Maintained by a MSFT employee
https://github.com/jsuarezruiz/maui-linux

@AmiK2001
Copy link
Author

Have you seen this? Maintained by a MSFT employee https://github.com/jsuarezruiz/maui-linux

Thanks for the link, I have not heard that anyone is porting MAUI to Linux.

Based on the status of the project, maui-linux is still in very early development and the rest of the offerings look much better and are already being used by both open-source projects and companies.

@RodrigoTomeES
Copy link

Hi, it would be great have this app in macOS, I can help testing it 🚀

@readthecodes
Copy link

The audience of this product is developers, but most developers are using MacOS or Linux as their development environment, only support Windows is the biggest bug...

@veler
Copy link
Collaborator

veler commented Jan 21, 2022

Hi,
Thanks everyone for proposing this change. I read on Twitter, Hacker News, Reddit and here that a lot of people were wondering whether the app could be cross-platform or not.

Lookback on why DevToys is only on Windows today

Here is my very personal (and probably biased) feeling about it:

In August, @btiteux and I discovered DevBox and DevUtils apps for macOS. We've been amazed by how they fit well the macOS environment (look & feel + integration of OS-specific features). We looked at what existed on Windows and found nothing as good. That was one of the big motivations for making DevToys: having an app for which the look & feel fit very well the OS (in particular Win11) and integrates OS-specific features (navigation, tiles...)

Other factors are that @btiteux and I are very comfortable with Windows, we don't own a Mac and never need a Linux for work (it's been years I didn't start a Linux machine). Adding to this the fact that we wanted a sleek native UI, at the end of the day we didn't have much interest in doing an app with a cross-platform UI like Electron or a platform-specific UI (Xamarin/Uno) or a native app on each platform, mostly because we are were only 2 people working on this app.

Quickly looking at the macOS and Linux "developer toolbox" market, we can see there are already plenty of famous and super cool apps like DevBox, DevUtils, Boop, Text Pieces, meanwhile, not much on Windows. We didn't really want to spend energy at "competing" with other apps on a specific OS, even if they're paid app and that we're free. Not that we can't, but it wasn't our goal at that time.

Perspective

I'm personally not against the idea of having a cross-platform app, but that would be under some conditions:

  1. Not regressing the DevToys UI on Windows (at all).
  2. Keep supporting Windows-specific feature. In parallel, we can also of course support macOS and Linux-specific features.
  3. Making sure the UI/UX on macOS and Linux is coherent with the Windows approach, while also being coherent with macOS and Linux ecosystem. What I mean here is that the look & feel would fit the system, while the navigation in the app would be the same (or as close as possible) than the original one on Windows.
  4. I'd need to invest into a Mac (not a big deal).

Please tell me if I'm mistaken here, but with these first 3 conditions above, I feel like Electron should be eliminated from the equation. MUI isn't ready yet. Uno may not allow to keep the exact same UI on Windows due to limitations (please tell me if I'm wrong).

Going forward / TL;DR

With that all said, perhaps the best thing to do from user perspective is to make the app native to each platform. But that requires a ton of resource and energy from us (@btiteux and I). I'm sure we can count on the help of the community, but since every contribution depends on free time and motivation of everyone, I'm hesitant at taking this direction if it has low chances to be completed with the same level of quality that we tried to set for the current Windows app.

@isaacrlevin
Copy link

The audience of this product is developers, but most developers are using MacOS or Linux as their development environment, only support Windows is the biggest bug...

Have stats to back that up?

@veler
Copy link
Collaborator

veler commented Jan 21, 2022

The audience of this product is developers, but most developers are using MacOS or Linux as their development environment, only support Windows is the biggest bug...

Have stats to back that up?

Perhaps @readthecodes refers to this: https://insights.stackoverflow.com/survey/2019#technology-_-developers-primary-operating-systems
We can see that about 52.5% developers are using either macOS or Linux.

image

@tobamaestro
Copy link

tobamaestro commented Jan 21, 2022

With a rising trend towards MacOS:

https://insights.stackoverflow.com/survey/2021#most-popular-technologies-op-sys-prof

I especially believe it's gonna continue in this direction with the recent introduction of Apple ARM.

Aslo @veler, I believe showing "Professional Developers" tab should be more relevant in that infographic.

@RodrigoTomeES
Copy link

Anyone tried to execute DevTools it in Mac or Linux using Wine?

@veler
Copy link
Collaborator

veler commented Jan 26, 2022

Anyone tried to execute DevTools it in Mac or Linux using Wine?

I don't expect it would work in Wine. DevToys is a UWP app, not a "classic" Win32 app. It requires a sandbox that I doubt Wine supports.

@quicksandznzn
Copy link

As a Mac user, I really need DevToys ~

@Yopler
Copy link

Yopler commented Jan 27, 2022

Hi 🖐,

I think electron can be a way to have DevToy cross-platform. @veler , I know you fell like electron it is not the good alternative but let me try to convince you.
I have memorize that You want (at least) two thinks for DevToys :

  1. To be use on Windows
  2. To fit the Os eco system design. (here win 11)

Windows design system is : Fluent Ui. During the rework for win 11, Microsoft have work also to make their design system compatible in other platform. Microsoft propose more and more applications using electron like Teams, the new Office 365 desktop app, and I think soon microsoft Loop. With one drive, outlook, office 365 the web app from microsoft should fit for the better to the Fluent UI design system.

Now, if DevToys can be cross-platform you can have a project in TypeScript or Javascript call maybe DevToys common block and then have three other project that implement electron and the "design" of the differents OS with a :

  • DevToys Windows project
  • DevToys MacOs project
  • DevToys Linux Project

I can talk for windows, if we want to make it fit the FluentUI design (Win11) here some link to a Web Component librairy made by microsoft for fluent UI design (React / Angular / Vue / ASP.NET / ...):
https://www.microsoft.com/design/fluent/#/
https://docs.microsoft.com/en-us/fluent-ui/web-components/
https://github.com/microsoft/fluentui

I don't really search for other Os but i am sure the community know some web component librairies to make DevToys fit MacOs and Linux.

I think Devtoys is a must have for developer and we need to spread the world.

Hope it can help ! 😊

@KuraiAndras
Copy link

Wouldn't Blazor over webview2(or electron) with Fluent UI work great for this? You could even release a web-based version for people who have no permission to install this on their work computer

@Willam2348
Copy link

It looks like someone in Japan is working on a native mac version of DevToys. https://github.com/ObuchiYuki/DevToysMac It seems to be missing a few features, but seems to be able to reproduce most of them.

@veler
Copy link
Collaborator

veler commented Feb 4, 2022

It looks like someone in Japan is working on a native mac version of DevToys. https://github.com/ObuchiYuki/DevToysMac It seems to be missing a few features, but seems to be able to reproduce most of them.

Thanks for sharing this @Willam2348 ! We weren't aware of it and believe it may cause some confusion considering the approach this person took in this portage is different than ours on some core values. We reached out to the developer here: DevToys-app/DevToysMac#12

@0x0c
Copy link

0x0c commented Feb 5, 2022

Hi, I'm currently developing iOS and macOS version of DevToys. I can contribute to DevToys if it is needed.
https://github.com/0x0c/AppleDevToys

@AmiK2001
Copy link
Author

AmiK2001 commented Feb 6, 2022

Hi, I'm currently developing iOS and macOS version of DevToys. I can contribute to DevToys if it is needed. https://github.com/0x0c/AppleDevToys

Maybe you can join forces with https://github.com/ObuchiYuki/DevToysMac?

@veler veler added this to the v2.0 milestone Feb 6, 2022
@0x0c
Copy link

0x0c commented Feb 7, 2022

@AmiK2001 Yes, both projects are using Swift so we can use same logic with same code. However, codes for composing user interface are not compatible because of different framework we use (AppKit and UIKit).

@escobar5
Copy link

escobar5 commented Feb 8, 2022

@veler I have experience in C#, maybe I could help with this, I agree on sharing the most codebase we can, but also having native feeling UIs

@veler
Copy link
Collaborator

veler commented Dec 9, 2022

Hi everyone,

It's been a while we didn't give news on this thread.
As an update, @btiteux and I are starting to work on DevToys 2.0 and we actively look at cross-platform support. So far, the idea we have is to keep a native app on Windows, but migrate from UWP to WASDK, which would be .Net 6 (hooray!).

In parallel, we would port the whole app to a PWA, using .Net 6 too (thanks to Uno Platform), which would make the app available on MacOS and Linux from a web browser. We would keep the app working totally offline, apart from downloading it through the web browser of course. In addition, we're thinking about making the app working fully in CLI (so no GUI at all).

Finally, once all this is done, we will look into porting the app to a more native UI on Mac and Linux. What blocks us from doing it immediately is some issues with WebView component on .Net GUI solution on Mac and Linux (Avalonia, Uno, MAUI) that makes the Monaco Editor being difficult to integrate at the moment. We looked at how we could replace Monaco Editor by something else, but there's no great answer at the moment and people seem to love having the same editor than Visual Studio Code integrated directly into our app.

This whole work will take a few months. No ETA for now.
Thanks everyone for your support!

@veler veler added the enhancement Idea of improvement of existing feature. label Dec 9, 2022
@veler veler self-assigned this Dec 9, 2022
@veler veler added feature Feature / Tool request or idea and removed enhancement Idea of improvement of existing feature. labels Mar 19, 2023
@Xytrios
Copy link

Xytrios commented May 29, 2023

This project exists and is available through flatpak https://github.com/aleiepure/devtoolbox, perhaps both projects can work together

I'm not associated with the project, I recently discovered DevToys and was looking for a similar app on linux and discovered this project on flathub.

@SalahAdDin
Copy link

This project exists and is available through flatpak https://github.com/aleiepure/devtoolbox, perhaps both projects can work together

I'm not associated with the project, I recently discovered DevToys and was looking for a similar app on linux and discovered this project on flathub.

Is it possible to get it from AUR?

@Jethril
Copy link

Jethril commented Jun 7, 2023

While reading through the comments: please, do not consider Electron (or alternatives).
We all have a web browser already, don't force us to download another one just to run one single app that consumes twice CPU and memory as needed. Electron is a toolkit designed for companies that can't afford the development of several apps that does the same thing (and don't want to maintain a codebase made of several programming languages).
As open source developers, we are not tied to these constraints.

@veler veler mentioned this issue Jun 25, 2023
@btiteux btiteux unpinned this issue Jul 20, 2023
@harvzor
Copy link

harvzor commented Jul 28, 2023

don't force us to download another one just to run one single app that consumes twice CPU and memory as needed
#156 (comment)

I was already surprised that the download size of DevToys is 159mb (https://github.com/veler/DevToys/releases/tag/v1.0.13.0).

Compare this to 3 popular Electron apps:

image

  • Postman is 167mb
  • 1Password is 138mb
  • Discord is 91mb

Of course, this is not the unpacked size of those apps, and I'm sure at least Discord will install a bunch of updates after installing, but I think Electron would be okay for this project. Everyone uses Visual Studio Code, anyway:

image

https://survey.stackoverflow.co/2023/#integrated-development-environment

@Jethril
Copy link

Jethril commented Jul 28, 2023

You're talking about disk space which does neither affect your computer's reactivity nor the program's performance and startup time.
I find the percentage of products using Electron pretty irrelevant in the process of choosing the right technology.

@SalahAdDin
Copy link

You're talking about disk space which does neither affect your computer's reactivity nor the program's performance and startup time. I find the percentage of products using Electron pretty irrelevant in the process of choosing the right technology.

What about the RAM memory consumption?

@veler veler pinned this issue Aug 18, 2023
@martinszeltins
Copy link

The audience of this product is developers, but most developers are using MacOS or Linux as their development environment, only support Windows is the biggest bug...

I agree 100%. Linux is THE developer platform. It makes no sense to have a windows only version.

@AuburnMedia
Copy link

In August, @btiteux and I discovered DevBox and DevUtils apps for macOS. We've been amazed by how they fit well the macOS environment

I don't see it this way. The DevToys application (with a few tweaks) could fit very well with macOS. It's crucial that we make native apps, instead of using shortcuts like Electron, though I do think WASDK or Uno Platform would work well for our purposes. Moreover, most programmers use macOS or Linux, so I think a more unified application couldn't hurt.

@tl87
Copy link

tl87 commented Oct 1, 2023

I would sure like this for Linux as well :)

@Akryum
Copy link

Akryum commented Nov 8, 2023

There is a nice alternative to Electron called Tauri which reuses the system web engine meaning small app size (hello world is less than 1MB) and lower memory usage.

@EliranTurgeman
Copy link

Hi, Any update? :) 2024 is right around the corner,
Its will be a big hit in MacOS

@btiteux
Copy link
Collaborator

btiteux commented Dec 27, 2023

Hi, Any update? :) 2024 is right around the corner,
Its will be a big hit in MacOS

Hello, we are working on the v2 supporting Windows and MacOs you can check the progress on the v2 branch.

Linux support is experimental for the moment.

@veler
Copy link
Collaborator

veler commented Dec 27, 2023

Hi, Any update? :) 2024 is right around the corner,
Its will be a big hit in MacOS

Hello, we are working on the v2 supporting Windows and MacOs you can check the progress on the v2 branch.

Linux support is experimental for the moment.

Hello,
I'd add that we ported more than 50% of the tools to the new version. We're making progress! 😁

@veler
Copy link
Collaborator

veler commented Feb 24, 2024

Update: It remains us 4 tools to migrate from DevToys 1.0 to 2.0, along with finishing some touch up (which are in progress) and prepare release material (installers, website...etc), which we didn't start yet.
We're hoping for a preview release in April/May for Windows Mac and Linux.

@EliranTurgeman
Copy link

@veler Saw you migrate 1 tool this weekend
keep the great work! looking forward to use it on my Mac :)

@OrthodoxWindows
Copy link

OrthodoxWindows commented Mar 24, 2024

Hello everyone, I have a question :
Is AvaloniaUI (or Uno) compatible with standard Win32 controls ?
It would be great to have a version of DevToys with native Windows controls (as this will allow much greater customization).

@waffle-frame
Copy link

We are looking forward to the release of the cross-platform version.
Arch Linux is ready for testing ❤️

@btiteux
Copy link
Collaborator

btiteux commented Apr 16, 2024

If you use the "new" main branch (cross platform DevToys v2). You should be able to build the Linux version. still experimental for the moment but we are working on it.

@waffle-frame
Copy link

@btiteux
Do you mean that I can now test DevToys by cloning all the files from the v2 branch?

@btiteux
Copy link
Collaborator

btiteux commented Apr 16, 2024

Yes there's no v2 branch anymore we merge the new DevToys version for MacOs, Linux and windows in the main branch.

@veler
Copy link
Collaborator

veler commented Apr 17, 2024

Update: It remains us 4 tools to migrate from DevToys 1.0 to 2.0, along with finishing some touch up (which are in progress) and prepare release material (installers, website...etc), which we didn't start yet. We're hoping for a preview release in April/May for Windows Mac and Linux.

Another update:
We're pretty much feature complete!
We wrote a documentation. It remains just a few pages to finish. In parallel, we're doing a refresh of our website, along with automating the creation of installers / packages ready to be published.

Not going to lie: we won't release it in April. Maybe not in May either. Please keep in mind that we're mostly 2 people on this project, and develop it in our spare time, and haven't earn a dime for it. So please be patient with us and our repeated delayed estimation. 🤗

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature Feature / Tool request or idea
Projects
None yet
Development

No branches or pull requests