17 ms·
Flutter desktop isn’t there yet
- lpa22 4y agoi am greatful for Flutter if only to motivate the React Native team
- friedman23 4y agoOne single platform for cross platform development is enough motivation and react native has improved a lot in the past year. The entire concept of developing the same app multiple times for different platforms is just so mind numbingly dumb. 3x the engineering team, 3 different platforms with all their different idiosyncrasies. The impossibility of maintaining feature parity across all three platforms. 3x the testing and debugging.
- makestuff 4y agoI can see some apps needing to be native (ex: using AR/ML libraries where you need to squeeze everything out of the phone). However, for most apps I use, they could easily be mobile optimized websites wrapped in an app.
- friedman23 4y ago> I can see some apps needing to be native (ex: using AR/ML libraries where you need to squeeze everything out of the phone) I agree but all that's needed there is an escape hatch with some way for the non-native interface to interact with the native code.
- satvikpendem 4y agoIndeed, as a solo developer, Flutter is a godsend to be competitive with others in the market who already have integrations with a bunch of platforms.
- xdfgh1112 4y agoMultiple windows is on the roadmap and high priority. For me the best use of desktop is testing mobile apps without having to use my phone or an emulator. It works really well.
- scarface74 4y agoThat’s because the Android emulator sucks for development. There has never been an iOS “emulator” for development. When you built your code to test on the desktop, it was compiled to x86 and used x86 version of the iOS framework. Of course now that Macs use ARM chips, it’s a moot point.
- malkia 4y agoDocking would be nice to have too! like what MSVC or Qt has (built-in in Qt is not that great, but Visual Studio is one to follow). It's a must for content creators with multiple monitors, especially if they want the layout to be preseved from session to session or create different layouts (e.g. how and where the windows are, what is docked in which other, etc) for other people as templates.
- xutopia 4y agoHis point stands for me as well. I saw a lot of huge potential for cross-platform mobile development but desktop feels like a bad port of a mobile app rendered on desktop.
- preommr 4y agoFlutter is going to be 5 years old soon. It's not even the leading solution for cross-platform development for mobile let alone desktop. It's great to be positive and supportive but realistically, if someone had to bet months of dev work on building something non-trivial - would they really choose flutter?
- mhoad 4y agoIt’s hardly some toy SDK that is only suitable for MVPs. Google’s single biggest money maker Ads is built with it. It’s hardly a Google specific thing either there are a number of mega sized players also strongly betting on it for some fairly mission critical stuff if I understood correctly.
- wiseowise 4y ago> Google’s single biggest money maker Ads is built with it. If Flutter disappeared tomorrow nobody would even notice it. How much functionality do you think is there?
- kjksf 4y agoIn March 2021 there were 150 thousand Flutter apps in Google Play store. In May 2022 - 500 thousand. See: https://www.nomtek.com/blog/flutter-app-examples https://www.nomtek.com/blog/flutter-app-examples Today: I'm too lazy but you can google for more up-to-date stats. "nobody" is gigantically wrong. Flutter is extremely popular in mobile. Web and desktop support is behind but it'll improve and popularity of Flutter on desktop and web will grow too.
- wiseowise 4y agoI meant in Google Ads. How much is the front end there anyway?
- scarface74 4y agoYou realize that even Google doesn’t use Flutter in their cross platform consumer apps. https://9to5google.com/2021/10/10/google-ios-apps-native/ https://9to5google.com/2021/10/10/google-ios-apps-native/ And just because “mega sized players” are betting on it has never stopped Google from abandoning projects before.
- CharlesW 4y agoFor me, Flutter mobile isn't there yet either. I can see where it might be great for games with completely custom UIs, but I find the uncanny valley of pretend native controls a very uncomfortable place to be. Flutter could be a fantastic solution if it supported native controls and used JavaScript. I don't understand why Flutter's creators are so seemingly religious about Dart and reimplementing OS UI capabilities.
- eberkund 4y agoIsn't what you're describing basically React Native? I think the Flutter devs wanted to try a different approach to address what they felt were the shortcomings of React Native which brings along its own set of tradeoffs.
- twawaaay 4y agoEvery technology is a set of tradeoffs, including Flutter. For me -- I am using Flutter to build internal productivity tools available on multiple platforms (web, desktop, mobile). Users do not necessarily care if the application looks pixel perfect (but, still, Flutter is definitively an improvement from Oracle Forms :) What users and the management does care, on the other hand, is that the features can be delivered quickly and on multiple platforms.
- dmitriid 4y ago> Users do not necessarily care if the application looks pixel perfect They do care. They just don't know the words "pixel perfect". However, everything is an improvement over the standard state of corporate UIs
- deleted 4y ago[deleted]
- cxr 4y ago> For me -- I am using Flutter to build internal productivity tools available on multiple platforms (web, desktop, mobile). Users do not necessarily care Have you measured it, or did you stop after the Form A Hypothesis step?
- killjoywashere 4y agoI feel like this is similar the conversations we heard about Rust and Go 5-10 years ago. late edit: 5-10 years ago people were complaining about these languages having issues binding databases, network protocols, etc.
- amelius 4y agoDo Rust and Go have good (complete) Desktop UI libraries yet?
- kjksf 4y agoI don't know about Rust but Go doesn't. And probably never will. There are a bunch of projects but they are not very good or complete. The problem is that "good" requires massive amounts of work that is beyond the capacity of single person / small team of volunteers i.e. typical open source project. Which is why Flutter (and Electron) are the only reasonable technologies for desktop apps that I see today (and in the future). They get majority of investment from other place: 99.99999% investment in Electron is investment in Chrome. 99% investment in Flutter Desktop is investment in Flutter Mobile. Flutter Desktop and Electron will continue to benefit from massive investments in Chrome and Flutter Mobile. No other project building desktop UI can come anywhere close this level of investment.
- IceWreck 4y agoThere is react native. Facebook pays for Android/iOS and Microsoft pays for Windows/macOS. Sadly no maintained Linux desktop app support.
- malkia 4y agoCoworker of mine is using Fyne (for Go). So far the one issue that was found was the use of OpenGL, which on certain video cards, on Windows, in a remote-desktop session may not work (it works if you have NVIDIA drivers for example), or if you force `mesa` software rendering on top. These little details are usually not a concern, until they become a sudden requirement. Another one is Accessibility, which actually helps in other ways - you can automate UI test, or just automate things through it without relying (to a degree) on the kit's framework. In a way it serves to prove that the UI toolkit does diligent job of presenting it's widgets to a Reader.
- latchkey 4y agoIt is great to point out things that need improvement, but going so far as saying 'it isn't there yet', seems extreme. If your use case requires these specific issues to be sorted, then it is great to know about them in advance. Nothing is perfect and every single app across every single framework is going to need to make trade offs. If I needed text selection to be faster than what the built in component offers, I'd just develop my own component or spend some time debugging why the existing component is slow. Flutter itself doesn't prevent you from doing this. If I needed multiple monitor support in my app, I'd probably not write it in Flutter because I looked at my app requirements in advance and realized that it doesn't support that. The rest of the post seem to revolve around not having enough built-in ways of doing things. Again... you can't expect someone else to write your code for you and then call the whole framework lacking.
- invpt 4y agoI guess I'm thinking of Flutter's desktop support in relation to how it is on mobile. Flutter mobile does have a lot of built in stuff.
- layer8 4y agoI’m sorry, but not supporting multiple windows (not monitors!) in a single process, and not supporting bog-standard desktop features like context menus, rightfully qualifies as “not there yet”.
- latchkey 4y agoIt really depends on what the app you're developing requires. My app is just a few buttons for inputting data. I don't need context menus, multiple monitors or text selection. Thanks for the downvote though.
- layer8 4y agoThe fact that it happens to fit your limited needs doesn’t mean that it’s suitable for general desktop development.
- kid-icarus 4y ago[flagged]
- account-5 4y agoWhy? I'd love to know what's so bad about it...
- wiseowise 4y agoCovariant generics for starters. https://news.ycombinator.com/item?id=18517514 https://news.ycombinator.com/item?id=18517514
- account-5 4y agoLooks like I'm going to have to find out what generics are and then why they shouldn't be covariant!
- strongpigeon 4y agoIt’s not as pure, but I think from a usability point of view they made the right call there.
- hbn 4y agoThe more "solutions" that are developed for desktop + mobile cross-platform applications, the more I see highlighted how different the paradigms are, and how the streams really shouldn't be crossed. They're both UIs viewed on a screen that you interact with by pointing and clicking, but the similarities end there. The entire output of this cross-platform effort has been awkward applications that run everywhere but feel right nowhere. It's sad that even Apple has fallen victim to this idea that with their horrible Catalyst apps. Though I understand why the sales pitch of "one codebase" makes management of so many companies salivate.
- MrOwnPut 4y agoThat's nice if you have the funds and time for that. Fully native is ideal. But I don't agree cross-platform can't feel "right". Flutter's approach it can't. React Native's it can. Qt vs WxWidgets all over again. If I had to duplicate my codebase for each platform and learn each IDE/language just to continue my app, it would never exist. I solely created and maintain the iOS app, the Android app, and the web app for my company and for my side projects thanks to React Native. I can extend any native api or view, I can learn middle out for each platform. I can abstract and swap out any file or conditionally style based on platform. I developed the web app first using React Native Web. It took me a month to get the iOS and Android app released to the store. No Ionic or web wrapper crap needed... The one thing is getting the React stack and tooling just right. So it's Expo or devote quite a bit of time in the beginning to your stack.
- temporal828 4y ago> Qt vs WxWidgets all over again. Not sure how to interpret. Pro Qt or pro wx? I'm assuming the latter. But I don't even agree. Qt is/can lay claim to native as much as anything else on desktop Linux/BSD. The quality of the Windows emulation has always been excellent as far as I'm concerned, at it's been pretty goodish on Mac. But I've never seen a perfect cross platform library that targets Mac. wxWindows may use system drawing at the low level, but those that have been in this for years know what's up: it's just an unholy messy quasi-MFC (Microsoft Foundation Class) looking thing - the model is inherently MS Windows from 1994. This is not magically going to work well as a Cocoa app just because it uses NSViews under the hood. And although the simple controls may use the OS, all the complex ones have tons of internal design. Like this is optimizing the wrong thing - as a normal person I probably care more about the look and feel of the tree view, whereas only the weirdos on here are going to get bent out of shape that some button text is a few pixels off - getting both right is nice, but only hitting the last one is pointless. I've never seen a nontrivial wxWindows app that would fool anyone on MacOS. Qt can get much closer if you work at it a bit. So in practice I would say you can do better with Qt for the major desktop targets. These are all compromises. And native hardly means anything these days. Yes Windows has what has been retconned as WinForms, but otherwise, the UI LnF of Mac OS is a constantly moving target and Windows has never been as consistent as people seem to believe. Linux/Desktop Unix - lol.
- hobofan 4y agoI most recently tried out Flutter about a month ago and "not there yet" feels like my overall experience. Sadly for a project of Flutter's age one has to wonder whether the "yet"-phase will ever end (just like some libraries are bound to always be buggy due to their architecture, while others feel smooth). In onboarding to the tooling, there are so many paper cuts that it's not really a "I'll try this out for fun" thing like e.g. Next.js is, that you would recommend to your co-workers. I tried it out for desktop, where I found it okay-ish (but lacking in desktop-related libraries, as the article points out), and for web, where the debugging experience compared to web-native solutions really takes a hit due to the lack of DOM.
- TobyTheDog123 4y agoWe actively use Flutter and tend to agree with this sentiment, with the caveat that we believe it absolutely can get there (and I believe a lot more in Google's ability to stay relevant than Facebook's, even with ChatGPT in the mix). That being said, they have a lot of work to do. - I'm not a big fan of Dart's overall composition - "late" seems lazy and error-prone - Dependency on code generation for simple things like JSON serializers/deserializers - All the other issues people have mentioned in this thread. Luckily my team is investing a lot in our developer tooling, so we can lint/codegen a lot of the stuff away, but it's certainly a sign of it not being there yet.
- azinman2 4y agoI’m surprised anyone would trust their UI core technology to be something from Google. They kill projects left and right, and that was before the layoffs.
- tekkk 4y agoTo me as someone who recently got into Flutter to make a side-project (mobile game) the most glaring problem isn't the lack of ecosystem or little UI issues the author mentions but the language itself. You had a green field to make the best programming language for creating UIs and you made Dart? Like what. I don't have particular issue with the heavy OOP paradigm but the fact you have to write so much boilerplate feeling code (Center here, Container there) you'd imagine you could have simplified it a lot more. The documentation itself also seems like it could be improved. And some little things here and there, like the constructor syntax. I dislike semicolons as well, to me they're just busy work. Idk, you'd think an org like Google had the resources and the talent to make something truly amazing. Guess it just shows money can't buy everything. The tooling however is quite amazing. Being able to make cross-platform apps so simply is pretty awesome (React native was a pain in the butt the last time I tried it).
- wiseowise 4y agoThey didn’t create Dart for UI. It was dead and they shoehorned it into Flutter.
- spankalee 4y agoConsidering that Dart was made to run in browsers, they did in fact. The APIs the OP are complaining about are Flutter's not Dart's. Flutter tried to do a vdom-like thing that also included styling on top of regular function call syntax and it is... what it is.
- satvikpendem 4y agoThe style of writing the UI code takes some time to get used to, but the composability is really nice. For example, if I want to center something, I use Center and it works as I predicted. If I want to change the opacity of something, I don't need to find the opacity property of a particular widget, I can just...use Opacity, and it'll work for everything. This style is a way to have (extreme) composition over inheritance, which apparently was very useful for the framework authors who mentioned that they didn't need to keep reimplementing opacity for example for every single widget.
- college_physics 4y agoThe basic functionality of the typical UI hasnt changed for ages. Yet technologies keep churning. There is probably a better way but apparently people are not incentivised to find it.
- intrasight 4y agoAges indeed. And how sad and frustrating. The best cross-platform app framework is one that I used in 1990.
- bbkane 4y agoThis is a strange take for me- people are CONSTANTLY trying to find new, better ways to do UI. Elm, React, DearIMGUI, Flutter, and Xilem are some of the more well-known fairly recent libraries. See https://raphlinus.github.io/rust/gui/2022/07/15/next-dozen-guis.html https://raphlinus.github.io/rust/gui/2022/07/15/next-dozen-g... for an overview of UI libs in Rust. See https://www.cmyr.net/blog/gui-framework-ingredients.html https://www.cmyr.net/blog/gui-framework-ingredients.html for a great overview of some of the challenges making a GUI library
- robust-cactus 4y agoAnother one, desktop webviews don't exist either. Everyone does something custom right now and there's an epic vent fest in one of their GitHub issues. This causes about 1 new package to get released every few months too that tries to address it.
- arunbahl 4y agoThis. This was one of the reasons we ended up abandoning Flutter (the state of text editing was the other, super_editor notwithstanding).
- loic-sharma 4y agoHello, I'm from the Flutter desktop team. We're actively working on adding platform views to desktop, which will allow you to embed web views into your Flutter application. Stay tuned :)
- cbracken 4y agoHey there - Flutter team member here. Support for integrating arbitrary non-flutter views/widgets (referred to as PlatformViews in Flutter terminology) is something we're actively working on at the moment, once we've got them landed, web views and video player support are top of our list in terms of views to add support for. We know people can't wait for this to land, and believe me, I can't wait for it to land either :) PlatformView support is one of our top desktop priorities this year (along with multi-window support).
- nu11ptr 4y agoHaven't used, but seems to be available as a community package: https://pub.dev/packages/desktop_webview_window https://pub.dev/packages/desktop_webview_window Edit: on 2nd glance perhaps this doesn't embed into the widget tree but is always its own window?
- sfeng 4y agoI recently tried to use Flutter to develop a Windows desktop app, and I hit a wall. Unfortunately I'm using an arm64 machine, and I ran into enough mysterious errors that I just gave up.
- loic-sharma 4y agoHello, I'm from the Flutter desktop team. We're actively working on Windows ARM64 support, this should be coming soon! Stay tuned :)
- timsneath 4y agoA good example of Flutter desktop is https://rive.app/downloads https://rive.app/downloads - curious on others' thoughts of how that compares to Electron or other choices that are out there.
- satvikpendem 4y agoI tried it, it's quite snappy compared to Electron, I assume because it's AOT compiled.
- rileyphone 4y agoProbably moreso avoiding the DOM, Javascript JITs are very fast.
- loic-sharma 4y agoHello, I'm from the Flutter desktop team. Thank you for the excellent feedback, this is truly invaluable. Here are some updates from our side: 1. Custom context menus - We just added this feature in Flutter 3.7, which was released two weeks ago. Please give this a try and let us know what you think! 2. Multi-window - This is a high priority for the Flutter team, we have several engineers working on this project currently. Here's a video that gives an early preview on multi-window support: https://www.youtube.com/watch?v=vtB-teu57vw https://www.youtube.com/watch?v=vtB-teu57vw Feel free to let us know if you have additional feedback; this helps us prioritize on what's most valuable for our community!
- livinglist 4y agoHi there, I have been a happy flutter user for quite some time now, keep up them good work!
- mhoad 4y agoSame, contrary to some of the comments here I’ve had nothing but great experiences coming from a purely web background previously.
- synergy20 4y agosame here,keep up the great work. by the way dart is my favorite cross platform language nowadays beyond flutter.
- orangecat 4y agodart is my favorite cross platform language nowadays beyond flutter Yeah, it's very underrated. I find it nearly as expressive as Python with far better maintainability and performance.
- munificent 4y agoI work on Dart, and I'm glad you like it. I always like getting feedback from users. If there was something you could change about Dart, what would you pick? What would you keep just as it is?
- parentheses 4y agoNot being troll-y, but … NOTHING IS THERE YET “There” is Utopia. “There” is a language being ergonomic, ubiquitous, fast and with libraries that are awesome! That is too much to expect.
- qdot76367 4y agoAs someone shipping an app across all desktop and mobile platforms with flutter, binding it into a native rust library, I absolutely adore it. It does what I need and is fairly reliable about it everywhere, while keeping build systems and everything else mostly managed for me. As the post mentions, it’s not a panacea, but for someone who needs a good-enough solution, it’s been great.
- Winsaucerer 4y agoWhat are you using to do the rust bindings?
- nu11ptr 4y agoA couple of thoughts (doesn't address all the concerns): 1. I write in Rust, so my plan was to write the UI in flutter and use the rust/flutter bridge so I can write most of the client code in Rust. Gets around _some_ of the lack of flutter libs by using Rust ecosystem instead (but not for the UI itself) 2. There is a new lib out called platform ui that wraps mac/windows/linux UI transparently (it is just a wrapper that wraps fluent ui and macos UI libs, etc). Not sure how well it works, but might worth a shot and gets closer to native l&f for desktop https://pub.dev/packages/platform_ui https://pub.dev/packages/platform_ui
- qualudeheart 4y agoI don’t know. I have a colleague who swears by it.
- miiiiiike 4y agoIf there's anything I've learned from using Google projects it's this: It's not going to get fixed. It almost doesn't matter what it is. If you've used any Google OSS project seriously you're going to come across an obvious defect and run to GitHub to open an issue. But, there's already an open issue for the problem.. And it's been open for almost as long as the project has existed. It will have an inscrutable priority and day after day new comments will pop up saying "Hey, I'm having this issue too. Can I contribute a fix?" But, a pull request with a fix has sat, unreviewed, for almost as long as the issue has been open. And then it comes: "This issue has been automatically closed due to inactivity."
- mda 4y agoWell it seems there are 11K open issues and 66K closed issues in their github page. So maybe some issues got fixed at least?
- phist_mcgee 4y agoThe dreaded, 'closed due to inactivity' strikes again.
- nomel 4y agoEvery time I see "closed due to inactivity" implemented, the outcome is that new feature get added rather than fixing existing problems, because the memory of those problems only persists in the users day to day life. The developers have no useful record. But, I doubt that can scale. I imagine there's some happy place sitting near semi-automated "duplicate" recognition, and a voting system, to give the users a voice. Closing due to inactivity is never a happy place (unless it's sitting waiting for required user feedback maybe).
- Andrex 4y agoThis is why dogfooding is extremely important. You want the people making the reams to feel those 1000 papercuts.
- JediPig 4y agoI have 2 LOB on the desktop. Is Jank an issue? Only to those who have 100+ refresh rates. Corporate wise , nah, its fine, Jank effects heavy animations. Even then the 3-4 encounters was fixed by some smart resource usage. We are trying the 3.7 solution. If not, then stick with the idea don't try to animate the animation. Desktop ready? Corporations yes. Make the next unreal 5.x game with it? nope.
- TobyTheDog123 4y agoI've been very disappointed with the direction of Flutter recently, but I still do stand by it and will always choose it over the GatsreminextstroJS framework for VuengulembereactelteJS. Why are 3D, game engines, and WASM more important than good JSON serialization, improved runtime safety (removing "late"), multi-window support, extension structs, webview support, exhaustive maps, and other core issues? I really don't understand these priorities.
- whiplashoo 4y agoLast year, I built a desktop app with Flutter with native-looking UI, for both macOS and Windows: https://blog.whidev.com/native-looking-desktop-app-with-flutter/ https://blog.whidev.com/native-looking-desktop-app-with-flut... Indeed, multi-window support is absolutely missing right now, but it's the Flutter's team top priority. Context menus are now available with 3.7. Generally, I found Flutter/Dart easy to pick up and build a quality desktop app with ease. Currently, I am not convinced that it can be used for performance-critical apps yet without a lot of developer effort and experience (there is, for example, Rows, an Excel clone built with Flutter). However, it works for building general-purpose apps on desktop, without messing with the native toolkits that are in a strange place, especially on Windows.
- kidfiji 4y agoNot having any experience at all using Flutter, nor do I have any interest in doing so - just wanted to say that your blog article was a fun read. Thank you for sharing! :)
- canucker2016 4y agoNot surprising. Here's my quick criteria for whether I should use a new framework for my app: - look at other apps that are using that framework, esp. the signature/first class app touted as a consumer by that framework - how similar is my app to that signature/first class app? - if my app has similar UX/UI usage then the dev experience will be much smoother/easier/doable i.e. for React Native: does my app behave like Facebook? If not (say, an action game as an obvious typical non-usage scenario), there be dragons... for mature, stable frameworks like native mac OS<=9, macOS, Win32, most GUI apps are straight forward, it's when you push the limits of the UI where things will hit hurdles. So what's the signature/first class app for Flutter Desktop?
- iamsanteri 4y agoThis is exactly why even after I made the decision, I’m still somewhat hesitant on learning Django. With RoR it’s a different story, but Django is a bit weird in this regard (users, references, popular applications).
- mhoad 4y agoProbably this one https://rive.app/ https://rive.app/
- _jezell_ 4y agoI think the guys at Rive would disagree with this sentiment. https://twitter.com/FlutterDev/status/1288494688115126273 https://twitter.com/FlutterDev/status/1288494688115126273
- freedsoftware 4y agoThis article really needed to be longer and have some illustrations. What's the point of publishing an essay about interface design without including any graphics? I'm sympathetic to the points made, but as someone who has not used Flutter, I really do not have a sense of what the tooling and output is like based on this short piece.
- nzoschke 4y agoI LOVE Flutter for a web / iOS / android side project. It's a Spotify music player that turns your device into a jukebox at https://getjukelab.com/ https://getjukelab.com/. As a hobbyist I couldn't imagine getting this far on 3 different platforms if I had to go native. My favorite surprise is how much faster doing dev, deploy and QA on the web target is, vs doing mobile dev and release. I can deploy to the web 5 times a weekend, and batch those up to do monthly mobile releases. I tried Flutter Desktop but hit an immediate show stopper that the flutter Spotify SDK doesn't support it. There's no "Mac Spotify SDK", so it would have to wrap the web one somehow. All the UI bits worked as expected. But watching the trajectory of Flutter and the community over the past couple of years I'm cautiously optimistic it'll get good.
- throwing_darts 4y agoI've written a few Flutter apps. The problem is dart is just not a good language and not something you'd want to use in 2023. The Flutter team should consider unpegging from dart and utilize JavaScript/Typescript, Kotlin, or Swift. We've been telling Dart team our complaints but they have been unaddressed for over 8 years now. At this point, some other thoughts include applying a garbage collection cycle and have them replaced by Carbon team or Golang team. Perhaps get a new product manager, someone that will listen to the grieving (& dying) dart community.
- sngz 4y ago> The Flutter team should consider unpegging from dart and utilize JavaScript/Typescript, Kotlin, or Swift. why would they do that, dart is better than all those languages except for maybe swift.
- c-smile 4y ago2 cents from Sciter developer... For the note: Sciter is an embeddable HTML/CSS/JS UI engine. For desktop and mobiles. By feature set it overlaps 96% with Flutter. It differs in ideology and implementation significantly though. 0. Dart Not clear why Dart is used in Flutter. By architecture and feature set Dart is almost Java. Why the Dart then? My guess is this is an attempt to simply replace Java on Android without changing existing UI paradigms. Yes/No ? 1. Desktop-first vs. Mobile-first development Desktop UI is windowed one - UI may consist of multiple desktop windows: frame, dialog and popup windows. There is also a concept of "kiosk mode" in Desktop UI - single window spanning whole screen. Mobile UI is a windowless thing - UI canvas spans whole device surface. As you see Mobile UI is Desktop UI in Kiosk Mode - Mobile UI is a subset of Desktop UI. Transition of large subset system to superset system is quite hard. On top of my mind I cannot tell any success stories of that. Anyone? 2. Separation of concerns 95% of UI development these days is a Web UI that uses three pillars: HTML as a semantic UI declaration, CSS as a style declaration of UI states and JS as declaration of event flows and UI state transformations. Essentially script is a definition (declaration, again) of flows/routes - how output of one native function is connected with input of other native function. These three pillars, their purposes, are so different that their syntaxes should be different. Attempt to combine all these definition in single language is doomed to fail. If in doubts then look at WPF. 3. Notes on language-behind-UI... If to consider #2 then such simple thing as JavaScript language and VM are quite adequate to the task. Language-behind-UI do not need to be that performant, but it must be flexible. I may express un-popular opinion but language-behind-UI should be typeless. Simply put: don't do ray tracing in language-behind-UI. But! Such a language shall have simple mechanism of adding high performant functions. There are good languages that are specifically designed for performance: C, C++, D, Rust, Zig, WebAssembly, etc. You just need convenient mechanism to expose those functions to runtime of language-behind-UI. Like here: https://gitlab.com/sciter-engine/sciter-js-sdk/-/blob/main/demos/integration/frame.cpp#L8 https://gitlab.com/sciter-engine/sciter-js-sdk/-/blob/main/d... You need JITs, compilation, fat VMs and runtimes, strong types only if your language is the only mean to define algorithms in whole application. But expect that your code will always be sub-optimal - neither enough performant nor super flexible. 4. Conclusion Flutter should be something Sciter-alike :) - use [X]HTML/JSX, CSS and some already well known language-behind-UI. JavaScript is the natural choice. If needed you should be able to use native UI components - like in Sciter you can use existing HWND based and windowless native components inside your UI. It may not follow Web UI model on 100% (that's impossible) but to be conceptually close so developers can reuse their skills. Web UI model is conceptually close to Mobile one - whole applications UI is constrained inside single window.
- anonygler 4y agoIt’s been 5 years since I left my Dart team at Google. Still shocks me how slowly that world moves. There’s just no sense of urgency when AdWords revenue showers you with unlimited sums of money.
- domber 4y agoOk, it's isn't "there" just yet, so what? They are working on it and doing a great job so far. It's not perfect, but nothing is. I has saved me and my team countless months so far in time to ship a truly cross platform product and I'm sure there are many others like us who feel the same.