Live data from Hacker News

Exploring Flutter for Cross-Platform Mobile Development

sethlopez.me

81–90 of 92 posts

Re: Exploring Flutter for Cross-Platform Mobile Development

#81

This may be off-topic but I'm wondering if there is any chance to see cross platform and cross language toolkits any time soon. Something based on WebAssembly so that we don't have to worry or bash about programming languages. Dart is cool but should we all learn Dart now?

Here is what developers want: Platform independence Choice of tools/language Control of customer data Hardware independence Here is what corporate platform owners (Google, Apple, Microsoft, Amazon etc) want: Platform lockin Minimal support costs (one language, one SDK) Control of customer data Control of the ecosystem Hardware independence A vig on every transaction There are very few intersections between the intere…

> focussed on what customers and developers want

I would hardly agree with the modern web being focused on what "customers" want. How many web pages today hijack scrolling, fill the screen with ads that lie on top of the content and don't scroll with the page, and so on? How much bloat is there? How many MB of unnecessary JS frameworks must be downloaded, often on a metered data plan, to support all of that? The web is a horrible mess these days. It may be a rip-roarin' good time for (some) developers, but it's absolutely awful for users.

Re: Exploring Flutter for Cross-Platform Mobile Development

#82

> If there were dropped frames anywhere, I sure didn’t see them I would be curious to know what terminal the author uses. On my N6P, I can see a lot of dropped frames in the flutter demo app.

I think the Gallery in Google play is outdated, better check the one from the repository to see the current performance

Re: Exploring Flutter for Cross-Platform Mobile Development

#83
post #79

Cross-platform development has been the holy grail for some 30+ years. Alas, I stopped reading the moment I read it is being developed by Google despite the open-source nature. Being developed by Google it means the chances of a project being discontinued are quite high: https://en.wikipedia.org/wiki/Category:Discontinued_Google_s... While other big corporate entities have their own share of shut projects (no project…

>Being developed by Google it means the chances of a project being discontinued are quite high

Do you also avoid Microsoft products and services because of the chances of a project being discontinued are quite high?

https://en.wikipedia.org/wiki/Category:Discontinued_Microsof...

You can also add these to the list:

  Wunderlist
  Sunset
  Games for Windows
  Silverlight
  Zune
  Kin
  XNA
  PlaysForSure
  Flight Sim
  Expression Suite
  SteadyState
  Windows RT
  Windows Phone 7
  Forefront
  Front Page
  Money
Or how about Apple?

https://en.wikipedia.org/wiki/List_of_products_discontinued_....

Re: Exploring Flutter for Cross-Platform Mobile Development

#84

I also played with Flutter recently. Timeline: heard Kotlin announcement at I/O, went through some Kotlin exercises, wanted to compare with Flutter/Dart. Dart feels somewhere in between JavaScript on the one hand and a more-static OO, GC'd lang w/type inference (like Kotlin!) on the other. You can probably look closely at some sample app code and start doing some basic stuff quickly if you've worked much with JS and…

You can also use the Flutter plugin with the free, community edition of IntelliJ or with Webstorm. (But WebStorm does not have any Java or Android support.) Also, the Dart plugin for VS Code is starting to add Flutter support. In that case you'd use the command line for hot reload. - a Googler working on Flutter plugin.

Yes--I should have mentioned I was using free IntelliJ!

Also great re: VS Code!

Re: Exploring Flutter for Cross-Platform Mobile Development

#85

Earlier quoted context omitted.

Here is what developers want: Platform independence Choice of tools/language Control of customer data Hardware independence Here is what corporate platform owners (Google, Apple, Microsoft, Amazon etc) want: Platform lockin Minimal support costs (one language, one SDK) Control of customer data Control of the ecosystem Hardware independence A vig on every transaction There are very few intersections between the intere…

> focussed on what customers and developers want I would hardly agree with the modern web being focused on what "customers" want. How many web pages today hijack scrolling, fill the screen with ads that lie on top of the content and don't scroll with the page, and so on? How much bloat is there? How many MB of unnecessary JS frameworks must be downloaded, often on a metered data plan, to support all of that? The web…

Compared to app platforms, I think it is more open and more focussed on readers and devs. The problems you list are annoyances of some websites, not even the majority. For example they don't apply to the site you are currently on not hard limitations.

In contrast iOS forbids other payment systems (see deliberately limited kindle app) and browser engines. Android forces manufacturers to prominently feature lots of google products.

Re: Exploring Flutter for Cross-Platform Mobile Development

#86
post #42
post #29

I had high hopes for flutter but gave up after a while. It feels like their design meetings were spent arguing about grammar and splitting hairs, rather than thinking about ergonomics and how people would use it. In Flutter, everything is a nested pile of objects with too many APIs to keep track of. Take this example: https://github.com/flutter/flutter/blob/master/examples/stoc... Why do I need to care if something t…

