Flutter's future on Ubuntu/Linux?

In light of the recent news announced by Canonical/Ubuntu about publicly committing themselves to using flutter for all Ubuntu applications moving forward I’d like to know more about the future plans for Flutter on Ubuntu Desktop.

I get that Flutter is excellent for kiosks, web server snaps and stuff but those don’t have to fit into a complex desktop environment UI wise. So are you really committed towards Flutter desktop apps? Introducing a foreign UI style in Gnome environment is bound to be rejected by the community. It’s like having a thorn or a splinter in your foot, your body will recognize a foreign object, reject it and push it out eventually. And in the end it will heal but there will be scaring forever.
The same thing is with the operating systems, FOSS communities etc. You don’t want to introduce something foreign that will be rejected, abandoned and replaced and leave a scar in the form of bad press, bad reputation etc. But Flutter could really be a game changer, if it doesn’t look foreign and if it truly looks and performs native, like it belongs in the GNOME environment.

My main question and concern is that Flutter apps don’t look native on Linux and in Gnome environment. How much is Canonical now dedicated to Flutter as a future of Ubuntu/Linux desktop apps? And most importantly will you be developing a UI library for Flutter to make apps look and feel native on Ubuntu and in line with the rest for the GTK apps that are being shipped? There are Material and Cupertino libraries but will Canonical develop a GTK/Gnome/Ubuntu one?

If the GTK/Gnome style for Flutter was developed this would be a game changer for adoption in the Linux community.

I’ve seen online across different FOSS communities and channels that people are worried. They are worried that Canonical will make Ubuntu a gnome/android/chromeOS Frankenstein. If this is not the case, I’d urge you to communicate this and share some plans for the future, a roadmap would be awesome, share a vision of how Flutter apps will fit into the current Ubuntu+Gnome ecosystem. Make us believe. Make us trust you and in the end, make it happen.

Thanks!

1 Like

You’re basically saying “some people won’t like a change”. You can’t please everyone all the time. I don’t buy for a minute that “the community” has a collective voice which gets upset when there’s the slightest hint of visual inconsistency.

Without wishing to get into the specifics of Flutter, because I don’t work on that team, I’d contest the argument that the majority of Linux users are all about some kind of desktop “purity”. That’s frankly ludicrous and only the domain of a small set of users. I’d suggest a vast majority of users have installed a real mix of applications from different toolkits on their systems. If you want a pure GNOME experience or pure KDE experience, sure, you can do it, but you’ll miss out on some applications in your life. The vast majority of users are installing the OS as a means to get the applications they want. If GNOME and KDE (and elementary and whatever else) don’t make those applications available, users will look elsewhere. More people have VLC and Spotify (so-called “foreign objects”) on their systems than total users on most other Linux distros. 100% visual consistency is a panacea that exists nowhere, not on Windows, MacOS, Linux, iOS, or Android.

That doesn’t mean we shouldn’t try, but don’t think it’s as big a deal as you make out for most people.

9 Likes

I have already seen you hating about this topic on twitter - are you really open for a mature discussion or do you seek some drama on the internet?

I am not working for canonical but one of the maintainers of the Yaru theme, also a Java Developer IRL so maybe I can share my objections on this topic:

Developing in Java is very popular in the industry and many rock solid big business applications are running with Java. Also Android apps are written in java (or Kotlin, a super language of Java). My operating system of choice for developing Java applications/apps in my Jobs and for private music creation is Ubuntu. So I often were at a point were it felt very natural to think about creating a GTK app for Ubuntu. If you have been working in tools like Eclipse, Intellij or Vscode, deep diving into GTK, its documentation and IDE feels like falling back to stone age. Did you ever try to do this yourself? Even if you can apply a good design with CSS on GTK and gnome-shell it is so far away from Android app development, spring boot server development or JavaFX client development that it really scares developers away. The gnome community is really cool and amazing stuff is developed by so few people and really works really good (also the new shell design is super cool) but looking for alternatives is always a good thing in the technical world (also in day life btw) and it is really important to get young developers to develop applications for Ubuntu that are not familiar with the whole GNOME ecosystem. This is also the reason why most of the “third party apps” you can use on Ubuntu, like microsoft apps, dropbox apps, google apps (there were some in the past) are not made with gtk.
If the Linux desktop should have any relevance in the future were most likely apple and their new ARM based systems will play a big role then something mightier than gtk is a very good alternative. Just try developing an app in flutter yourself, it is really easy, fast and looks awesome.

8 Likes

