Announcement

Collapse
No announcement yet.

Canonical Continues To Talk Up Google's Flutter UI Toolkit

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #21
    Web tech is generally pretty good for devs in general for ease of use. flutter is no different. easily make mobile apps that look good, and that port well to desktop. I can see why canonical would think it nice, especially if they want to try their hand at the mobile market again. OF course, easy work leads to shortcuts, lets hope they put the time saved into something actually useful.

    Comment


    • #22
      Originally posted by bug77 View Post

      People look at simple and intuitive UIs and think they must be simple and intuitive to write. They're not. They're complex beasts and any solution that lets you build a flexible UI will look exactly like what you posted.
      Whether we're talking a Java UI SDK, CSS, Flutter or whatnot, you still need to be able to specify layout, positioning, alignment, margins, insets, colors...
      Well, while all the elements are necessary, the code example from kpedersen can indeed be made easier to read. HTML/CSS do so by separating content and presentation code into 2 sections. Web browser engines are energy inefficient because they have to be forgiving and do a lot of fallback / error handling / interpreting, but the basic design is superb in accessibility. (Web)App developers can specify how their content shall be themed and the (Web)App users can also specify how contents shall be re-themed to user's preference / eyesight condition. Any GUI toolkits invented after 2000 shall follow the same design principle. Imagine a desktop environment where one can specify how spacious / compact things are as part of UI theming / customization and then applications that blend into that desktop environment will tune themselves accordingly.

      Comment


      • #23
        Originally posted by kpedersen View Post
        Code:
        Widget titleSection = Container(
        padding: const EdgeInsets.all(32),
        child: Row(
        children: [
        Expanded(
        /*1*/
        child: Column(
        crossAxisAlignment: CrossAxisAlignment.start,
        children: [
        /*2*/
        Container(
        padding: const EdgeInsets.only(bottom: 8),
        child: Text(
        'Oeschinen Lake Campground',
        style: TextStyle(
        fontWeight: FontWeight.bold,
        ),
        ),
        ),
        Text(
        'Kandersteg, Switzerland',
        style: TextStyle(
        color: Colors.grey[500],
        ),
        ),
        ],
        ),
        ),
        /*3*/
        Icon(
        Icons.star,
        color: Colors.red[500],
        ),
        Text('41'),
        ],
        ),
        );
        Do people find this particularly good to lay out 3 trivial components in a classic row / column container? Now don't get me wrong, even an ancient toolkit like Motif had its own issues but it seems to look elegant in comparison.

        Not to mention the next task will be to bind the C++ code that people use to actually write software to sodding Dart. This is a very awkward workflow I must say.

        Are there any flutter users here that have also used a standard GUI toolkit to compare against? It would be really interesting to hear why they like Flutter. I feel like I must be missing something!

        "Oeschinen Lake Campground" nice place
        I don't get the benefit of "Apps" on a desktop, maybe to prepare the next linux phone push but building quality apps in Phosh and Kirigami for true convergence is more to my tastes.

        Comment


        • #24
          OK, so from some of the previous comments it seems that people do find the markup used in Flutter to be easier than i.e Glade's XML stuff or just via code. I am personally not entirely convinced, though admittedly I have not used Flutter for anything so fair enough. I have built a fair few GUI tools before and I actually like the fact I can reduce duplicated code using functions in bog standard C++. Perhaps this isn't for everyone.

          The next issue that cropped up a few times is that Flutter is seen as a way of avoiding C++ because it is a "bad language". I think this is where my use-case differs to most people. C++ is absolutely non-negotiable for most modern projects. So if I was to use another language, I would then have to use *both* C++ *and* i.e Dart. It would surprise me that I am alone in this however. Do people really plan to write software entirely in Dart, just because of the UI library? If you wanted to use Python, would you need to go through the Dart FFI into C/C++ and then back out into Python? That is a tremendous amount of work.

          Canonical is now going to be spending a lot of resources binding between Dart and C++ for their desktop / mobile apps. I can't see this being feasible. Or are they really planning on now using a fairly niche language (Dart) for all their tools? I am still missing something :/
          Last edited by kpedersen; 19 March 2021, 01:52 PM.

          Comment


          • #25
            Originally posted by Pyth0n View Post
            I am strongly against using web-derived technologies for desktop (and mobile for that matter) applications. Yes, it is easier and quicker. But soon we will need 256GB RAM and 128 cores to lift 682 instances of Chromium running concurrently. Each time I see the next Electron application I want to scream.

            I didn't manage to build an example Flutter desktop application due to missing Chrome (my distro has only Chromium), so I assume it might be something "electronish".
            I agree.

            In my experience (and I do not meant to be dismissive of anybody personally), web developers are the worst of the worst when it comes to technical understanding of the OS, turning desktop applications into web applications will just lower the quality of everything in the desktop space producing bloated very slow applications with flat UI elements muddled together forming indistinguishable porridge eating CPU and RAM for little aesthetic benefit.

            Flutter's idea of being cross-platform reminds me of JAVA GUI apps. If you think Gnome's CSD (I'm talking about the huge window bar + icons) is bad wait until you get everybody and their dog writing pretty web GUIs with it. Each "new" brilliant solution brings its own pack of issues with it. Also Google's track record of deprecating technology & frameworks rivals of MS, I would not bet the farm on anything sponsored by Google (See recent case with Stadia)

            Mobile applications are awful and in a desktop environment are x2 the awful, we seem to be regressing hard on most GUI related stuff ATM with all the Wayland shenanigans, I'm optimistic it will be fixed in time, but I'm not optimistic about the web app running in the desktop trend. I just want this "universal" idea of an application being the same on mobile and desktop to end.

            Comment


            • #26
              It's a shame Ubuntu can't figure out a way to earn a living doing legitimate development. Instead, they're wasting time chasing bogus bucks spent on pushing garbage tech. And yes, it is garbage, because that's what Google does to every project any time they see something shiny elsewhere that piques their interest.

              Comment


              • #27
                I tried flutter 2 for desktop last week, because I was curious. So I quickly setup an empty project (hello world basically) and compiled it. 70 MB binary. Ok, probably a debug build. Nope, the debug build was 180 MB. I removed that test project and went along. I mean it's not as bad as electron, but it's close enough. Sorry, I really like my resources and hate to contribute to wasting them. (Especially as long as there are alternatives that are less resource intensive.)

                Comment


                • #28
                  Originally posted by kvuj View Post
                  I wonder why they decided to choose Flutter. I doubt it's for performance, GTK4 has an excellent GL backend and a Vulkan experimental one.

                  Maybe customization? I heard it's quite easy to change how a Flutter app works and Canonical has traditionally disliked GHI guidelines.

                  Cross platform? Wha... what? Are they planning on making their installer work as a Windows app too?
                  It's also certainly not for efficient use of resources. I find it mind-boggling how time and again these cross-platform toolkits are making themselves more and more abstracted and interpreter-based, resulting in supporting 3 or more interpreters and in some cases multiple dynamic recompilers, to draw "standard" UI elements and lay them out logically. I wrote a GUI toolkit for MS-DOS that used 7kB of RAM and did layout, had pushbuttons, checkboxes, radio boxes, combo boxes, sliders, single and multi-line text inputs with editing, a re-usable area widget for extending the toolkit, event processing and hooks, multi-priority threading, accelerators, two fonts with scaling and styles, dialog/help/notification boxes, including a file load/save dialog. It also had a compositing mode that took an extra 64k for double-buffering which locked it at 30fps updates, oh, and it was themeable.
                  Last edited by linuxgeex; 19 March 2021, 02:52 PM.

                  Comment


                  • #29
                    I wonder what the odds are that Google discontinues Flutter development within the next couple years.

                    Comment


                    • #30
                      Originally posted by JPFSanders View Post
                      Flutter's idea of being cross-platform reminds me of JAVA GUI apps.
                      Java GUI apps are actually awesome (those who are well programmed, of course).
                      Just take a look ad IntelliJ for example: It's fast and beautyful.

                      Also, the Swing library is (was?) actually pretty decent to use (I admit I never worked with any other toolkit, so I can't make an informed comparison).

                      Comment

                      Working...
                      X