28 Days of Flutter Bootcamp 🕐– Day 1: Introduction and development setup
Tags: android, flutter, development, ios
Published: 2020-07-20 11:53:03

Welcome to the Flutter Bootcamp. This is the fully flutter course for a complete guide to the Flutter SDK and flutter framework with DARK for building a beautiful native Android and iOS application. I am covering all fundamental concepts for flutter development; this becomes the most comprehensive free flutter course.


#### What you will learn?

* The fundamentals of building apps with Flutter and Dart
* Build beautiful, engaging native and fast apps for Android and iOS with one codebase
* Learn the advanced UI with premade flutter widgets and third-party SDK
* Dart programming with the concept of OOPS fundamentals
* All widgets explanation with rich text articles and speed code video
* Create a fully functional app with firebase authentication, firestore and fire storage [with speed code video]
* Advanced features like push notification, google map, device camera, touch authentication and many more
* Deep dive in Crashlytics, Admob, Performance, A/B testing and Remote config


#### What you will need?

* A computer system with admin privileges
* We will use Android studio as a development tool [it is free to use]
* Git, Flutter SDK and Dart SDK
* Have at least 20GB of free space on your hard drive
* This course starts with a very basic level, so no prior programming language experience required


#### What is Flutter?

Flutter is Google’s UI toolkit for building beautiful, natively compiled applications for [mobile](https://flutter.dev/docs), [web](https://flutter.dev/web), and [desktop](https://flutter.dev/desktop)from a single codebase. In this course, you will learn about mobile development.


### Why I choose Flutter for mobile development?

#### Fast Development
![Resource Credits: https://flutter.dev](https://dev-to-uploads.s3.amazonaws.com/i/wusgwm43riji8zsqkpj3.gif)

* Paint your app to life in milliseconds with Stateful Hot Reload. Use a rich set of fully customizable widgets to build native interfaces in minutes.

* Flutter’s hot reload helps you quickly and easily experiment, build UIs, add features, and fix bugs faster. Experience sub-second reload times without losing state on emulators, simulators, and hardware.


#### Expressive and Flexible UI
![Resource Credits: https://flutter.dev](https://dev-to-uploads.s3.amazonaws.com/i/xtuv53lhruj1ft2bysur.gif)

* Quickly ship features with a focus on native end-user experiences. The layered architecture allows for full customization, which results in incredibly fast rendering and expressive and flexible designs.

* Delight your users with Flutter’s built-in beautiful Material Design and Cupertino (iOS-flavour) widgets, rich motion APIs, smooth natural scrolling, and platform awareness.


#### Native Performance
![Resource Credits: https://flutter.dev](https://dev-to-uploads.s3.amazonaws.com/i/10qodayp2oi5spsurhd8.gif)

* Flutter’s widgets incorporate all critical platform differences such as scrolling, navigation, icons and fonts, and your Flutter code is compiled to native ARM machine code using Dart’s native compilers.


## Step by Step walk-throughs

### Flutter Development setup for Windows

#### A. Install Git:

* Download Git from [https://git-scm.com/downloads](https://www.google.com)

![Suchit Khunt](https://dev-to-uploads.s3.amazonaws.com/i/dfcd9019mp18bhroasdw.png)

* Install the downloaded Git setup

![Suchit Khunt](https://dev-to-uploads.s3.amazonaws.com/i/tx3w5ag47msxa4sklvxn.png)

![Suchit Khunt](https://dev-to-uploads.s3.amazonaws.com/i/fzyygjunfstj137bqwgs.png)

![Suchit Khunt](https://dev-to-uploads.s3.amazonaws.com/i/j1qvh0r7w6r76b1ifr7g.png)


#### B. Ready to start with Flutter SDK:

* Download the latest stable release Flutter SDK from [https://flutter.dev/docs/get-started/install/windows](https://flutter.dev/docs/get-started/install/windows)

* Extract the zip file and place the contained flutter in the desired installation location for the Flutter SDK (for example, C:\src\flutter; do not install Flutter in a directory like C:\Program Files\ that requires elevated privileges)

![Suchit Khunt](https://dev-to-uploads.s3.amazonaws.com/i/hnzax8msnqczwgeicdkl.png)

* Update your path (If you wish to run Flutter commands in the regular Windows console, take these steps to add Flutter to the PATH environment variable)

1) From the Start search bar, enter **‘env’** and select **Edit the system environment variables** for your account.

![Suchit Khunt](https://dev-to-uploads.s3.amazonaws.com/i/5miuzf5ctvnfy7nc2ct1.png)

2) In the Advanced tab click on **“Environment Variables…”**

![Suchit Khunt](https://dev-to-uploads.s3.amazonaws.com/i/jyjb4krfh3rcdl8s5cyp.png)

3) Under **User variables check** if there is an entry called **Path**: (select the Path entry and click on Edit)

![Suchit Khunt](https://dev-to-uploads.s3.amazonaws.com/i/3mkutjiaugimh3y9o5xo.png)

4) If **“C:\src\flutter\bin”** does not exist, then click on **New**and add **“C:\src\flutter\bin”**

![Suchit Khunt](https://dev-to-uploads.s3.amazonaws.com/i/mz1pul0gfy4dkaodczg4.png)

5) To check the path variable setup open the command prompt and run **“flutter — version”**

![Suchit Khunt](https://dev-to-uploads.s3.amazonaws.com/i/em8s74g4k0zeh4t0x7th.png)


#### C. Get started with Dark SDK:

* Download the latest stable release version of Dark from [https://dart.dev/tools/sdk/archive](https://dart.dev/tools/sdk/archive)

![Suchit Khunt](https://dev-to-uploads.s3.amazonaws.com/i/6svzzno1oc0s1zeksqeg.png)

* Extract the zip file and place the contained dart-sdk in the desired installation location for the Flutter SDK (for example, C:\Program Files\Dart\dart-SDK)

* Update your path

1) From the Start search bar, enter **‘env’** and select **Edit environment variables** for your account.

2) In the Advanced tab click on **“Environment Variables…”**

3) Under System variables check if there is not an entry called **DARK_SDK**; click on **New…**

![Suchit Khunt](https://dev-to-uploads.s3.amazonaws.com/i/hdd4yro04fj236hukgr3.png)

4) Enter **“DART_SDK”** in Variable name and **“C:\Program Files\Dart\dart-sdk”** in Variable value then click on OK

![Suchit Khunt](https://dev-to-uploads.s3.amazonaws.com/i/0qbthjphadhb2ysom162.png)

5) To check the path variable setup open the command prompt and run **“flutter — version”**

![Suchit Khunt](https://dev-to-uploads.s3.amazonaws.com/i/1r2jf2975k0gtrflfqe4.png)


#### D. Install the Android Studio tools:

* Download the latest version of Android Studio from [https://developer.android.com/studio](https://developer.android.com/studio) and install it. We will set up the Android Emulator later. [At the development time]

![Suchit Khunt](https://dev-to-uploads.s3.amazonaws.com/i/81bhnezcvd84904nq5jq.png)


#### E. Finish the installation by running the command **flutter doctor**:

* From a console window run the command “flutter doctor” to see if there are any platform dependencies you need to complete the setup:

![Suchit Khunt](https://dev-to-uploads.s3.amazonaws.com/i/2i5p73nal9kk3gitmfoa.png) 

Note: You may warning message “! Doctor found issues in 1 category” for “connected device”. Ignore it at this point as we have not set up any physical device or emulator.

Note: To set up the Flutter development on MAC, follow the step describe in [https://flutter.dev/docs/get-started/install/macos](https://flutter.dev/docs/get-started/install/macos). As I don’t have MAC so unable to describe the steps in details but you can follow the step as per the above link to complete the setup on MAC.

***

# [NEXT: Creating a new flutter project and setup physical device and emulator.](https://dev.to/khuntsr/28-days-of-flutter-bootcamp-day-2-creating-a-new-flutter-project-and-setup-physical-device-and-emulator-5cin)