[HN Gopher] Uno Platform 4
       ___________________________________________________________________
        
       Uno Platform 4
        
       Author : pjmlp
       Score  : 50 points
       Date   : 2021-12-01 16:52 UTC (6 hours ago)
        
 (HTM) web link (platform.uno)
 (TXT) w3m dump (platform.uno)
        
       | yjftsjthsd-h wrote:
       | From their home page:
       | 
       | > Pixel-Perfect Multi-Platform Applications with C# and WinUI
       | 
       | > The first and only UI Platform for single-codebase applications
       | for Windows, WebAssembly, iOS, macOS, Android and Linux
       | 
       | In case anyone else was confused as to why a card game was
       | launching a platform, or thought it had something to do with
       | Arduino
        
         | gompertz wrote:
         | Doesn't Dart+Flutter cover all those platforms as well? Also
         | Delphi is 90% way there (still ways to go on wasm I believe).
         | So not really "first and only"...
        
           | jmnicolas wrote:
           | Yes but Dart although an OK language is clearly not up to C#
           | brilliance.
           | 
           | A lot of libraries don't exist in Dart or are platform
           | specific (for example you can do SFTP only on Android and
           | iOS, but not on desktop).
           | 
           | On the other hand, Flutter as a UI framework is much better
           | than anything Microsoft makes (and they make a lot!). It's
           | way more easy to build something beautiful with flutter.
        
         | kbenson wrote:
         | > In case anyone else was confused as to why a card game was
         | launching a platform
         | 
         | I was, actually, having written a Reversi game in the past. So
         | thanks! :)
        
       | aidenn0 wrote:
       | I tried the windows calculator app in my browser[1]. My
       | experience was similar to many webasm apps in the browser; it
       | took a large fraction of a second for input to cause a response
       | in the app.
       | 
       | I'd like to try the linux version, but the only linux binaries
       | are for snap, and my distro doesn't support snapd, so can't do
       | that. Anyone know if Uno is married to snap, or if I'd be able to
       | build non-snap binaries on my own?
       | 
       | 1: https://calculator.platform.uno/
        
         | dan-robertson wrote:
         | I tried the calculator and it had an even worse version of the
         | iPhone calculator bug for me. The iPhone bug was that the
         | buttons had a cool-down period where they didn't work after
         | being pressed so if you pressed a button too many times in a
         | short time it wouldn't work. The bug here was that after
         | pressing a button, everything would lock out for a while, but
         | maybe it's just a web standards thing or my device being slow.
        
         | maicro wrote:
         | That's odd - I tried the same page, and felt it was very
         | responsive, up until I did 7+ square root operations. This is
         | in Vivaldi, on a Windows 10 (2.5 year old fairly beefy
         | "gaming") laptop, with a bunch of tabs and Spotify running. I
         | do have uBlock Origin enabled, though even with it disabled
         | that page seems fine to me.
         | 
         | Not defending or excusing it, or doubting your results - I
         | guess mostly lamenting we don't have more consistent
         | performance across platforms...
        
         | Shadonototra wrote:
         | 6 seconds to load
         | 
         | 35.8 mb of ressources
         | 
         | for a calculator...
         | 
         | how can people be fine with that and press the publish button?
        
       | exdsq wrote:
       | What's the difference between this and Blazor?
        
         | JamesSwift wrote:
         | Blazor is a way to run native code in your browser. Uno is a
         | way to run UWP code as a cross-platform app.
        
           | dgellow wrote:
           | It's slightly more complicated now that we also have Blazor
           | Hybrid: https://devblogs.microsoft.com/dotnet/hybrid-blazor-
           | apps-in-....
           | 
           | Blazor is two things at the moment:
           | 
           | - Blazor Webassembly: C# + .Net runtime + Razor components,
           | all of this compiled to web assembly, running on the browser
           | as a Single Page Application
           | 
           | - Blazor Server: C# + .Net runtime on the server, + a SignalR
           | (i.e: socket.io alternative) connection between the server, +
           | Razor components (rendered server-side, diff are sent to the
           | client to update the DOM)
           | 
           | But that's not all! To make it even more complicated, Blazor
           | Hybrid (or .Net MAUI BLazor? Names I've seen aren't
           | consistent) has been announced: a .Net MAUI application + an
           | embedded web view + a local interop channel!
        
       | deburo wrote:
       | I've been wondering who's developping Uno, what's their business
       | plan? Is it like Red Hat, people are paying for support
       | agreements?
        
         | JamesSwift wrote:
         | Uno is a product that targets a specific portion of the dev
         | community, i.e. devs who want UWP XAML. It (theoretically)
         | allows you to take an existing UWP app and run it cross
         | platform.
        
           | bithavoc wrote:
           | Do you know how they make money? Qt also started being free
           | and open-source, and that, of course, changed over the years.
        
             | JamesSwift wrote:
             | I assume paid development and tangential consulting. I know
             | the owners are a consulting shop and Uno came out of that
             | work. This is all speculation though, I only know of Uno by
             | way of it coming up in conversations about cross platform.
        
         | dgellow wrote:
         | You can see the team and some background here:
         | https://platform.uno/about-us/
        
       | vips7L wrote:
       | What's the difference between this, Avalonia, and MAUI?
        
         | Richicoder wrote:
         | TL;DR:
         | 
         | * Uno is a vendor-led Windows/WinUI inspired and based UI
         | platform that was originally concieved as a way to port modern
         | Windows Apps to other platforms. Since then, it's evolved a lot
         | of different capabilities and paradigms, but ultimately is
         | basically cross-plat WinUI with extensions. * Avalonia is a OSS
         | platform concieved as WPF with some of the warts removed, and
         | cross platform. It uses a lookless theming and drawing primites
         | instead of native APIs/Controls to render it's UI. * Maui is a
         | .NET/Msft-blessed platform that is basically a rebranding of
         | Xamarin.Forms with some improvements and renewed investment. It
         | also largely uses native APIs/controls, and has a contruction
         | style that is kind of a mix between WPF and WinForms.
        
         | JamesSwift wrote:
         | Not sure about Avalonia, but for Uno vs MAUI here is a previous
         | comment of mine (in this context Xamarin and MAUI are
         | identical):
         | 
         | Uno is sort of an alternative to Xamarin.Forms aimed at windows
         | developers that aren't happy that Xamarin.Forms uses a non-
         | standard XAML. Uno uses UWP XAML, which is preferred by these
         | users.
         | 
         | The way I like to think of the two frameworks is that Uno is a
         | cross-platform framework that aims to align systems to the
         | Windows way of doing things, while Xamarin.Forms is more of a
         | "do iOS/Android" in same codebase and just happens to also
         | support windows. There is unique value props in each framework
         | (e.g. Uno also targets WASM and Xamarin.Forms targets Samsung
         | Tizen).
         | 
         | Here is a good high level of Uno:
         | https://www.youtube.com/watch?v=fyo2BI4rn0g
        
           | vips7L wrote:
           | Doesn't maui also support mac/linux? Do a lot of people use
           | xaml? I would have thought you could write the ui's directly
           | in C#.
           | 
           | edit: it looks like xaml is optional with the community
           | toolkits https://devblogs.microsoft.com/dotnet/introducing-
           | the-net-ma...
        
             | JamesSwift wrote:
             | Youre right, platform support on MAUI is different than
             | Xamarin so that part isnt necessarily accurate.
             | 
             | A large segment of the community uses XAML yeah. I think it
             | just tends to be those that came to it through .net or
             | those that came to it through native app dev. I prefer C#,
             | and it seems MAUI has a better story around that with its
             | partial focus on MVU style dev.
        
             | Richicoder wrote:
             | Maui does not (at present) offer Linux support. There's a
             | community effort, but AFIAK it hasn't gotten a lot of steam
             | yet.
        
         | sdflhasjd wrote:
         | To supplement the other reply, a big difference is how they
         | approach the cross platform UI.
         | 
         | Xamarin Forms/MAUI is effectively an abstraction layer on top
         | of the Android UI Toolkit and CocoaTouch.
         | 
         | Uno is its own implementation of a UWP compatible UI that
         | renders everything onto the screen using Skia.
         | 
         | You get the same affordances of cross platform .NET, C#, and
         | XAML. Uno gives you pixel perfect cross platform UIs, but loses
         | the native feel, which MAUI preserves, at the cost of writing
         | more platform specific renderers.
        
           | vips7L wrote:
           | Thank you this helped a lot.
        
       | halfmatthalfcat wrote:
       | Came into this thinking it was some game platform for the Uno
       | card game, left disappointed.
        
       | longstation wrote:
       | It says it's using Skia for Linux. I am wondering since Skia
       | isn't bound to any platform, why not just use it for all
       | platform?
        
         | JamesSwift wrote:
         | Probably because its origins are as a UWP-first framework which
         | runs natively on platforms that support it. Skia for Linux was
         | likely added on later to allow the original app to run on other
         | platforms.
        
         | kitsunesoba wrote:
         | I think probably because Linux has no true native UI toolkit,
         | and the two that are closest (GTK and Qt) both bring their own
         | sets of challenges that skew the cost:benefit ratio negative,
         | while this isn't true for the toolkits for other platforms.
         | 
         | I have no involvement in this project however, so this is just
         | speculation.
        
       | willio58 wrote:
       | What's the point of going this route when things like React
       | native exist for cross-platform dev? Lots more devs,
       | documentation, industry-use, etc. in the React world. Serious
       | question. Is it just performance?
        
         | jmnicolas wrote:
         | Web dev allergy in my case. You probably don't see it anymore,
         | but for someone that didn't start with it, it's very convoluted
         | and seems very brittle.
         | 
         | I want a compiler that colors my code red when I make a
         | mistake, not an environment that behaves like nothing happened.
         | 
         | I don't want to juggle 3 different languages, need to download
         | the whole internet when I want a simple function like left pad.
         | 
         | Although I despise what MS stands for, C# is a joy to use. I
         | can't comment on Uno, I chose Flutter for my mobile needs,
         | mainly because MS still hasn't got its shit together as far as
         | UI are concerned.
        
           | nawgz wrote:
           | > I want a compiler that colors my code red when I make a
           | mistake, not an environment that behaves like nothing
           | happened.
           | 
           | This is what any half-decent React and TypeScript app will do
           | for you. I write fully typed applications in TS & React and
           | any typo, call site update, interface change, or other
           | mistake you can imagine surfaces a TS error, in my text
           | editor, with helpful text editor highlighting 90% of the time
           | (sometimes the IDE is slightly different than the console).
        
           | JamesSwift wrote:
           | Xamarin (soon to be MAUI) is the best option in my opinion,
           | especially if you enjoy C#.
        
             | jmnicolas wrote:
             | I went directly with Flutter so I don't have any experience
             | with Xamarin. However I have read a lot of bad comments
             | about it, they say it's buggy and frustrating.
        
               | JamesSwift wrote:
               | Xamarin.Forms is buggy and frustrating, Xamarin.Native
               | (i.e. just native bindings without a huge opinionated
               | framework on top) is really nice. If you know native dev
               | already its a huge productivity boost (with the
               | occasional hiccup).
        
               | noworriesnate wrote:
               | I don't think Xamarin Native supports SwiftUI and Jetpack
               | Compose? The thing about the new declarations UIs is they
               | lend themselves really well to something like Xamarin
               | Native. I wish Xamarin would support them.
        
           | cxr wrote:
           | > need to download the whole internet when I want a simple
           | function like left pad
           | 
           | That can't be the reason. These kinds of projects don't
           | address that problem. In the ordinary case, it's usually made
           | worse by a factor of 2-10.
        
         | JamesSwift wrote:
         | At a high level there are pros/cons to JS-based frameworks and
         | "compiles to native" frameworks. Performance is one part of
         | that, but also ability to bind to existing native code also,
         | among other things.
        
         | sdflhasjd wrote:
         | A huge strength of Xamarin is how easy it is to use the native
         | platform APIs and things like real multithreading in C#.
         | 
         | > Lots more devs, documentation, industry-use, etc. in the
         | React world. Serious question.
         | 
         | Don't forget that C#/.NET has its own rich ecosystem.
        
         | dgellow wrote:
         | React native desktop is still experimental, the current version
         | is 0.66 and not really that stable.
        
         | m_fayer wrote:
         | Every "native feeling but glitchy mess" app I've had the
         | displeasure to use turned out to be RN.
        
         | naasking wrote:
         | Not sure what React has to do with anything, this is a UI
         | framework for .NET.
        
           | adamc wrote:
           | I'm not the OP, but I would guess he was coming at it from an
           | app point of view rather than an implementation environment
           | point of view -- as in, "why should I write an app this way
           | (assuming I could use any language/tools)?"
           | 
           | If you are already locked-in to .NET, then it's a different
           | question.
        
       ___________________________________________________________________
       (page generated 2021-12-01 23:02 UTC)