SlideShare a Scribd company logo
Intro to Flutter SDK
The Future of Mobile Development
What is Flutter SDK?
● A cross-platform mobile app SDK for:
○ Android
○ iOS
○ Fuchsia
● Uses Dart Language
● Rich Widget Catalog
● Modern, Reactive Framework
Learn more:
www.flutter.dev
Hold on… what is Dart?
BEFORE DART AFTER LEARNING DART
What is Dart?
● Object Oriented Language
● C-Style Syntax
● Statically Typed
● Runtime Environments
● Supports JIT and AOT compilation
● Built-in Libraries
Learn more:
www.dart.dev
Dart Basics
Dart Pad Editor:
dartpad.dartlang.org
● Functions
● Variables & Values
● Types
● Classes
Ok, Back to Flutter SDK...
Why Flutter SDK?
● Beautiful UIs that is consistent across
devices and manufacturers
● High-performance apps that feel natural
on different platforms
● Up to 120fps
● Fast development - Hot Reload
Learn more:
www.flutter.dev
Platform SDKs (Android and iOS)
Platform
Reactive Web Frameworks
Platform
Flutter SDK
Platform
Flutter SDK Concepts
Widgets Rendering
Everything is a Widget!
What are Widgets?
● Building blocks of UI in Flutter
● Even the App itself is a widget
● Advanced widgets are made by combining
basic widgets
● Can represent:
○ UI Element
○ Layout Element
○ New Screens
Widget Tree
BuildContext
- reference to the location of
a Widget within the Widget
Tree structure
- Belongs to one widget
BuildContext Visibility
- ‘Something’ is only visible
within its own
BuildContext or in the
BuildContext of its
parent(s) BuildContext
- An example:
Theme.of(context)
Intro to Flutter SDK
Widgets Catalog
https://flutter.dev/docs/development/ui/widgets
Stateless Widgets
● Immutable
● Once created, it doesn’t
change
Stateless Widgets
● Can pass parameters to
Widgets, but once
applied, it will not
change until the next
build process
Stateless Widgets - Lifecycle
● Initialization
● build()
Stateful Widgets
● Have a “State”
● State - set of data held by a
widget that can change in its
lifetime
Stateful Widgets - State
● State defines the information on how to interact with the
Widget in terms of:
○ Behaviour
○ Layout
● Any changes to State will trigger the Widget to rebuild
● State is associated with BuildContext
● A State is considered mounted only when the State is
associated with the BuildContext
Stateful Widgets - Lifecycle
● initState()
● didChangeDependencies()
● build()
● dispose()
Integration With The Platform
Native Plugins
● Allow access to Native API
○ Bluetooth, geolocation, sharedPrefs, etc.
● Official and Community-driven plugins available
● Still some missing plugins or still in early stage
● Add package if it is available, otherwise, build a custom
plugin
Dependency Management
● Pub package
manager
● Official site
https://pub.dev
● Can use Git repo
for custom
dependencies
Example Package
● Add Package in pubspec.yaml
dependencies:
battery: ^0.3.0+3
● Add import package to Dart file
import 'package:battery/battery.dart';
● Use class from the Imported Package
Battery _battery = Battery();
final int batteryLevel = await _battery.batteryLevel;
Getting Started
Getting Started
● Download installation bundle
● Unzip to desired directory
Getting Started...
● Add flutter/bin to your PATH
● Run Flutter Doctor to check for next steps
● Platform Setup:
○ Android
○ IOS
● Setup your IDE
○ Recommended: Android Studio
○ Install plugins for your IDE
Creating A New Flutter App
● Go to your workspace directory
● Enter the ‘flutter create’ command
● Open the project on the IDE
The Flutter Demo App
Demo - Building Layouts
● Create a simple Flutter Screen
Please download files:
https://bit.ly/2HXShzS
Demo - Building Layouts
Diagram the Layout
Demo - Building Layouts
Title Section
Further diagram the layout by
dividing the section into Columns
and Rows
Demo - Building Layouts
Demo - Building Layouts
Demo - Building Layouts
Button Section
Demo - Building Layouts
Demo - Building Layouts
Body Section
Demo - Building Layouts
● Header Image
Demo - Building Layouts
● Header Image - Adding Images to
your Flutter Project
● Save the images on the assets
directory then edit pubspec.yaml
Demo - Building Layouts
● Header Image - Background Image
Demo - Building Layouts
● Header Image - Avatar
● Adding Image From a URL:
Demo - Building Layouts
● Header Image - Stack Widget
Demo - Building Layouts
Put them all together
Adding Interactivity
Adding Interactivity
● Adding simple interactivity to the
favorite button
Adding Interactivity
Resources
● Flutter Widgets Catalog
https://flutter.dev/docs/development/ui/widgets
● Dart Language Tour
https://dart.dev/guides/language/language-tour
● Effective Dart
https://dart.dev/guides/language/effective-dart
● Flutter Resources
https://digitaljoni.com/resources/flutter/
Cheers! To your Flutter Journey!

