7 ms·
I want to love Flutter. But once looking at it, it's a no go. It's the new flash. Really, you cannot copy the text anymore. React native is my goto solution now
by kureikain 6y ago
I want to love Flutter. But once looking at it, it's a no go. It's the new flash. Really, you cannot copy the text anymore. React native is my goto solution now.
- kevincox 6y agoYup. I would also like to open links in new tabs, view images, copy links, search on page, use browser extensions... I can see it being useful for games and similar where there isn't really any UI but even then I would want dialogs and similar to use regular text that I can copy. I am definitely not looking forward to flutter on the web. I foresee a lot of websites that I will need to avoid.
- pieno 6y agoBut do you really need that as a requirement across the boars for all apps? How many times have you wanted to save an image or copy text from a UI element in a native app? (eg. a save icon and “Save” on a button) How many times have you been frustrated in a web app that when you search using the browser you are getting results from UI elements or “app chrome” instead of the actual content that the web app is displaying? Isn’t it enough to have some fields with content a user actually would want to copy/search, which would be set based on the component type you are using and can be overridden per element if needed? The only thing I do get is that you’d want open in new tab and copyable links. However, that’s hard from a developer perspective as you have to make sure you create links that store all data needed to rebuild the same UI in the same “conceptual” context but a different underlying data context (logged in user may be different, data may have changed so some saved context has become stale). You’ll likely end up spending an awful lot of time to cater for all the unexpected things that may happen when someone just clicks a link copied from the address bar or a link by another user 2 days before, that may have been the result of that second user clicking through 10 levels deep in your app with all sorts of filters and options based on the state of data at that exact time two days before the first user clicks the link. Obviously you can’t show them the data from two days ago, but what if the data is still there but the path to get there is different? Does it conceptually still make sense to show the data and perhaps some breadcrumbs showing the new path? Or should you just say sorry that data isn’t here anymore? That depends entirely on what the data is and what you’re users are trying to do, so you can’t build one-size-fits-all technical solutions for this (if that were even possible). How are you ever going to reliably rebuild the UI and context that the first user intended to share by copying the link without spending huge amounts of time? That requires actual business logic and functional design. For a lot of apps, it may make more sense to just have a share button in some places where you actually and intentionally support this (and where it will be actually used by a substantial number of users). Less time spent on developing things that are hugely complex and very little used (on average per state for ALL your different UI states that you have links to somewhere in the app, even if it’s a typical line-of-business master-detail form with some filters for the master list and a details segment with a dialog box or expanded element showing additional details of a certain property).
- kevincox 6y ago> But do you really need that as a requirement across the boars for all apps? No, there are a few exceptions, but mostly yes. And I'm sure more than just the exceptions will use Flutter which is why I'm not looking forward to it. > How many times have you wanted to save an image or copy text from a UI element in a native app? Often. I mean not necessarily from a UI element but a lot of the time I want to get an image from a native app and can't. > How many times have you been frustrated in a web app that when you search using the browser you are getting results from UI elements or “app chrome” instead of the actual content that the web app is displaying? Almost never. There are rarely many extra results. In fact I already am bothered far more often when websites hijack Ctrl-F (I do not understand why browsers allow this) and fail to search the entire page. With flutter this will become the norm and I am not looking forward to it. > Isn’t it enough to have some fields with content a user actually would want to copy/search No, it isn't. I regularly copy things that people didn't expect. If it is just to send someone instructions how to use the app. In fact Android has automatic copy based on OCR from the app switcher and I use that a couple of times a day. There is already too much uncopyable text around. For example all messaging apps on android appear to only support copying the full message. This is what happens when you let people mess with standard UX patterns, they break them! > You’ll likely end up spending an awful lot of time to cater for all the unexpected things that may happen when someone just clicks a link copied from the address bar Good! I love apps with great links. It makes them so much easier to use. I don't need to go through their custom navigation to get to my favourite pages. I can use the browser navigation that I already know and love. Also I can share links to my friends! Maybe I can help people use the app better! You just described a bunch of problems that I already have! Especially on mobile devices. This is why I hope that Flutter on web doesn't take off. We will be making all of those annoyances more common! You seem to think that you can predict all of my use cases and provide the share button manually right when I need it. However product developers on a time crunch often miss or skip use cases so it is much better to have supported by default (like text find/copy that can be disabled) than hope that a developer will think, and find time, to implement them. And if URLs encourage people to make it possible to save and share the state of their app then I think that is a good thing!
- merrvk 6y agoYeah I feel the same, love the idea but I’m never going to be able to convince a team to drop TS for dart..
- anchorlink 6y agoYou (and your team) would be surprised at how performant and well designed dart is https://dart.dev/samples https://dart.dev/samples. Not to mention the ability to use flutter and target multiple platforms.
- tvolkert 6y agoFlutter team member here. In Flutter, the developer consciously decides which text should be selectable (and thus copy/paste'able), so while it's true that text is not inherently selectable in a Flutter app, text that the app developer decided to make selectable will be.
- selykg 6y agoThis sounds awful. Like some sort of bullshit DRM in a way. Now I'm thinking of all the ways I could get screwed here. * Not being able to copy transactions from my bank account * Not being able to easily send text to a read-later service (not sure if this necessarily depends on selectable text, but who knows, maybe selectable means the text isn't visible to these services now) * Not being able to easily copy something that needs entering into another page This reminds of sites that try really hard to NOT allow password managers, or even allowing pasting of text into form fields. Pass.
- fastball 6y agoYou know devs can already make text not selectable on the web, right?
- selykg 6y agoWas not aware of that, thanks for letting me know. In either case, it's a dick move and shouldn't be encouraged.
- catmanjan 6y agoFlutter should pick sensible defaults, in this case most agree that text should be selectable
- capableweb 6y agoFlutter: defaults to unselectable Web: defaults to selectable Flutter on Web: defaults to Flutter, not Web
- deleted 6y ago[deleted]
- eulers_secret 6y ago> you cannot copy the text anymore. Isn't this a feature? Having text easy to copy and paste is a copyright problem for many sites. Same with being able to save full-resolution images. It's pretty common to see a copy/paste in forum comments to get around a paywall. IMO either this or some other webassembly view is the future, simply because it's great DRM. Sure, you can circumvent it, but most people cannot.
- whalesalad 6y agoInteresting rationalization. Don’t you think copying text is the norm and not the exception?
- eulers_secret 6y agoI do think it's the norm, and very much dislike this trend. I should make my position more clear: I hate this stuff with a passion. But, big business wants better content protection, and big money always gets what it wants - very few exceptions there. I wish we could do something as technologists who want to keep these features of the web; but against trillion dollar companies I know who I'd bet for...
- whalesalad 6y agoWith that attitude they will continue to win!
- ttt0 6y agoIt's the same argument as with DRM. I can just screenshot the text. It doesn't solve anything and only makes it painful for the average user.
- okamiueru 6y agoI would expect you to have come from a react background then? When evaluating technologies 1.5 years ago for the company I work at, I took a good look at comparing both react native, as well as flutter, and we decided on flutter. Now, out of the many considerations we had, in this process, "cannot copy the text" is... well, I have no idea what you are talking about. Are you referring to not being able to do this in a EditableText widget, and if so, have to tried a `TextField` with `enableInteractiveSelection: true`? I mean, there should be hugely more important development concerns when evaluating these things, than... a brief rejection based on something as trivial as that. Then again, I won't presume to know your situation or the criteria you had. But it does strike me as a bit... shallow reasoning. I can say, that for our case, the dependency hell that you more easily get with React Native was what put me off completely.
- deleted 6y ago[deleted]
- kroltan 6y agoLooks like a very developer/product-owner-sided opinion, not being able to select text and other "trivial" things are what makes software tolerable and actually usable, as listed by sibling post by kevincox, I'll quote: > Yup. I would also like to open links in new tabs, view images, copy links, search on page, use browser extensions... Throwing away all platform conventions is a very heavy-handed and user-unfriendly way of bringing about portability. Another triviality, for example is the behaviour of scroll chaining as compared to my browser: In Flutter, as soon as the inner scrollable hits its boundary, the outer scrollable takes over, while the expected behaviour for me would be for the outer scroll to not move until I reposition the mouse. It's exactly the same as Microsoft's Windows 8 fiasco, by unifying the experience across platforms every one of them felt broken and contrived, and this effect is even more notable if your application deals with a more diverse user-platform ecosystem. Your app will be the odd one out that works strangely compared to everything else in every system.
- okamiueru 6y agoI do appreciate your point of view on this, and I hope I did not come across as dismissive of your choice. If it was a thorough evaluation of the capabilities, and it did not seem able to provide the user interactions you needed, I'm sure that is then a reasonable enough basis. My knee-jerk reaction however, was to think this might have been made without properly evaluating the capabilities of the platform. If I head over to https://gallery.flutter.dev/#/crane https://gallery.flutter.dev/#/crane, I am annoyed by how "app-like" it feels. I'm in a browser, I should be able to select tings. Clicking and dragging isn't supposed to scroll, it's supposed to select. It feels all wrong. But then again, this was mostly when coming at it from a "this is a website" approach. If the use case is to develop an app, then the conventions used have not felt weird to me.
- neurostimulant 6y agoWould adblockers work on these kind of webapps? Adblocker typically look for specific piece of js files and DOM nodes to block ads, but Flutter web doesn't really work like that, no?