4 ms·
As always: quoting my comment[0] about flutter: > We really should be trying to use the native GUI toolkit (or cross-platform native UI libraries like libui),
by pcr910303 7y ago
As always: quoting my comment[0] about flutter:
> We really should be trying to use the native GUI toolkit (or cross-platform native UI libraries like libui), not using Flutter-esque libraries that draws everything from scratch.
Coherent UI is a very important point to users IMO. Users can assume that some special feature from App X will also work on App Y.
For example, in macOS Cocoa, textboxes have universal readline-esque keybindings (and is configurable globally) which, as an Emacs user, very, very useful.
Most Mac apps use Cocoa as the GUI toolkit, so basically all kinds of apps can benefit these keybindings.
Another example of this directly benefiting users is the addition of tabs in macOS Sierra.
macOS Sierra added tabs to Cocoa apps, and applications could get the feature without additional modification. I can use tabs in any application, with the same look-and-feel, in all apps.
Stories like these are mostly only macOS; since Windows apps usually just re-invent all kinds of UI elements, while Linux's GUI toolkits are super-fragmented. (GTK vs Qt is one thing, and there are lots of other options!)
Adding Flutter or any other UI library that draws everything from scratch is a bad idea.
[0] https://news.ycombinator.com/item?id=20612195 https://news.ycombinator.com/item?id=20612195
- BoorishBears 7y agoIf you want to make a product, use what ever tool is most productive for you. Unless you're writing an IDE, you're not going to lose users (you care about) over not supporting Emacs bindings. People will put up with a lot of garbage if your product fills a need. And non-native UI is not even inherently garbage, just sub-optimal (and even that depends on the product)
- pcr910303 7y agoWell, just Emacs bindings are not the point; it’s that non-native widgets don’t respect the user’s intent of customizing the whole OS. Let’s take another example: macOS supports Dark Mode from Mojave... and Electron apps usually don’t implement them, or if they do: with a separate toggle. Yeah, these aren’t great deals, but people who care enough try to switch to alternatives. And by using native UIs, you can mitigate your concerns about whether you implemented everything the user expects or not.
- on_and_off 7y agoA mobile example : I know a company that decided to scrape their crossplatform codebase (I can't remember if it was flutter, RN, or whatever else). They had the opportunity to be promoted as app of the day by Apple, which would have been awesome for them. Unfortunately the condition was to ship an apple watch integration. The sdk they were using did not support it.
- listenallyall 7y agoThe most popular apps in the world -- Facebook, Instagram, Twitter, Uber, Line, Airbnb, Snapchat, many many more -- all use completely custom UIs focused on consistentcy across platforms, which they accomplish by purposely not following any individual platform's specs or using platform widgets.
- jurip 7y agoThey also have dozens of developers working on their apps.
- listenallyall 7y agoAnd the OP doesn't, which is why a cross-platform toolset like flutter is a great option in his case.
- pcr910303 7y agoYeah, and they are successful (mostly due to networking effects — all of the apps you’re mentioning have strong network effects) in spite of their app quality. The Facebook app is criticized everywhere, I can’t think of anyone who likes their app. AFAIK AirBnB once used RN but moved to native development, and Twitter use native widgets. Also, don’t forget that they have the resources to develop all of the expected features of native widgets, for example Accessibility. The OP probably doesn’t. And, this is all talking about RN which is actually half native since they use native widgets; Flutter is much worse than this because they draw their own widgets.
- 7y ago
- saagarjha 7y ago> If you want to make a product, use what ever tool is most productive for you. If you’re making a product that other people use, I would caution you against putting their needs on the back burner. It’s very often the case that what’s easier for the developer ends up making a worse product for the people that have to use it. > Unless you're writing an IDE, you're not going to lose users (you care about) over not supporting Emacs bindings. No, the whole point of this feature is that it works outside of an IDE. I don’t even use Emacs and these shortcuts are so ingrained in me that I ended up setting up custom shortcuts to emulate this in the places that wouldn’t support it (where possible, of course…).
- BoorishBears 7y agoI don't see how a comment calling out the fact the most important thing your product should do is "fill a need" is claiming you should put their needs on the back burner. Unless you mean some of their needs. In which case yes, that's my point. If you want a successful product, prioritizing features is very important, and in most contexts, filling your "core need" is going to add a lot more value than a native UI does. >I don’t even use Emacs and these shortcuts are so ingrained in me that I ended up setting up custom shortcuts to emulate this in the places that wouldn’t support it (where possible, of course…). Unless your tool is for a space where a lot of users are going to say stuff like this is a major detractor for your new product (...like an IDE or other developer tool) you're much better off just making your product and validating it. - When you're making a new product, and bootstrapping it like OP describes, your currency is time. Time isn't just money, it's a changing market, it's your own motivation coming and going, your overall situation can change and make working on it untenable. The less time you spend fighting a lack of knowledge the better. A working MVP in Xamarin.Forms in a few weeks > months spent killing the moment for your idea and learning enough iOS and Android to have the base knowledge for a middle of the road native app, is true much more often than people like to admit.
- on_and_off 7y agoYou just have to know that all cross platform toolkits come with lots of drawbacks. Maybe you can live with them, maybe not, it depends a lot on the usecase.