Dart and Flutter

From time to time I try to learn something new.

Long time ago, I wanted to learn development for Android. I’ve got a book, downloaded an emulator and SDK. But I never suceeded in writting any piece of code, despite being familiar with Java and understanding the architecture, lifecycle and structure of Android apps. Somehow I’ve always gotten a paralisys whenever I started to write for Android.

I never really understood the reasons of this, but the need to put a checkmark on “I can write for Android” never went away. And than I’ve seen an article about new programming language, Dart and application framework, Flutter. Well, I had to download SDKs as well, and install plugin to my IDE (which eventually became incompatible and I’ve ended using VS code).

As for language, if you ever wrote in C# or Java, you can write Dart. The documentation and the internet are full of examples, and the way from nothing to hello world is short. Not Python short, but short nonetheless.

Classes, properties, methods follows regular OO pattern, with a bit of modern syntactic sugar. It’s not hard to start writing Dart, and VS Code plugin with intellisense helps a lot.

As for Flutter, it’s job is to help a developer to create an user interface in simple way. Programmatically, like we do like. Without HTML, XML, JSON or YAML. It’s easy to change properties of elements and see the change. It’s compiling, so there are no cryptic messages when you forgot closing apostrophe somewhere in markup file.

Visual feedback is instant for small changes, I never seen gradle (somewhere under the hood there is compilation to native Android/IOS) work so fast. For a downside, I’ve run into funny bug at a start and was surprised. But I’ve seen fast reaction, workaround, pull requests and I’m sure it’ll be fixed soon.

My conclusion is that both language and framework have a future, are living and have a community. If I’ll have to develop for Android (and may be for IOS), I’ll choose Flutter for a start. In works there is a project to compile Dart to native, so it’ll be even more cross-platform that it’s now.

20 years ago I’ve run into Delphi, which was like Lego for Windows applications with Pascal beneath. As a teenager I’ve grasped it on very intuitive level. Flutter and Dart are very intuitive and easy to get into.

Sometimes this new feels like something old and familiar.