Building iOS & Android Mobile Apps with Flutter | What is Flutter?

Tuan Sheroz Afridi Meedin
Mr. Meedin
Published in
5 min readOct 17, 2020

Flutter is a tool that allows us to build native cross-platform and that means for iOS and Android apps with the one programming language and codebase.

https://flutter.dev/
https://flutter.dev/

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.

https://play.google.com/store/
https://play.google.com/store/

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.

https://apps.apple.com/
https://apps.apple.com/

So you work on 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.

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 don’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, dropdowns, 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, which 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 that 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 the coming series,

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.

Summary

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.

--

--