
Flutter doesn’t need Kotlin (or anything else) - jaxondu
https://medium.com/@lukeaf/flutter-doesnt-need-kotlin-or-anything-else-5773965d5905
======
tobiaswk
I absolutely love Flutter! It feels like what Android development should be
like in todays day.

No XML or descriptive interface mumbo jumbo. You write your interface purely
programmatically and it's easy to read afterwards. It also looks very good and
supports most of Material Design's components. Great built-in library. Dart
has some very neat features. I especially love the handling of asynchronies
operations. Either use promises or the async and await syntax.

~~~
0xFFC
>You write your interface purely programmatically and it's easy to read
afterwards.

Personally, I disagree. For more complex UI, having XML and designer is way
better option than writing UI programmatically.

~~~
pjmlp
Yep, coming from Delphi, C++ Builder, Forms and quite a few good Java layout
designers (Netbeans Matisse), WPF Blend, I never understood what is so cool
about doing UIs by hand.

~~~
sebe
I think the sub second hot reload feature, makes it cool. Have a look at the
"Unified layout" section in [https://hackernoon.com/why-flutter-uses-dart-
dd635a054ebf](https://hackernoon.com/why-flutter-uses-dart-dd635a054ebf) and
or install the flutter plugin in vs code or android studio and have a play.

~~~
pjmlp
Makes it cool, but nothing out of the ordinary for anyone used to other native
GUI development tools, like the ones I referred to.

Here is Interface Builder in 1986,
[https://paulhammant.com/2013/03/28/interface-builders-
altern...](https://paulhammant.com/2013/03/28/interface-builders-alternative-
lisp-timeline/)

------
pjmlp
Actually I think it is more the case of Dart needing Flutter, as its last hope
of getting some kind of relevant adoption outside Googleplex.

~~~
mamcx
Yeah, is sad that React Native/ Flutter/NativeScript can't be used directly
without the JS/Dart non-sense. It kill the "its native" with a poorly
interface.

~~~
hajile
Dart offers the static types and traditional classes of Java with the
closures, first class functions, rapid iteration, and other nice parts of JS.
Dart is a very nice middle ground in my opinion. Dart now supports AOT
compilation too.

Flutter is a lightweight declarative UI on top of Skia with hooks into the
relevant native events. That means it should generally be easier to get good
performance than with React Native (not to mention replacing Android's
horrible UI architecture that seems designed to prevent 60fps from happening).
Once you start talking about going cross-platform, you have to start talking
about compromises. Flutter seems like a very nice compromise when compared to
the alternatives (only thing it's missing is the ability to compile to either
HTML or Canvas).

~~~
mamcx
So, how "easy" is to interface flutter with swift/java/xamarin or similar?

I could live with a "small" dls if is constrained to UI rendering and let me
do the logic on a more native lang...

~~~
hajile
There's been a C dart FFI for years. Communicating with whichever other system
shouldn't be any harder than the next language. None of those would be my
first choice though. The less platform specific code you write, the fewer
platform specific issues you'll be dealing with. Plus xamarin isn't native
anywhere.

With Flutter apps using the AOT, performance should already be good. Here's an
interesting real world comparison between libsass (a C library) and dartsass.

[https://github.com/sass/dart-
sass/blob/master/perf.md](https://github.com/sass/dart-
sass/blob/master/perf.md)

From the Flutter FAQ

[https://flutter.io/faq/#](https://flutter.io/faq/#)

> How does Flutter run my code on Android?

> The engine’s C/C++ code is compiled with Android’s NDK, and any Dart code is
> AOT-compiled into native code. The app runs using the native instruction set
> (no interpreter is involved).

> How does Flutter run my code on iOS?

> The engine’s C/C++ code is compiled with LLVM, and any Dart code is AOT-
> compiled into native code. The app runs using the native instruction set (no
> interpreter is involved).

> Can I access platform services and APIs like sensors and local storage?

> Yes. Flutter gives developers out-of-the-box access to some platform-
> specific services and APIs from the operating system. However, we want to
> avoid the “lowest common denominator” problem with most cross-platform APIs,
> so we do not intend to build cross-platform APIs for all native services and
> APIs.

> A number of platform services and APIs have ready-made packages available in
> the Pub repository. Using an existing package is easy.

> Finally, we encourage developers to use Flutter’s asynchronous message
> passing system to create your own integrations with platform and third-party
> APIs. Developers can expose as much or as little of the platform APIs as
> they need, and build layers of abstractions that are a best fit for their
> project.

------
empath75
An entire article about flutter and I have no idea what it is.

~~~
mraleph
It's a mobile UI framework for creating Android and iOS applications from the
same code base.

Here is a good introductory video:
[https://www.youtube.com/watch?v=fq4N0hgOWzU](https://www.youtube.com/watch?v=fq4N0hgOWzU)

~~~
bringtheaction
Won’t these apps end up looking and feeling like Android apps and be out of
place on iOS?

~~~
mraleph
Flutter has the builtin ability to mimic platform conventions (Android on
Android, iOS on iOS), which includes scrolling, animations, fonts, etc.

If you have an Android phone you can download Flutter Gallery app from Play
Store, go to the menu and flip behavior from Android to iOS. Suddenly you have
an app that behaves like an iOS app. Here is a demo like that from the early
days: [https://youtu.be/Mx-AllVZ1VY?t=11m23s](https://youtu.be/Mx-
AllVZ1VY?t=11m23s)