So I’m not talking about the apps that users install later. Of course that they are not purist about that (some are). I’m simply saying that it is wrong for the OS to be visually inconsistent by default. I’m not aware of Windows, MacOS, Android, ChromeOS shipping any visually inconsistent app let alone with the design language of a “competition’s OS”.

It simply isn’t done. And there are many reasons for that and I’ll name just two here:

  1. Imagine if you were a non technical user. Let’s say like my parents and grandparents. They all run Ubuntu because it’s enough for what they need and consistent enough so when I tell them to click on the “three horizontal lines button” (the hamburger menu) they’ll get to some option. Now they don’t have any third party apps so they are used to the default user experience. But just imagine what will happen if suddenly those 3 lines appear as 3 dots. Everything they know up to this point goes out the window. They’ll say they can’t get use to that, they barely learned the three lines button, information overload, throw that computer in the trash…

Now some might say, how many senior people or tech illiterates use Ubuntu? Probably not many so we can just make life harder for them. After all, they won’t even know how to write us a message and complain so life is good.

And I’ve heard that argument many times so I’m addressing it in advance.
To those I say, why do we then take great care about accessibility in Ubuntu and Linux in general? How many blind, deaf etc. people use Ubuntu? Probably a lot less than senior citizens and technically illiterate. But we still want them to not just have a great experience but have the best experience. As they should and as they do.

  1. Imagine if you Dell, Lenovo or some other OEM shipping Ubuntu. Would you like your OS to look like half the apps are meant to run on Android? Probably not. You wouldn’t want to ship a visually inconsistent OS. No other OS does that. The apps that users install later are not important but the default user experience should be perfect and totally visually consistent.

Now, I fully support Flutter on Android, iOS etc. But on Linux it just doesn’t look native on anything except ChromeOS. It’s still an excellent toolkit for developing third party Linux apps but not for the default ones meant to run inside GNOME DE or any other on Linux except ChromeOS.

Now if there was a “Gnome” style library like Material or Cupertino. Now that changes the whole story. It would be a perfect marriage.

Guilty as charged, but that’s Twitter. This is an official forum so of course I’m serious about a serious discussion. I also wrote my original post in a bit more dramatic way as most posts here pass unnoticed or unanswered but you get my point.

I can’t answer you atm, as I’m in a serious rush but I’ll get to it I promise.

Are you aware we use a distinctive style in Ubuntu that is based on the gnome themes but not a hard copy of the gnome themes? That we basically almost have our own design language?
Just move a gtk window with the Adwaita theme selected beside a desktop application like Discord, MS Teams, Chrome, Firefox or Telegram desktop (qt), and then ask yourself if you should Adapt the World to MacOS-Aqua inspired sceuomorph Adwaita theme or rather the gnome themes to the rest of the world?
I would rather say we could eventually adapt some of the Flutter widget styling more to Yaru but that’s about it.

Also theming for Flutter is really cool and much safer than in gtk and this whole topic of “theming” is not so negatively overloaded like in gtk, because a real theming API is built in there.
Here is our current work on the Yaru dart theme:

To add something about your noise about flutter: just imagine you developed an app for android and can just roll out the same app for all desktops including Ubuntu? It is so super cool, I can really see no downside here.

Styling can be changed, do not panic about this.

2 Likes

Sorry, I cannot take your argument seriously with this amount of hyperbole.

6 Likes

And just how are the many different UI languages in Windows not inconsistency?! There’s Win3 UI, Win9x UI, Win XP UI, WinVista UI, Win8/Metro UI, Win 10 Fluent UI; all different and unique. How is that not inconsistent?

3 Likes

The weird thing about your argument is it’s very possible for devs to get Flutter’s yaru package to be seamlessly consistent with Ubuntu’s design team. Still some work to be done for sure but it’s still early. It would be possible to do the same thing but with Adwaita but no one’s working on it. Also as far as the installer project, no one expects an installer to look exactly like the rest of the application windows.

Plainly speaking, Flutter allows people to have an Ubuntu app creation framework that is well supported with GREAT tooling in popular IDEs. It is attractive to so many people making apps for other platforms that wouldn’t touch Gnome Builder or QtCreator with a 10 ft pole. This is only a win that doesn’t take anything away form you.

I mean imagine users of a software being able to tell a dev. “Hey I love this app and I want a Linux version!” then, as the developer prepares to give the old “sorry but don’t have the bandwidth to support such a small percentage of users”, they instead take a look at what it entails and they’re like… “hm actually this is super easy here you go!”