> Why do I need to care if something takes a `child: (single object)` argument or a `children: [LIST of objects]`? The IDE tells you what's needed and the latest version of the plugin automatically adds a list literal and places the cursor inside it: https://groups.google.com/forum/#!topic/flutter-dev/LXafJQqS... Personally, I think it makes sense to differentiate between exactly one and zero or more. > Why do I need…

>The IDE should do that for you.

Fail. IDE dependence is an anti-pattern and a programmer-smell.

Re: Exploring Flutter for Cross-Platform Mobile Development

#87
post #79

Cross-platform development has been the holy grail for some 30+ years. Alas, I stopped reading the moment I read it is being developed by Google despite the open-source nature. Being developed by Google it means the chances of a project being discontinued are quite high: https://en.wikipedia.org/wiki/Category:Discontinued_Google_s... While other big corporate entities have their own share of shut projects (no project…

>Being developed by Google it means the chances of a project being discontinued are quite high Do you also avoid Microsoft products and services because of the chances of a project being discontinued are quite high? https://en.wikipedia.org/wiki/Category:Discontinued_Microsof... You can also add these to the list: Wunderlist Sunset Games for Windows Silverlight Zune Kin XNA PlaysForSure Flight Sim Expression Suite St…

I did say that other corporate entities discontinue products all the time.

I suppose the difference with Google products is that they usually seem "cool" and very promising.

With Microsoft I have no such expectations.

Re: Exploring Flutter for Cross-Platform Mobile Development

#88

>Though Flutter doesn’t use the native UI widgets, it’s a cross-platform framework and has widgets for both Android and iOS. [...] On iOS, the biggest thing that stuck out to me was the scrolling. It didn’t quite feel right because of the physics, but I’m sure that would just require a little tweaking by the Flutter team. Count me a skeptic. This is the same approach taken by Java's Swing (now JavaFX) toolkit and app…

I love how IntelliJ uses it :)

Re: Exploring Flutter for Cross-Platform Mobile Development

#89

>Though Flutter doesn’t use the native UI widgets, it’s a cross-platform framework and has widgets for both Android and iOS. [...] On iOS, the biggest thing that stuck out to me was the scrolling. It didn’t quite feel right because of the physics, but I’m sure that would just require a little tweaking by the Flutter team. Count me a skeptic. This is the same approach taken by Java's Swing (now JavaFX) toolkit and app…

I always liked wxWidgets for that, and other people MFC, but where wxWidgets failed for me was a simple text area editor, which underneath was sending messages to the Windows Control, and in order to retrieve the current line, it had to scan through the whole text buffer over and over... "Leaky abstraction"...

I also was "worried" (more than need to) - how people with disabilities, or special devices (non-standard pointer devices, like artists) would use Qt, as I thought there is no native support.

And yet, I was mistaken. Windows (and other systems) expose an "assistive" layer where you can explain to the underlying windowing system what is each thing that you draw, the text, etc. And Qt solved it.

Once we moved from MFC -> Qt, and removed other uses of wxWidgets, non-ui programmers started adding bits and pieces much easier in Qt (I'm not claiming Qt superiority), because all it took sometimes was to subclass, and repaint something, add button or two and create new control. With MFC that was hard, and with wxWidgets kind of tricky (solutions always ended up being "Windows" specific, not that we cared about Linux/OSX back then).

So that's why I love flutter, and it reminds of Unreal's internal UI used by it's editor.

At work I'm still struggling with GWT, XML ui binder files, and trying to componentize modules. With flutter, Qt, and I guess Unreal's UI it's much easier. Or with JUCE for that matter...

So I'm no longer against "custom" drawn UIs, as long as they expose their contents properly to the OS (and if this matters really).

Sorry for the long rant...

Oh, and I mentioned it someplace else - I love how IntelliJ uses Swing - it's much better from Eclipse (which is trying the exact opposite with it's own platform-"wrapping" ui-kit)... And just 10+ years ago I thought the opposite.

Re: Exploring Flutter for Cross-Platform Mobile Development

#90
post #86
post #42

Earlier quoted context omitted.

> Why do I need to care if something takes a `child: (single object)` argument or a `children: [LIST of objects]`? The IDE tells you what's needed and the latest version of the plugin automatically adds a list literal and places the cursor inside it: https://groups.google.com/forum/#!topic/flutter-dev/LXafJQqS... Personally, I think it makes sense to differentiate between exactly one and zero or more. > Why do I need…

>The IDE should do that for you. Fail. IDE dependence is an anti-pattern and a programmer-smell.

Either the IDE/editor is able to assist you or you have to consult the documentation regularly.

That's just how it is.

JS' standard library, for example, is really tiny but I haven't memorized all of it. If the editor can't clue me in, I have to check the docs.

Post reply on HN