My penny worth view on Flutter development (and Dart)

450 views
Skip to first unread message

taylo...@gmail.com

unread,
Feb 15, 2017, 4:31:14 AM2/15/17
to Flutter Dev
I have noticed Dart a few years back and even did a CodeLab in my city on Dart and wrote two articles about Dart in SitePoint. 

I love the simplicity and relatively low learning curve offered by Dart. But I am not very happy with the following:

No IDE (free and usable). Google used to deploy Dart IDE but abandoned and encouraged all to use commercial products. I strongly disagree on this approach. As a new language, purely relying on 3rd parties' IDE support is not a good idea. 

Also, I think the current way of "designing" a UI with Flutter is too troublesome. Is there an intuitive way (like what we see in Andriod Studio) that helps the developer to create the UI in a WYSIWYG manner?

Even better, can we have a separation between presentation (the UI) and the control? 

For example, in my development with Borland C++ Builder and Delphi days, I am happy and comfortable with create the UI (and the UI is saved as a FRM file) and the relevant cpp/pas files. Can we have a similar approach in Flutter development? 

Michael Thomsen

unread,
Feb 15, 2017, 4:40:06 AM2/15/17
to taylo...@gmail.com, Flutter Dev
Regarding the IDE part, we do have a free IDE option for Flutter: IntelliJ IDEA Community edition. You can download it from here. After install, you add the Dart and Flutter plugins as per the setup instructions.

It supports all major Flutter developer use cases, incl. editing with full analysis and code completion, hot reload of changes, and full debugging. See the docs for details.

I'd love to hear feedback on that option.


--
You received this message because you are subscribed to the Google Groups "Flutter Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to flutter-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Adam Barth

unread,
Feb 15, 2017, 4:48:38 AM2/15/17
to taylo...@gmail.com, Flutter Dev
On Wed, Feb 15, 2017 at 1:31 AM <taylo...@gmail.com> wrote:
I have noticed Dart a few years back and even did a CodeLab in my city on Dart and wrote two articles about Dart in SitePoint. 

I love the simplicity and relatively low learning curve offered by Dart.

Thanks!
 
But I am not very happy with the following:

No IDE (free and usable). Google used to deploy Dart IDE but abandoned and encouraged all to use commercial products. I strongly disagree on this approach. As a new language, purely relying on 3rd parties' IDE support is not a good idea.

We currently support the IntelliJ IDE:


The community edition (which I use) is free:


Several people on the team use emacs as their IDE.  Obviously the experience in IntelliJ and emacs is quite different, but you're also welcome to use any editor you like with our command line tools.  (I also use that workflow periodically to make sure it's of high quality.)

Also, I think the current way of "designing" a UI with Flutter is too troublesome. Is there an intuitive way (like what we see in Andriod Studio) that helps the developer to create the UI in a WYSIWYG manner?

We've talked on-and-off about building a WYSIWYG editor.  It's something we might do in the future.  However, I find the experience of hacking together build functions with hot reload is pretty gratifying, personally.  The other thing I like about our current approach is that there isn't the "cliff" you get with WYSIWYG editors where you inevitably need to dive into the real code to finish the job.

Even better, can we have a separation between presentation (the UI) and the control?

You can certainly adopt that style with your widgets if you choose.  We've been slowly gravitating more towards that model over time (e.g., with TabController and ScrollController), but we haven't adopted as rigid a separation as you get with, for example, MVC frameworks.

I'd recommend the practice of separating out control widgets from presentation widgets.  The fact that they're both able to inherit from the same base class (Widget) gives you more flexibility.  What you do with that flexibility is up to you.  I can certainly imagine a large team might want to apply more rigor to that separation whereas smaller projects might value the flexibility.  I definitely value the flexibility when writing simple apps.

For example, in my development with Borland C++ Builder and Delphi days, I am happy and comfortable with create the UI (and the UI is saved as a FRM file) and the relevant cpp/pas files. Can we have a similar approach in Flutter development?

We've taken the approach of using the same language for tree construction and for the rest of the app.  I agree there's some downsides to that approach (e.g., the language is more verbose than necessary when building trees), but the upsides are tremendous.  As template languages evolve, then tend to grow all the facilities of general purpose languages (e.g., conditionals, loops, subroutines, inheritance), but they often end up in an awkward place because they try to jam all that functionality into a structure originally designed only for declaration (I'm looking at you XSTL).  Using a general-purpose language for tree construction leapfrogs all that zig-zag evolution and arrives immediately at the end-point, which is a fully expressive, powerful language for tree construction.

Adam

Taylor Ren

unread,
Feb 16, 2017, 7:47:17 AM2/16/17
to Flutter Dev
Thanks for the feedback!

I have cloned the below community repo but don't know what to do next... Can't find an executable...

seb mitchell

unread,
Feb 16, 2017, 8:03:18 AM2/16/17
to Flutter Dev
When I go to the other link https://flutter.io/intellij-setup/
I get the download page for Free/Community edition and the 30 day free trail Ultimate edition.
https://www.jetbrains.com/idea/download/
Reply all
Reply to author
Forward
0 new messages