Yes, I agree 100% but you are misunderstood my issue and this response is very much appreciated but not really relevant because I actually agree with you completely. So just to clarify, I’m not against Flutter apps. I’m against defaulting Flutter apps that look like android apps. I’m warning about how bad that visual inconsistency is. But that is solvable, Canonical could invest in a UI library for making visually GTK/Gnome/Ubuntu looking apps with Flutter. Just don’t SHIP an app that doesn’t LOOK as a part of the same OS by DEFAULT in the iso.

I have no problem with third party apps being all different for what I care but the default apps should all conform to the same HIG for various reasons.

Yes. And no you don’t, Yaru is a GTK theme, it’s still GTK, it still has CSD, all widgets are the same etc. It’s basically a color scheme (i know it’s more than that, but for the purpose of this conversation I’ll say it like that).
When you look at Yaru GTK app you think Yaru GTK app. When you look at that new installer you think android app with a Yaru color scheme.

Again, I 100% agree. For third party apps, it’s a dream come true. It will be a game changer for Linux in general, Ubuntu and ofc Canonical for snaps, kiosks etc. I love it. But here I’m talking about default apps on Ubuntu and how they should have a look and feel of a typical GTK Gnome app and not Android app.

Yeah I know but what I’m asking is if Canonical is willing to invest in it. To make it a real thing. Just like there is Cupertino for iOS, make for example “GnomeUI” for Linux (If you plan to continue using GTK apps to and GNOME DE). Give a public statement, maybe a roadmap etc.

Absolutely not a hyperbole. I had a privilege to teach Ubuntu to seniors. If something changes, if some app does something differently than the other. Let’s say Firefox updated it’s icon. They go into a panic mode. The same with having varying UI patterns across default apps. Ubuntu/GTK apps have CSD, Flutter Material has a title bar and controls from the CSD are shifted to the top bar under the titlebar. That would be an issue.

And that’s why there are people still using Windows XP today. Because for some the change was to drastic to upgrade (or other reasons). But the important part is that Windows 10 is bacwards compatible but is not shipping any Windows XP app etc. You are putting 30 years worth of different OS-s in the same pot with this statement which is untrue. In Window 10 they ship apps that all look like Windows 10 apps. Not a single one looks like Android, XP, Vista or anything other than Windows 10.

It would be great ofc, but never did I say anything about Adwaita. Yaru would be great. As long as it looks and feels like a true GTK app with CSD and all.

Oh man, once again, yeah. Sure. Great. I love it. Make any future Flutter app that is going to be defaulted in Ubuntu visually consistent with what’s being shipped at the moment aka GTK/Gnome. Make library for that if Flutter is the way forward for Ubuntu apps.
Give some more information about this direction as I’m and many others are worried and expecting Ubuntu to start shipping apps that look like they were made for Android or ChromeOS but with Yaru color scheme. If that’s the plan it will be terrible.

As for third party apps, they can do whatever they want, no one is disputing that. It can be Material, Cupertino, Windows style, whatever.

none look anything other than Windows 10, at all. Totally consistent.

1 Like

I should have mentioned I’m interested in actually creating a fork of Yaru but more Adwaita based.

As far as CSDs, per the post about Flutter wayland development:

Also I’m heavily watching this bug for CSDs on flutter

And while my other Flutter thread is lonely and will likely die alone :upside_down_face:, I’m hoping eventually some more (positive minded) people/devs might post and discuss future goals, or practical/reasonable feature requests on there (with accompanying bug links)

1 Like

That is still a Windows app progression there. But in all fairness, you’ve shown me. Kudos to you. I still think Ubuntu shouldn’t be looking up to others fails.

Also, I’m not saying don’t ship a gtk 3 app when the rest is ported to gtk4. Just don’t ship an Android one.

One should also try to guess what lead to the screenshot you invoked. I think that they just didn’t get around to designing those in the Win10 style. But if they are developing an app in the present, they won’t make it match XP, they’ll design it for the Windows 10.

You are trying to make a case for why future app development should diverge in their UI/UX from GTK/GNOME while still intending to track and ship mainly GTK/GNOME (afaik). I think you might not have realized that.

But sure, kudos.

My point was your statement is a strawman fallacy. There is no desktop operating system that ships a 100% consistent UI. This is especially so with Linux distros because we’re shipping a hodgepodge of various third-party applications as “default”. We cannot guarantee that they’re all visually consistent because we don’t write them.

That’s a comforting news right there :smiley:

