Flutter - the new kid on the mobile development block

Flutter is really interesting, but I think another cross platform solution kind of brings up an automatic skeptism in my mind because devs have been trying for 10 years to come up with cross platform solution that’s comparable to “normal” native. Personal experience… My team is moving away from hybrid dev for reason’s too long to list.

1 Like

I was thinking of Swift for iOS and Flutter for Android - as it seems easier/nicer than Kotlin? :lol:

Also with Apple planning on using ARM chips for their desktops, and having universal apps, Swift is even more compelling imo.

Kotlin for Android is really nice. You basically don’t loose any degree of control, and you gain the ability to use a multi-paradigm language. Kotlin really lets you turn the functional dial up. That’s what we chose to write our android app in at work for that reason.

Although, either one is a huge improvement over java since they both have first class functions.

2 Likes

One difference this time that behind flutter is Google so it will have full support from … “father:slight_smile:
And Google will teach army of developers how to adopt new child :slight_smile:

Plan B
Android → Fuschia
Java → Dart/Flutter

2 Likes

curious here if it’s hybrid: phonegap/cordova “webview” style - or hybrid as in react native style?

Ya. It was Ionic. And I don’t mean to trash anyone else work, but it was one of the worst development experiences I have had in my career. Upgrading one plugin would present a serious challenge that would cause our builds to fail (sometimes taking weeks to get up and running).

Getting help was incredibly difficult due to so few people using it and finally, the abstraction level is just too high that it was just too difficult to figure out how the error you are seeing has anything to do with your code.

We did evaluate other hybrid solutions but determine that the degree of control that you get from doing native was a better tradeoff than trying to “bend” a hybrid framework to do what we wanted. We have another department at our company using “hybrid native” via Xamarin and after they described the challenges they had we had determined that native was the best move for us.

3 Likes

I am finger crossing for Flutter, we will see :crossed_fingers:
I was playing long time with Android and did not like at xml layout stuff.

The Airbnb engineering team’s writeup on why they are moving away from React Native is a good read, and I feel that some of their organizational issues would apply to Flutter, especially in a similarly-sized organization:

https://medium.com/airbnb-engineering/building-a-cross-platform-mobile-team-3e1837b40a88

4 Likes

Flutter for web arrived

2 Likes

Open source E-Commerce flutter app. It’s pretty much in active development. Hoping to release it in the app stores in a month.

Flutter Forum is something very similar to Elixir forum.

2 Likes

I’d love to see some in-depth metrics regarding how Flutter performs vs native vs React Native, because the general assumption that React Native performs worse “because JavaScript” is not necessarily correct :stuck_out_tongue:

The early-gen React Native memory benchmark against Swift in this article goes against many common assumptions about React Native/JS performance on mobile: https://medium.com/the-react-native-log/comparing-the-performance-between-native-ios-swift-and-react-native-7b5490d363e2

At my org, we’ve got two Flutter devs who have made some pretty cool, sleek cross-platform bluetooth-enabled apps pretty quickly, so I’m down with the technology, but still… show me the benchmarks :stuck_out_tongue:

I’ve made a couple of CRUD apps with auth with React Native (with Phoenix APIs :D), and I wouldn’t advise anyone without studied JavaScript + React experience to use React Native, as RJS can become a huge mess very quickly

At the end of the day, the best technology for the job is the one you know how to use… as long as you have some Elixir on the backend :wink:

1 Like

Another cons against react native is that you may need to write some native components for both ios and android.

For sure if you need really fast application you will need to go native.
Why Airbnb is Moving Off Of React Native

Airbnb’s switch was a blow to React Native, but in part it was due to engineering management dissatisfaction with JavaScript as a language re: dynamic types, and I imagine from their unwieldy codebase, caused in part by departing developers (my own speculation)

In fact, many implementations of React Native (Instagram, Select) are React Native-in-Native, with RN handling much of the backend communication logic as a layer under natively coded Swift/Java app UIs

Unless your app is a game or is doing complex audio/video manipulation, Flutter or RN will likely be fast enough…

One of the early Flutter demo apps was a 2d game using the sprite widget library. Here’s a short video showing the game: https://www.youtube.com/watch?v=guAbEE3s2Qk
Back in 2017 I tested the game on my Nexus 4 device (released in 2013), and the animation was really smooth, almost as good as on a Galaxy Note 5 at that time. Based on the testing I did Flutter delivers much better performance the ReactNative, since the Dart code in Flutter apps in release mode is ahead-of-time (AOT) compiled into a native, ARM and x86 libraries. The graphics engine is written in C/C++ anyway, the Flutter framework libraries written in Dart are - like the custom app code - AOT compiled into native code.
Based on my experience I doubt that ReactNative can deliver the same kind of performance you can expect from Flutter.
Before choosing Dart to build Flutter, the Flutter team created multiple versions of a mobile app development framework, trying out all the difference approaches (including using JS). They were not happy with the performance, especially when it comes to very fluid UIs, framerates of up to 120fps, and overcoming limitations of the OS rendering engines. When they considered using Dart, the Dart VM team (separate group) offered to add all the features to the VM they were looking for: strong mode = types in Dart, JIT and AOT compilation depending on deployment mode (debug, profile, release). Seeing how quickly the Dart VM team was able to add those features to the Dart language was very impressive.

6 Likes
1 Like

Wait, desktops? I thought they specifically said that Flutter is not being designed for and will not work on desktops? Has that changed? Where’s the docs?

In parallel, the core Flutter project has been making progress to enable desktop-class apps, with input paradigms such as keyboard and mouse, window resizing, and tooling for Chrome OS app development. The exploratory work that we did for embedding Flutter into desktop-class apps running on Windows, Mac and Linux has also graduated into the core Flutter engine.

Not production ready, but the docs are here: Desktop shells · flutter/flutter Wiki · GitHub

3 Likes

Awesome! Thanks for the links @thomasfortes!

1 Like
2 Likes

Are there any good books or video courses on Flutter? It’s a language I wouldn’t mind having a little flutter on :lol:

hint

British informal; a small bet: a flutter on the horses.

2 Likes