Published Nov 13, 2023
Contribute to Docs

Flutter is an open-source framework by Google that allows developers to create an application using only a single codebase and have it run on mobile, desktop, and the web. These kinds of applications are called cross-platform applications. In contrast, applications that are specifically designed for only a single platform, such as an app that is only supposed to run on Apple phones, are called native applications.

The supported platforms that a single Flutter project can run on are:

  • Desktop
    • Linux
    • macOS
    • Windows
  • Mobile
    • Android
    • iOS
  • Web
    • Browsers such as Microsoft Edge, Mozilla Firefox, Google Chrome, etc.

To create a mobile app targeting iOS and Android users, developers typically need to develop two separate apps. One app is designed for iOS using one programming language, and the other is designed for Android using a different programming language. However, with the power of Flutter, developers can create a single app using only one programming language. Furthermore, ensuring parity between the two versions becomes very easy, guaranteeing that the iOS and Android versions of the app have exactly the same features and appearance at any given time.

Flutter apps are powered by the Dart programming language. It is an object-oriented language like Python and JavaScript. In Flutter, everything is created using objects called Widgets. At the highest level of a Flutter app is an App widget, which is composed of screen widgets, which is finally composed of widgets that represent UI elements such as buttons, text, and images.

There are other frameworks like Flutter that are also used to develop cross-platform applications. Some of them are:

Native applications generally offer better performance than cross-platform applications. However, Flutter apps come close to native performance, setting it apart from some other frameworks that don’t achieve native-like performance. What works against Flutter is the typically steeper learning curve. Developers need to learn the Dart language, which is less familiar to many, while other frameworks use more commonly known languages like JavaScript, C#, and so on.

All contributors

Looking to contribute?

Learn More on Codecademy