As for the theme if I may share a few (since subjective) irrelevant thoughts:
I found the whole Suru/Yaru style and matching icon theme very appealing on Unity8. Mainly because it was a totally new DE that was supposed to look like that and the app icons too. The legacy app icons just had a border around them similar to Unity7.

When Ubuntu switched back to Gnome I longed for that Suru experience in Gnome. And it was kinda achieved trough Yaru and Yaru icon theme etc. It kinda made sense back then to still keep suru/Yaru around and not make it go to waste. Adwaita back then really wasn’t something to look at too. Gnome icons were basically garbage back then.

In the recent years tho, Adwaita has matured a lot along with GTK. Gnome app icons have matured a lot too. I find Adwaita Dark more appealing than Yaru nowdays but at the same time I find Yaru more appealing than Adwaita White.

In light of Flutter becoming a go to toolkit for Ubuntu app development, maybe there is no need to differentiate Ubuntu from others by its theme but rather by its apps and the theme could be just stock Adwaita or some mix of Adwaita Dark and White (Like yaru is now but closer to Adwaita).

I now find that the icon theme brings me more confusion than benefit. Because everywhere on the web a particular app will be represented by its real icon but in my OS it looks different. Icon theme is often not updated for some apps (Like Gnome Web, it has a totally different icon now but Yaru ships the old one). So basically there was a real need and benefit for icon themes when Gnome apps had ugly icons. Now they all have nice and polished icons so I no longer see a need for having it in Ubuntu (maybe only for default apps if even).

In my mind, this would expand adoption of Flutter on Linux even beyond Ubuntu and across the whole Gnome ecosystem. It would also free up some time for people who are currently maintaining all those icons and theme to maybe focus more on Flutter. It’s an opportunity to maybe do something cool. I imagine Yaru maintainers might be a bit bored now because the theme design is set and there’s only dealing with issues that brake the theme and keep it from working properly.

I think with these changes Ubuntu would still retain it’s uniqueness and mainly with its default extensions, Ubuntu font (which is amazing), and Suru icons (but not app icons, I mean the UI icons arrow, hamburgers, battery, wifi, sound etc). Those are just way superior than what stock Gnome has (imo, subjectively speaking ofc).

Now, these are just my thoughts. I like Yaru theme but I’d trade it for a great Flutter style and being closer to upstream Gnome which theme looks pretty nice today.

That said, when I wrote the original post, I really didn’t have this in mind. I thought about GTK like Yaru style for Flutter. But since you’ve mentioned you’re working on Yaru and are bringing it closer to Adwaita I thought I’d share a few thoughts from my user’s perspective.

Just… Be a friend and don’t just agree with shipping Material UI apps with Yaru color scheme on Ubuntu by default. I can’t believe I’m the only one on this forum making any issues about this. It’s a pretty big deal what you (as Canonical) decide on this issue.

Are you guys for real? My post was promotional??? How?? I’m literally talking about Ubuntu and Flutter…

Calm the farm dude. This is discourse, it has anti-spam features built in. It also allows community members to flag posts.

The problem with your post is that not much productive comes out of it.
First you shit post on Twitter on the announcement with vomit emojis. Then you make a topic about “the future of Ubuntu and flutter”, which sounds really big for a discourse thread, don’t you think? Then you post just false facts and make them look like they are arguments. Then you say all you wanted to talk about are themes, even if the title of this post sounds differently. So yeah, we take the visual appearance of Ubuntu very seriously and many people including Canonical and community contributors and designers are taking care and invest time. But as everything that needs to be developed it won’t happen over night or in a noisy discourse thread claiming the only future for Ubuntu is adapting its visual design to the Adwaita design language which is not really at the edge of design to say it nicely.

3 Likes

Thanks.

Obviously not when you are not replying on this post but on my Twitter comment. Like what do you want me to say? I’m sorry for the twitter comment, ok? I know many people worked hard on this. I apologize and let’s not mention that again. I can delete it if it really means something to you, but I’d rather not personally.

As far as this thread not being productive. I mainly said what I wanted to say. It’s up to everybody else now to agree with the thinking or not. If I’ve at least a bit influenced the future development of Flutter on Linux in the direction of being visually integrated into Gnome I’d call this a very productive discussion.

And I’ve learned some things myself. Like Windows still sucks from @diddledani and a few developments in flutter to keep an eye on by @ikeahloe. So yeah, I’m pretty happy with that.

Well said, it’s just another option for developers and users.

2 Likes