More Related Content

PDF
Building beautiful apps using google flutter
PDF
Flutter beyond hello world
PPTX
Flutter
PDF
Build beautiful native apps in record time with flutter
PPTX
What and Why Flutter? What is a Widget in Flutter?
PPTX
INTRODUCTION TO FLUTTER BASICS.pptx
PPTX
Flutter introduction
PPTX
Flutter talkshow
Building beautiful apps using google flutter
Flutter beyond hello world
Flutter
Build beautiful native apps in record time with flutter
What and Why Flutter? What is a Widget in Flutter?
INTRODUCTION TO FLUTTER BASICS.pptx
Flutter introduction
Flutter talkshow

What's hot (20)

PDF
What is flutter and why should i care?
PPTX
Flutter
PPTX
Flutter introduction
PDF
Flutter
PDF
The magic of flutter
PDF
Getting started with flutter
PPTX
Flutter Intro
PPTX
Introduction to Flutter
PPTX
PPTX
Flutter
PPTX
Introduction to Flutter
PDF
INTRODUCTION TO FLUTTER.pdf
PPTX
Dart presentation
PPTX
Flutter workshop
PDF
Hello Flutter
PPTX
Flutter festival - Write your first Flutter application
PDF
Pune Flutter Presents - Flutter 101
PDF
Flutter for web
PDF
Developing Cross platform apps in flutter (Android, iOS, Web)
PPTX
Flutter
What is flutter and why should i care?
Flutter
Flutter introduction
Flutter
The magic of flutter
Getting started with flutter
Flutter Intro
Introduction to Flutter
Flutter
Introduction to Flutter
INTRODUCTION TO FLUTTER.pdf
Dart presentation
Flutter workshop
Hello Flutter
Flutter festival - Write your first Flutter application
Pune Flutter Presents - Flutter 101
Flutter for web
Developing Cross platform apps in flutter (Android, iOS, Web)
Flutter
Ad

Similar to Intro to Flutter SDK (20)

PDF
Cross Platform Mobile Development using Flutter by Wei Meng Lee at Mobile foc...
PPTX
Lecture -Introduction to Flutter and Dart.pptx
PPTX
Flutter presentation for Gujarat University
PDF
Tech winter break - GDG on campus PPT1.pptx.pdf
PPTX
603848771-Lecture-1-Intro-to-Flutter-and-Dart.pptx
PDF
Learn Google Flutter Fast: 65 Example Apps Mark Clow
PPTX
Flutter presentation.pptx
PPTX
Flutter alegria event gdsc pillai college of engineering
PPTX
Flutter Introduction and Architecture
PPTX
GoogleDSC_ GHRCE_ flutter_firebase.pptx
PDF
Flutter tutorial for Beginner Step by Step
PPTX
Exploring-the-World-of-Flutter-Development.pptx
PDF
A Complete Guide to Building Your First App with Flutter
PDF
Developing cross platform apps in Flutter (Android, iOS, and Web)
PPT
UNIT-1 __ Introduction to Flutter.ppt
PDF
GDSC-FlutterBasics.pdf
PPTX
Mobile Application Development class 002
PDF
Flutter study jam 2019
PPTX
Introduction to flutter's basic concepts
PDF
Fluttering
Cross Platform Mobile Development using Flutter by Wei Meng Lee at Mobile foc...
Lecture -Introduction to Flutter and Dart.pptx
Flutter presentation for Gujarat University
Tech winter break - GDG on campus PPT1.pptx.pdf
603848771-Lecture-1-Intro-to-Flutter-and-Dart.pptx
Learn Google Flutter Fast: 65 Example Apps Mark Clow
Flutter presentation.pptx
Flutter alegria event gdsc pillai college of engineering
Flutter Introduction and Architecture
GoogleDSC_ GHRCE_ flutter_firebase.pptx
Flutter tutorial for Beginner Step by Step
Exploring-the-World-of-Flutter-Development.pptx
A Complete Guide to Building Your First App with Flutter
Developing cross platform apps in Flutter (Android, iOS, and Web)
UNIT-1 __ Introduction to Flutter.ppt
GDSC-FlutterBasics.pdf
Mobile Application Development class 002
Flutter study jam 2019
Introduction to flutter's basic concepts
Fluttering
Ad

