Flutter Live Recap: #AskFlutter Questions and Answers Part-1

At Flutter Live a lot of things happened and most importantly community got way bigger in a short amount of time.

For me all of the conference was amazing. But one part got my attention more. #AskFlutter section, Wm Leler, and Andrew Brogdon got questions from Twitter and live comment section on Youtube and answered them.

Video starts from Q&A

I am more of a person who learns by reading faster than videos. I thought, since this Q&A was super important and there might be people like me, I decided to write every question and answer down.

When are maps going to be available on Flutter?

The answer is it’s available now. If you go to the flutter plugins page, you will see all the packages built and maintained by the Flutter team and there, you can see a package called google_maps_flutter. If you are curious about what can maps do, this page is the place to visit. In this page, you can see the Google Maps widget and map controllers under the lib directory, also in the android and ios folders you can see the native implementations of Google Maps and bridges for Google Maps SDKs.

There is also an example application available under the flutter samples. Under the sample application, you can see the map markers, the different type of terrain types and all the camera operations.

Maps are also widgets and if you want to implement it, you can simply call GoogleMap widget. When you implement it, you should also implement its one required parameter which is onMapCreated callback and you will be good to go.

// Create map widget.
GoogleMap(
onMapCreated: (controller) {
// Move camera to London.
controller.animateCamera(
CameraUpdate.newLatLng(LatLng(51.5, 0)),
);
}
);

What is the best laptop to develop Flutter applications which is compatible with all software, emulators, and SDKs?

Probably the laptop you have will be sufficient. By open the team doesn’t mean only open source, they mean you should be able to use the machine you have and the tools you already like. You can use IntelliJ IDEA, VSCode and they run on Windows, Linux, MacOS and even Chromebook. If you are going to build and release an iOS application then you need a MacOS device because their toolchain runs on that machine.

Can I use a Java library in Flutter?

Sure. In Flutter, there is a thing called platform channels and it can help you with this. Platform channels is a way for Flutter Dart code to talk to your native APIs or native code. By using these channels, you can use your Java library.

How secure Platform channel is? Is there a chance that other process (even on rooted devices) could “sniff” out the data passed to native OS handlers?

The way those platform channels works is: In your application you have your Flutter application runs on Dart and compiles to native code and run that way. On the side, there is Android code running on JavaVM and iOS running also separately from Dart. For communication between the two of them, there is a memory buffer for the process and what's happening within the process. There is no IPC (Inter Process Communication) required, nobody writes named pipe or named file to the system to talk between two processes where in theory somebody (in theory) find a way to “sniff” the traffic or something. All of them is one process. Therefore we can say that a Flutter application is, in that matter, as safe as an Android or iOS application.

Can I use a third party ad network on my Flutter project?

There are two ways you could do this.
First one is, you can use platform channels to interact with that network’s mobile SDK. So if you want to incorporate with Audience Network, InMobi or something like that.
The other option is, you could use the firebase_admob plugin. Admob will use the native Google SDKs to orchestrate the ads and manage them according to which network shows which ad at the moment.

Can Dart be a standalone programming language?

Dart is a standalone programming language. Within Flutter team, Dart is mostly talked in the scope of mobile application development. But Dart used for implementing web with Angular Dart and it’s all over the place. Google’s pub website uses Dart for the server side. And Iiro Krankka shares Dart code with mobile and web in his inKino application. So it’s a really portable language.

Is there something similar to build flavors in Android?

Yes, you can do build flavors. It’s not really built into it, but there are some companies like AppTree that are creating multiple flavors for each client. They also do it for iOS and web too.

When are you planning to support AR/VR development?

It will take some time. There are some things needs to be supported before that one. Part of the reason for that is Flutter is mostly focused on 2D graphics and for a good AR/VR experience, it’s better to have 3D graphics. You need to be able to have the perspective and stuff like that. It is on the roadmap but not sure when.

Can I integrate my existing Android application in Flutter?

You can and many people have done it. This is something that is worked on at the moment. There are two ways of doing it.

A lot of people with larger applications found ways such as launching a Flutter Activity or Flutter ViewController from Android and iOS respectively.

You can also consider converting the application to be a Flutter application and plugin the native code from both platforms into it. This will be useful especially when you have an iOS and Android application which will have the Flutter code inside of them. This way you can have a real cross-platform solution.

Can you tell us about Flutter origin story?

Flutter started as a quest for speed. Flutter in its very early versions was a very cutdown version of Chrome. Chrome is chopped off from a lot of stuff to see how fast can it be. It had backward capabilities, older standards and all kind of stuff, it wasn’t able to render any web pages. But 20 times faster in benchmarks.

About the language, in the beginning, there was a lot of C++ rendering code. Also, there was a lot of javascript code in it. But at one point, javascript started to have issues and team looked for a new language and found Dart. After that, they wrote more and more Dart code.

Where did “Flutter” name come from?

Google has a cache of names from the companies that they bought. “Flutter” was a small startup bought by Google, product turned down but the name was there and that’s how the name Flutter found.

Can you talk a little bit about the evolution of Dart and how Flutter influenced the Dart 2.0?

There is so much in Dart specifically added for Flutter. Trailing commas, formatting, int to double, also a lot of Flutter specific performance enhancements. There are a lot of changes made in Dart to make Flutter more awesome.

Will Google introduce a certification program, similar to the one that they have for Android?

It’s a really good idea. But it’s going to take a little while.

What are some of the best ways to contribute to Flutter?

There is a contribution guide in the Flutter repository. You can get some issues labeled with easy fix in GitHub and fix them. If you love C++ you can help engine issues, there is also the package ecosystem which is open to contributions too. Besides technical tasks, you can help Flutter to be known by the others by organizing events.

Break

We have answered and covered a lot of questions so far. Let’s have a break for now. We will continue from here.