Detailed analysis of what Google showed at the FlutterLive conference (and what it means for Dart and the world)

    Literally the day before ( UPD while I was writing an article, two days 0_0 passed ), on December 4 in London the FlutterLive conference took place , devoted mainly to the mobile framework Flutter , but not limited to them. What news we were told, and that now is the main vector of development for the Google team, including some thoughts on this subject, you can read below.

    Since we in Wrike are now one of the biggest consumers of Dart (but, as the DartUP conference showed, are not the only ones), we have tried to do for you a detailed analysis of what this announcement means for the entire IT world.

    Spoiler for the seed: soon everything will be Flutter

    - If you do not know what Flutter , Dart is , then you can ask about it in the chat of the Russian-speaking community
    - All reports can be found on YouTube
    - Soon we will see the “ideal client” for everything

    Flutter in release

    Version 1.0 is available for download, and now you can safely roll your applications into the prod, without fear that they will break. Of course, before the release, the breaking changes were not very much, but nevertheless: the number “1” at the beginning of the version still gives more confidence in the future. Of course, the release was pretty much expected, because lately the commits to the dev branch have been flying like crazy, but still nice. What was added to the main version, besides stability?

    Some statistics about Flutter:
    - 200+ million users of Flutter applications
    - 250 thousand developers (since beta)
    - 3000 apps on the Play Store
    - the 34th most popular on GitHub

    • Optimized (pixel-perfect) iOS support
      Before the public release, the Flutter team focused mainly on material-design widgets, which is understandable in principle. But the existing Cupertino widgets have been updated and added to the release, so now there is no lag. I can recommend to look at this repository . It recreated the iOS settings page, and, to be honest, it is very difficult to distinguish from the native.
    • Ability to add to existing applications
      Over the years, a huge number of applications have accumulated in the AppStore & PlayStore. And, most likely, you don’t want to completely rewrite your successfully working solution into “another trendy framework”. But with the help of Flutter, you can combine approaches to the development of your existing application and all the advantages of a modern approach. Read more about how to do this here .
    • Platform views
      In Flutter 1.0 you can combine flutter view and native view, now active work is being done to add support for such things as:
    • The
      webview_flutter web browser now uses the Platform view as a widget.
    • Google Maps
      google_maps_flutter also uses the Platform view as a widget.
    • Localization (internationalization) in 50 languages
      Flutter interface now supports localization with support for 50 languages. You can start exploring this wealth from here .

    What can be done with Flutter

    In fact, almost everything! Well, if not, very much. To demonstrate the full capabilities of the framework, the History of Everything application ( PlayStore , AppStore ) was shown at the conference .

    According to the guys, this project was done by 3 people part time for 3 months. Given the abundance of animations - it looks very cool. Of course, skeptics may notice that it is good to show such things on a top phone, but what about the owners of not the most powerful devices? Well, at the conference it was shown that even on the iPhone of 2013, the application runs and works quite well. We hope that the source code of this application will be open, and we will see how it is done.

    What else?

    • Designers
      2Dimensions , a company specializing in the development of 2d games, and actively interested in Flutter, released the free animation editor Flare , which allows you to do very cool stuff. And at the same time it works great with Flutter, the people in the hall just squealed with delight from the demo that was shown on this report.
    • CI / CD
      Nevercode , a tool for cloud CI / CD also announced support for Flutter. They announced the new Codemagic tool (Beta) , specially created for Flutter, and with one click helps to set up an assembly system from your project. On the demo they showed that it’s enough to link GitHub, and specify the repository, after that you will get a working CI system.
    • Payment
      Square , a company that makes cashless payment terminals, has released a new SDK kit with support for Flutter. Yes, in our country this system is not very popular (well, what’s really there, it doesn’t work at all), but for America it’s quite a convenient thing.

    Everything is Flutter

    Initially, Flutter was conceived as a cross-platform framework, but these platforms were, of course, mobile. But, as it turns out, this is not all.
    In addition to the exotic, like RaspBerry Pi, the framework swings at world domination:

    Flutter desktop

    Yes, Flutter has already been launched on operating systems! Of course, for now these are only prototypes, but it looks like embedding in Windows, MacOS, and Linux is not far off. And this will give a great boost to the dev experience, because why wait until the long emulator starts, if you can just run the program on the desktop. And of course, parallels with Electron immediately come to the fore . It is too early to compare, but purely speculative, what we have:

    • no need to carry a huge Chrome runtime
    • No need to spend time parsing JS, CSS, HTML
    • everything compiles into native (binary) code, thanks to AoT compilation, which means quickly
    • total freedom in displaying content

    What will happen in the end - we'll see.

    Hummingbird (Flutter for Web)

    The biggest surprise of this conference is the project to launch Flutter on the Web.

    What kind of animal is it and what is it eaten with? As follows from this article, the team decided to take all the advantages of Dart as a language for Web development: effective compilation in JS, and, of course, interop with him, to reuse a huge number of libraries. However, not everything is so smooth: if reusing the business logic of building widgets for the Web is not that difficult, then there may be problems with drawing:

    The demo application on Hummingbird

    Now the team is experimenting with two ways:

    Personally, the second way seems more promising to me, but, of course, it is the most unreliable in terms of browser compatibility. However, in the wake of the news that IE is leaving us, it might not be so bad. You can read more about the problems in the article, and the team committed to the fact that at the upcoming Google IO we will hear more news.

    What does all of this mean?

    And now some thoughts on the topic. In general, what is Flutter for? Rather, not so: why does it cause so much controversy among mobile developers? Well, first, as in any professional environment, people do not accept everything new, no matter what it is. And secondly, the main concerns are approximately as follows:

    • You can not hope for Google. How to open - and close
    • never this craft will not replace the native developer, I can write anything, but not something that the authors of the framework will allow me
    • it's all slow, uncomfortable etc

    Well, let's go in order. What about the impermanence of big IT giants. Yes, that's it. But there is one thing - Flutter is completely open-source, all the code is on GitHub, and under an open source license. So even if Google decides to close it, the community can always continue development.

    An amusing fact: the main manager of the language Dart and all of Flutter Tim Sneath before that was mainly ... Silverlight. Here is a wonderful post about the release . I recommend everyone to read, remember past years.

    In occasion of that, what for is it for native developers? If you are Senior Vice President iOS Architect , then it is not needed. Well seriously, you will be able to write the application natively faster and better. But only one . And under one platform. And what if I, as a business, do not need super-mega features? I need to do everything quickly, relatively reliably, and cheaply. And here, why not think about Flutter?

    For example, I’m not a mobile developer at all, but in general, I’m embarrassed to admit, a fender. And without special knowledge I wrote an application for two platforms and released it in the Store. And earned money (unfortunately, no). So, according to the sensations, in the world most requests for mobile applications are just that - simple, but with a competitive advantage in the form of development speed.

    Well, in the end, why not treat Flutter as a tool for rapid UI prototyping?

    A little about cross-platform and trends. As a conclusion

    Flutter is already inexorably gaining momentum. How to treat it - everyone's business. However, now, in the age of customer-oriented services, being able to quickly create client applications is the key to a successful business. This is indicated by HYIP around JavaScript as a platform. However, JS has one big drawback - the language is there, but there is no platform. Too much pluralism of client decisions is becoming a complex and large colossus, which requires a very wide erudition. Here and WebPack a spirit and ReactNative launch, and about an abundance of Web frameworks jokes go for a long time.

    If there was a way in the world to create applications for all platforms without much difficulty, while re-using the code between all devices as much as possible, this would be a winner. And it looks like we have a challenger.

    Also popular now: