Flutter is a tool that allows building native cross-platform (Android, iOS, Linux, Web, Mac, Windows, Google Fuchsia) apps with one programming language and codebase.
Important is that we build native cross-platform apps. We build real apps, different kinds of apps, which we then distribute through the different platforms.
We use one programming language so that we don't have to learn different programming languages such as one for iOS, one for Android, one for Web, instead, we have one programming language.
So we work on one project, we write our code once and we still get different apps as a result, and that's the cool thing about Flutter.
Without Flutter, we would normally build an iOS app by writing some Swift or Objective C code and using the iOS development environment and for Android, we would be using Java with the Android framework or we would be using Kotlin and also the Android development environment and we would have to learn all these different languages and tools and we would have to write two totally different apps or work in two totally different projects but with Flutter, that's not the case, one programming language, and one codebase.
Flutter is actually a mixture of things and refers to two major things. One is an SDK, a Software Development Kit, we could say a collection of tools that allows you to write one codebase or use one codebase with one programming language.
It gives us a framework, a widget library for that one programming language which is called Dart which we can use to build beautiful Flutter apps.
It gives us an extensive collection of reusable user interfaces building blocks so-called widgets.
So these are things like buttons, tabs, text inputs, dropdowns. We can style them and customize them and then we build user interfaces with these tools.
In addition, we get a couple of utility functions and generally, some packages that help us build what users see and what users interact with and then that code which we 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.
Flutter uses a programming language (Dart). Dart is a programming language used for building front-end user interfaces.
It's not limited to building mobile apps, that's just what Flutter uses it for but Dart is independent of Flutter and we can also build web apps with Dart.
Dart is a programming language developed by Google or is being developed by Google.
So Flutter and Dart are not really replacements, instead, both of them work together.
Flutter is a collection of tools and widgets which are implemented using Dart. So that we don't have to reinvent the wheel there but we can write our own Dart code and use these existing widgets in our 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 our requirements.