Welcome to the Flutter crash course tutorial series. So you heard about Flutter? saw it popping up in the news everyday, and now you want to get a taste of it or get started with it altogether. You have come to the right place.

What is Flutter?

Flutter is hybrid mobile application from Google that lets you develop both Android and iOS application from a single codebase. It is not any regular hybrid framework. Unlike other frameworks, Flutter application compiles down to native platform code, resulting in performance and smoothness that has never been seen from a hybrid framework before. Flutter applications are written in Dart language. Dart is a modern, easy to learn Object Oriented language with simple and clean syntax. Dart is very easy language, if you know Java/Javascript you will breeze through Dart code without any problems. Still if you want to learn Dart before getting stated, I have written a tutorial series Just enough Dart for Flutter.

What makes Flutter different?

Flutter is a reactive framework and compiles down to native platform code. What do I mean by that? Well, Dart being both an interpreted and a compiled language. When you build Flutter applications the Dart code is compiled to talk directly to native platform code unlike other frameworks such as React Native where a JavaScript bridge is involved or Ionic (which renders the complete in a WebView). In React Native the JS code is executed in a different JavaScript thread which then uses a bridge to talk to the main platform thread for requesting and rendering the layout from native platform, Flutter does it differently, Flutter doesn’t use native UI components, it draws everything on its own! Every Flutter app that you build contains a UI engine that draws every pixel on the native canvas of the platform. This makes a huge different in performance, Flutter’s UI rendering is faster than that of React Native and Ionic.

I highly recommend reading this medium article for even more clarity.

If none of this makes sense, don’t worry, you don’t need to know any of this to build great Flutter applications.

Installing Flutter

I won’t bore you by providing installation instructions as the Flutter guys have already done it very nicely.

Install Flutter on Windows.

Install Flutter on MacOS.

Install Flutter on Linux.

Overview of application

We will be developing an application named GitHub search. In this application user can enter a search term and corresponding repositories will be fetched (http) from Github Api. User can select on a single repository to see the details and save the repository in favourites (database).

The complete code for the application we develop will be available at this GitHub Repo.

Overview of this tutorial series

This course is divided in several parts. You are already reading the first part.

In Part 2, you will learn about Flutter UI basics and different types of Widgets available in the SDK.

In Part 3 and 4 you will dive deep into some of the most commonly used widgets provided by Flutter.

In Part 5, you will learn how make lists in Flutter.

In Part 6, you will learn how to make networking calls in Flutter.

In Part 7, you will learn how to store data in SQLite database.

Finally, we will end the series in Part 8 by tying up some loose ends.

This is not a final breakdown, some parts might be dropped and some new ones might be added, so make sure to visit this page once in a while for any updates.