What is Flutter?

Academind by Maximilian Schwarzmüller
A free video tutorial from Academind by Maximilian Schwarzmüller
Online Education
4.7 instructor rating • 26 courses • 1,378,215 students

Lecture description

What is Flutter? What is this technology about and why is it awesome? Learn how Flutter helps you build native iOS and Android apps in this lecture!

Learn more from the full course

Flutter & Dart - The Complete Guide [2021 Edition]

A Complete Guide to the Flutter SDK & Flutter Framework for building native iOS and Android apps

41:37:31 of on-demand video • Updated April 2021

  • Learn Flutter and Dart from the ground up, step-by-step
  • Build engaging native mobile apps for both Android and iOS
  • Use features like Google Maps, the device camera, authentication and much more!
  • Learn how to upload images and how to send manual and automated push notifications
  • Learn all the basics without stopping after them: Dive deeply into Flutter & Dart and become an advanced developer
English So what is Flutter? Flutter is a tool that allows to build native cross-platform and that means for iOS and Android apps with the one programming language and codebase. So let's have a closer look at this nice sentence here. Important is that we build native cross-platform apps, so we build both an iOS app and an Android app. We're not building a web app that runs in the browser, we're not building an app that gets wrapped by native apps, we build real apps, two different kinds of apps in the end for iOS and Android, which you then distribute through the different app stores, so through the Apple App Store and the Google Play store, that's what you get as a result. Now you get there by using one programming language, so that you don't have to learn two different programming languages, one for iOS, one for Android, instead you have one programming language, Dart but I'll come back to that and also one codebase. So you work in one project, you write your code once and you still get two different apps as a result and that's the cool thing about Flutter, you only learn one programming language, you only write your code once and you get two apps. Without Flutter, you would normally build an iOS app by writing some Swift or Objective C code and using the iOS development environment and for Android, you would be using Java with the Android framework or you would be using Koplin and also the Android development environment and you would have to learn all these different languages and tools and you would have to write two totally different apps or work in two totally different projects and with Flutter, that's not the case, one programming language and one codebase. If we have a closer look at Flutter though, it's actually a combination of things, the term Flutter refers to two major things. One is an SDK, a Software Development Kit, you could say a collection of tools that allows you to write one codebase or use one codebase with one programming language because it includes tools to then compile this code, which normally would not run on iOS and Android into native machine code that does run on these platforms because if there would be one programming language that would work on both platforms, we wouldn't need Flutter but there isn't. Now therefore, the one programming language Flutter uses doesn't work on iOS and Android, so it needs to be compiled to native machine code for iOS and native machine code for Android so that we have code that has run on these platforms and that compilation task, along with a couple of other things, that's all part of Flutter but of course, it's not just a collection of tools, it also gives you everything you need to create beautiful applications. It gives you a framework, a widget library for that one programming language which is called Dart which you can use to build beautiful Flutter apps and that's what we will spend the majority of time with of course. It gives you a vast collection of reusable UI building blocks, these so-called widgets, so these are things like buttons, tabs, text inputs, drop downs, you get all of that out of the box. You can style them and customize them and then you build user interfaces with these tools. In addition, you get a couple of utility functions and generally, some packages that help you build what your users see and what your users interact with and then that code which you built with the help of that framework, that is then compiled native machine code with the help of the SDK. So that is what Flutter is. Now as I mentioned, Flutter uses a programming language called Dart. Dart is a programming language which is focused on building front-end user interfaces, front-end apps. It's not limited to building mobile apps, that's just what Flutter uses it for but Dart is independent of Flutter and you can also build web apps with Dart but we'll not focus just on Dart here, we'll focus on Flutter and how it use Dart and Flutter uses Dart mostly for building mobile apps. So it's a programming language built to make it really simple to build front-end user interfaces. It's a programming language which was developed by Google or is developed by Google, just like Flutter, so these are actually two independent teams in Google but of course they're working together to improve each other and therefore, we have a hand in hand solution here and in case you already have some programming experience, it's an object oriented and strongly typed language and its syntax is a bit like a mixture of Javascript, Java, C# but you don't need to know any of these languages and actually, you don't need to know anything about programming to follow along. In this course, I will teach you Dart from scratch along with Flutter, so we'll build Flutter apps and you'll learn Dart and the features you're using there along the way because I think that's the most fun way of learning that programming language and already see nice results, the apps we're building. So Flutter and Dart are not really alternatives, instead they're working together. Flutter builds up on Dart, it's a framework for Dart and Dart actually is the programming language which we're using, Flutter then just is a collection of tools, a set of features, utility functions and these widgets which are implemented using Dart, so that you don't have to reinvent the wheel there but you can write your own Dart code and use these existing widgets in your code so that you don't have to again reinvent how a button should look like and work but use the pre-built button instead and then just customize it to your requirements, that's how this works. And in addition as mentioned, Flutter also gives you that SDK, so all these tools for compiling your code in the end.