Recently uploaded (20)

PPTX
Odoo POS Development Services by CandidRoot Solutions
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
System and Network Administration Chapter 2
PPTX
history of c programming in notes for students .pptx
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PPTX
Introduction to Artificial Intelligence
PDF
Cost to Outsource Software Development in 2025
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PPTX
Log360_SIEM_Solutions Overview PPT_Feb 2020.pptx
PDF
top salesforce developer skills in 2025.pdf
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
Product Update: Alluxio AI 3.7 Now with Sub-Millisecond Latency
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Odoo POS Development Services by CandidRoot Solutions
Design an Analysis of Algorithms II-SECS-1021-03
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
System and Network Administration Chapter 2
history of c programming in notes for students .pptx
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Introduction to Artificial Intelligence
Cost to Outsource Software Development in 2025
Navsoft: AI-Powered Business Solutions & Custom Software Development
Log360_SIEM_Solutions Overview PPT_Feb 2020.pptx
top salesforce developer skills in 2025.pdf
PTS Company Brochure 2025 (1).pdf.......
Product Update: Alluxio AI 3.7 Now with Sub-Millisecond Latency
CHAPTER 2 - PM Management and IT Context
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Design an Analysis of Algorithms I-SECS-1021-03
Which alternative to Crystal Reports is best for small or large businesses.pdf
Wondershare Filmora 15 Crack With Activation Key [2025
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Internet Downloader Manager (IDM) Crack 6.42 Build 41

Intro to Flutter SDK

Editor's Notes

  • #3: Android and iOS Fuchsia - Open-source OS by Google… future devices like smartphones, tablets or even laptops will be powered by Fuchsia. Speculated as a ‘re-do’ of Android Dart - easy to learn programming language built by Google
  • #4: Before we dive deep into Flutter… Let’s explore the Dart language
  • #5: Before and After learning dart - more specifically after learning and experiencing Flutter.
  • #6: Easy to Learn Language: Object Oriented Language - most of the time building and organizing codes in objects C-Style Syntax - similar to Java, C, Javascript Statically Typed - variables Runtime Environments: Compiled to machine code Transpiled to Javascript code for web JIT - Just in time compilation for fast development AOT - Ahead of time compilation for fast reliable releases -> compiles to native code Wide range of libraries included in Dart - i.e. JSON convert, crypto, Comes with Pub
  • #7: Functions main() - is the default function that is first executed by Dart Example: myName Variables and Values Everything in Dart is an object Note on Types: Every variable has a type that it can reference Once variable has an associated type, the type cannot be changed Recommended to annotate type on the variables as good coding practice…. But Dart can actually figure it out Why use Types: Performance improved Easier to work on large projects - better idea on the code from another developer Find simple errors Less Unit Testing… no need to check the type of value returned by method Example of Types: String Int Double Dynamic - catch all String Interpolation $name and ${name.length}
  • #9: - Run same UI on multiple platforms
  • #10: The Apple iOS SDK was released in 2008 and the Google Android SDK in 2009. These two SDKs were based on different languages: Objective-C and Java, respectively.
  • #11: Reactive web frameworks like ReactJS (and others) have become popular, mainly because they simplify the creation of web views through the use of programming patterns borrowed from reactive programming. In 2015, React Native was created to bring the many benefits of reactive-style views to mobile apps.
  • #12: Flutter is not a ‘yet another Cross Platform SDK’... it is ‘The Cross Platform SDK’ Engine is shipped in SDK No bridge needed Doesn’t use OEM widgets Directly draws to canvas Ships SDK with the app, no fragmentation or compatibility issues Connects to System Services through plugins
  • #16: In Flutter, almost everything is a Widget. Think of a Widget as a visual component (or a component that interacts with the visual aspect of an application). When you need to build anything that directly or indirectly is in relation with the layout, you are using Widgets.
  • #17: Widgets are organized in tree structure(s). A widget that contains other widgets is called parent Widget (or Widget container). Widgets which are contained in a parent Widget are called children Widgets.
  • #18: In short, think of a BuildContext as the part of Widgets tree where the Widget is attached to this tree. A BuildContext only belongs to one widget. If a widget ‘A’ has children widgets, the BuildContext of widget ‘A’ will become the parent BuildContext of the direct children BuildContexts. Reading this, it is clear that BuildContexts are chained and are composing a tree of BuildContexts (parent-children relationship).
  • #19: From this statement we can derive that from a child BuildContext, it is easily possible to find an ancestor (= parent) Widget.
  • #22: Stateless Widgets do not depend on anything else but their own configuration information, which is provided at time of building it by its direct parent Typical examples of such Widgets could be Text, Row, Column, Container…
  • #23: We can pass some parameters to Stateless Widgets. Parameters might be anything from a decoration, dimensions, or even other widget(s). It does not matter. The only thing which is important is that this configuration, once applied, will not change before the next build process. A stateless widget can only be drawn once when the Widget is loaded/built, which means that the Widget cannot be redrawn based on any events or user actions.
  • #24: The lifecycle of such Stateless widget is straightforward: initialization rendering via build()
  • #25: There are Widgets that will have some data that will change during its lifetime. The set of those data is called a State. These Widgets are called Stateful Widgets. In our example, we have a Widget that adds a Another example of such Widget might be a list of Checkboxes that the user can select or a Button which is disabled depending on a condition.
  • #26: As a State object is associated with a BuildContext, this means that the State object is NOT (directly) accessible through another BuildContext !
  • #27: initState() - first method, maybe overridden with additional initializations. When finished State and context will be available and fully associated didChangeDependencies() - context is now available and this method can be overridden with listeners or other initializations that need the context build() - where the widget is built. This method will be called each time the State object changes dispose() - this method is invoked when the widget is discarded. Override this method if you need to do some cleanup
  • #29: There are plugins that are not available yet or are still in development/preview phase.
  • #30: Ships with “Pub” the dependency manager for Dart Official site is pub.dev Used to add plugins to Flutter applications
  • #31: Ships with “Pub” the dependency manager for Dart Official site is pub.dev Used to add plugins to Flutter applications
  • #35: You can set up a new flutter app via the Android Studio, but the best way to do it is through the command line (CLI)
  • #36: When you create a new app, it will be the demo app that shows the basic capabilities of flutter
  • #40: Name and Email
  • #41: Follow Button
  • #42: Same with the header… divide to Rows and Columns
  • #43: The buttons can be made into Widgets so you DRY
  • #44: Body section is straight forward
  • #45: Uses Stack widget Clip Image Widget for the background CircleAvatar for the profile pic https://raw.githubusercontent.com/flutter/website/master/examples/layout/lakes/step5/images/lake.jpg Image.asset( 'images/lake.jpg', width: 600, height: 240, fit: BoxFit.cover, ),
  • #47: Uses Stack widget Clip Image Widget for the background CircleAvatar for the profile pic https://raw.githubusercontent.com/flutter/website/master/examples/layout/lakes/step5/images/lake.jpg Image.asset( 'images/lake.jpg', width: 600, height: 240, fit: BoxFit.cover, ),
  • #48: Uses Stack widget Clip Image Widget for the background CircleAvatar for the profile pic https://raw.githubusercontent.com/flutter/website/master/examples/layout/lakes/step5/images/lake.jpg Image.asset( 'images/lake.jpg', width: 600, height: 240, fit: BoxFit.cover, ),
  • #49: Uses Stack widget Clip Image Widget for the background CircleAvatar for the profile pic https://raw.githubusercontent.com/flutter/website/master/examples/layout/lakes/step5/images/lake.jpg Image.asset( 'images/lake.jpg', width: 600, height: 240, fit: BoxFit.cover, ),