Live data from Hacker News

Initial experience creating cross-platform apps with Flutter and Dart

harrischris.com

21–30 of 55 posts

Re: Initial experience creating cross-platform apps with Flutter and Dart

#21

As a native mobile developer of several years, I've always been somewhat skeptical of the various cross-platform solutions that have emerged over the years. The WebView-based solutions weren't fast enough and sometimes behaved differently across devices because of different WebView versions. With React Native, the impression was far better because the performance actually can be quite good. But it's still hard to abs…

In fairness Qt also gets this right: It renders every pixel and it has a fast rendering architecture. Having used Qt, flutter is very attractive to me for the case where you have to work with a team. It can be hard to get together enough people nowadays who will want to work with even a little C++. The Qt libraries make it very easy IMO (most stuff is ref counted) but not everyone is going to buy that.

Qt is one of those things that I've heard of before, but did not know was still used for mobile development today.

The monthly commercial license fee is a bit of a downer though. I feel that a lot of software development agencies (my workplace included) are just not gonna bother with it and just use something free instead.

I agree about the C++ point with you. I have to confess I'm also one of those people who generally want to do things on a higher level. Would definitely give Qt a try if it was free for commercial purposes though.

Re: Initial experience creating cross-platform apps with Flutter and Dart

#22

As a native mobile developer of several years, I've always been somewhat skeptical of the various cross-platform solutions that have emerged over the years. The WebView-based solutions weren't fast enough and sometimes behaved differently across devices because of different WebView versions. With React Native, the impression was far better because the performance actually can be quite good. But it's still hard to abs…

There are pros and cons. One of my big concerns around something like Flutter is accessibility.

When you render everything on your own you lose the ability to hook into system-level frameworks for accessible content discovery. Their FAQ mentions it briefly but looking at the API support seems pretty sparse.

Re: Initial experience creating cross-platform apps with Flutter and Dart

#23
post #17

No. You use native UI widgets or you gtfo. This may seem strange to us Linux folks, who are used to making do with any old UI. But Apple users are UI supertasters. If anything is a tiny bit off -- a bounding box one pixel too short, a response to button click one millisecond too laggy -- Apple users will notice, and Apple users will complain, and it will be reflected in your app's sales/metrics. At least on iOS, it's…

You're insane if you think that most users are like that.

Re: Initial experience creating cross-platform apps with Flutter and Dart

#24
post #17

No. You use native UI widgets or you gtfo. This may seem strange to us Linux folks, who are used to making do with any old UI. But Apple users are UI supertasters. If anything is a tiny bit off -- a bounding box one pixel too short, a response to button click one millisecond too laggy -- Apple users will notice, and Apple users will complain, and it will be reflected in your app's sales/metrics. At least on iOS, it's…

Yeah, Snapchat would have been successful if only they used native widgets...

Re: Initial experience creating cross-platform apps with Flutter and Dart

#25
The thing I want for this kind of tools is to be a TRUE REPLACEMENTE of webviews.

I don't wanna code in JS. No in Dart, but I can accept to use it ONLY for UI rendering. SO I can use F# or Swift or any other language.

ie: I wanna to have a webview-html-css-alike "render screen" and let me use my own language in the back.

Re: Initial experience creating cross-platform apps with Flutter and Dart

#26

As a native mobile developer of several years, I've always been somewhat skeptical of the various cross-platform solutions that have emerged over the years. The WebView-based solutions weren't fast enough and sometimes behaved differently across devices because of different WebView versions. With React Native, the impression was far better because the performance actually can be quite good. But it's still hard to abs…

"Since every pixel on the UI is rendered by the framework"

This is a deal breaker for me. It's not about the ui feeling a bit off - the drawer going over instead of pushing things or some such, it's about losing the integration with the native OS.

For example the android version of the gallery app shown elsewhere doesn't adjust to font size changes (which can be done at the system level), won't make a sound when clicking things if sound on tap is set, has no accessibility support.

Rather then marking the entire word double tapping on a word in an input-text does nothing, long pressing on the input opens a non-native menu with cut/paste/copy while a regular input has share and translate (at least for me).

And this is just a minute of tests, it probably fails to integrate into the larger ecosystem in a gazillion ways - many of them you'll find out when users complain about it once you go into production.

This was tried before (for instance Java's swing vs SWT) it almost always results in eventually outdated slow interfaces that are a pain to migrate to newer technologies.

Re: Initial experience creating cross-platform apps with Flutter and Dart

#27
post #2

> So Flutter is actually pushing pixels itself, sounds strange, but it works The siren song of cross-platform development sounds so sweet to the ears and I've fallen for it quite a few times only to get bitten in the end. Introducing another layer between you and the source has several drawbacks: it's an additional source for bugs, it makes you reliant on the middle man to be timely with updates to keep pace of the n…

Fair points. It's worth stating though that this only matters if you have a requirement to look 100% native. Many apps don't have this requirement whether mobile or desktop and so they may use a web ui. In our case we didn't have the 100% native requirement and used Qt. We still had a really slick user interface, it just wasn't native. Note that our customers are primarily concerned about the functionality of the app…

It's not just about the look, it's about the feel.

From looking at the "gallery app" on android:

Flutter's input-text has their own custom mark text handler - no double tap, long press opens a custom menu that is missing native options (Such as translate text).

Changing the font size in the OS does nothing in the app.

Clicking on buttons doesn't make a tap sound if the "sound on tap" option is set.

I'm guessing no accessibility support - or very poor one.

There's probably many more tiny issues that customer's will complain about when you a product is shipped to production that will make it clear that this isn't a native app.

Re: Initial experience creating cross-platform apps with Flutter and Dart

#28
post #5

I think the article would have been much better if the author had left out the section about RN. Failing that I would have liked to see him dig into why RN was slow for his use case and what he tried to do to fix theses issues. "While it uses the same React paradigm, there’s still a lot of differences.It seems performance is reduced significantly as your application and the react framework is controlling all the high…

>Many RN related performance issues boil down to not being mindful of how javascript interacts with the native bridge.

Yes, but being mindful of this architectural choice doesn't make it go away. It will always have to be worked around, which may add complexity depending on the specifics of the app.

I haven't made my mind up about whether or not to use RN for an actual product. RN has a lot going for it, but this particular architectural choice is a negative in my view.

The other concern I have is the lack of JIT on iOS. Or is that already a thing of the past?

None of what I'm saying should be taken as some sort of firm assertion. My experience with RN is minimal. I'm keeping an open mind.

Re: Initial experience creating cross-platform apps with Flutter and Dart

#30

As a native mobile developer of several years, I've always been somewhat skeptical of the various cross-platform solutions that have emerged over the years. The WebView-based solutions weren't fast enough and sometimes behaved differently across devices because of different WebView versions. With React Native, the impression was far better because the performance actually can be quite good. But it's still hard to abs…

There are pros and cons. One of my big concerns around something like Flutter is accessibility. When you render everything on your own you lose the ability to hook into system-level frameworks for accessible content discovery. Their FAQ mentions it briefly but looking at the API support seems pretty sparse.

At least on Android, it turned out that if you claim that specific portion of the screen is, for example, android.widget.ScrollView, the system believes it. This can be verified with the HierarchyViewer. Some people in Flutter's Gitter group were confused because of this, since they thought Flutter doesn't draw its own widgets. While in fact it was the early accessibility implementation.
Post reply on HN