SlideShare a Scribd company logo
Developing Cross-Platform
Apps in Flutter
~ Priyanka Tyagi
“Cross-platform development
is the ability to build and deliver
apps that can run across
multiple device platforms.”
Agenda
1. Challenges
2. How Flutter helps ?
3. What is Flutter ?
4. Cross-platform Flutter project
5. Anatomy of Flutter app
6. Deployment options
Challenges
Cross-platform development is
Hard.
Screen-form factors + Devices + Platforms =
Interesting developers’ life :)
Credits
Hard for Solo developer to reach out to
all platforms
Developing cross platform apps in Flutter (Android, iOS, and Web)
How Flutter helps ?
● Code sharing across multiple platforms
● One code editor for all platforms
● Own widgets, not dependent on OEM Widgets
● Great for Custom designs
● Decent built-in widget library of Material Design and
Cupertino (iOS) widgets
● Code once, Deploy thrice !
What is Flutter ?
● Open-sourced SDK to develop cross-platform
applications (by Google)
● Flutter apps are written in Dart language
● Flutter is a complete framework which provides:
○ UI rendering & Widgets
○ State Management
○ Hardware APIs
○ Navigation
○ Testing
Google Trends link
Popular
cross-platform
solutions
Flutter
community
Stats
● StackOverflow : ~23K questions
● Github issues : ~7.5K open issues
● Github stars : ~74K
● Gitter : ~9K
● Reddit FlutterDev : 20.5K
Source: Google Blog
Native SDKs
Separate apps for
each platform
Platform specific
Widgets
Different
languages
Source: Hackernoon
JS +
WebViews
PhoneGap (Adobe)
Apache Cordova
Ionic
Source: Hackernoon
Reactive Views
React Native
(2015)
Reactive-style
views for mobile
apps
Context switching:
JS realm ⇔ Native
realm Source: Hackernoon
Flutter (2017)
Reactive-style
views
Dart compiles AOT
into native code for
multiple platforms
No JS Bridge
needed
Source: Hackernoon
Cross-platform Flutter Project
Download & Setup Flutter
Source
Choose your environment
Developing cross platform apps in Flutter (Android, iOS, and Web)
Creating Flutter
Project
CLI (Command Line Interface)
Cross-platform Flutter Project Structure
Android
iOS
Shared code
Web
Dependency
management
`pubspec.yaml`
web/index.html
web/index.html (Firebase)
Tutorial
Running Flutter project
flutter run
Android Studio CLI
flutter run -d Chrome
iOS simulator Android emulator Chrome
Anatomy of Flutter App
Scaffold
AppBar
Text
Center
Column
Text Text
FAB
Icon
title
You have pushed the button... Counter
A
B
C
A C B
Stateless Widget
Text Icon Card
Stateful Widget
Checkbox Radio TextField
● Immutable
● Widgets can not be redrawn
● `build()` method is called only once
● Mutable.
● Rebuilds several time over its lifetime
● `build()` method is called multiple
times
● Immutable
● Widgets can not be redrawn
● `build()` method is called only once
● Mutable.
● Rebuilds several time over its lifetime
● `build()` method is called multiple
times
Stateless Widget Stateful Widget
`main.dart`
Developing cross platform apps in Flutter (Android, iOS, and Web)
Unit Testing
Running test:
flutter test
test/widget_test.dart
test/widget_test.dart
Flutter Web : In technical preview
Source: https://flutter.dev/web
Until Sept- 1st week
Updated: Sept- 2nd week
Caveats
● Flutter Web is (~was) a fork of Flutter Repo
● Not all plugins are available for Web in Dart Packages repo: pub like
FlutterFire
● A set of libraries are platform specific
○ dart:html: DOM manipulation for web apps.
○ dart:io: I/O for non-web apps.
Launching URL
Code Organization Handling Unsupported Platforms
Source code
Custom Fonts
● Download font
● `pubspec.yaml`
Using custom font
Developing cross platform apps in Flutter (Android, iOS, and Web)
Developer Tooling
Command Line Tools
● flutter doctor:
○ Checks if your machine has all the needed packages and software to
build flutter apps.
● flutter create:
○ Generates new flutter app
● flutter build:
○ Builds flutter app
● flutter run:
○ Run flutter app on attached device
Available Commands: `flutter help`
Android Studio: Flutter plugin
Android Studio: Live Templates
Flutter Outline Tool
Deploying Flutter Apps
Deploying Flutter Web App
● Generate contents in “build/” directory:
○ `flutter build web`
● Hosting compiled contents:
○ Copy contents from “build/web” directory to
hosting directory “public/”
Deploying Flutter Native Apps
● Manually
● Fastlane (CD) + Travis/Cirrus (CI)
● CodeMagic (CI/CD)
● BitRise (CI/CD)
● CircleCI
Codemagic
(CI/CD)
● Build
● Test
● Deliver
Pricing
Bitrise (CI/CD)
● Build
● Test
● Deliver
Pricing
Exploring Flutter Samples code
flutter create --sample=<id> <your_app_name>
lowercase_with_underscores
Creating app from Flutter samples
How to get sample ids ?
flutter create --list-samples=samples.json
{
"sourcePath": "lib/src/material/switch_list_tile.dart",
"sourceLine": 255,
"serial": "2",
"package": "flutter",
"library": "material",
"element": "SwitchListTile",
"id": "material.SwitchListTile.2",
"file": "material.SwitchListTile.2.dart",
"description": "![Switch list tile semantics
sample](https://flutter.github.io/assets-for-api-docs/assets/mat
erial/switch_list_tile_semantics.png)nnHere is an example of a
custom labeled radio widget, callednLinkedLabelRadio, that
includes an interactive [RichText] widget thatnhandles tap
gestures."
},
Creating app from Flutter sample id
Run "flutter doctor" for information about
installing additional components.
In order to run your sample application,
type:
$ cd svcc19_switch_list_tile
$ flutter run
Your sample application code is in
svcc19_switch_list_tile/lib/main.dart.
flutter create --sample=material.SwitchListTile.2 svcc19_switch_list_tile
1
2 3
Checkout tutorial
Debugger & Profiler
Observatory debugger / profiler
● $ flutter run -d all
An Observatory debugger and profiler on Android SDK built for
x86 is available at: http://127.0.0.1:52118/b2c0_v_ywns=/
An Observatory debugger and profiler on iPhone Xʀ is available
at: http://127.0.0.1:52161/MDl88nhIz78=/
Android emulator observatory debugger/ profiler
iOS simulator observatory debugger/ profiler
Dart DevTools
Flutter Inspector -> More Actions -> Open DevTools
5 months of Flutter...
Check-out
● Flutter-to-fly:
https://flutter-to-fly.firebas
eapp.com/#/
● Github :
https://github.com/ptyagic
odecamp/x-flutter-landingp
age
Contact
● Email:
ptyagicodecamp@gmail.com
● Twitter: @ptyagi13
● Blog:https://priyankatyagi.dev
Source: Designing Cross platform Flutter prototype for
Landing Page (Web-Hummingbird, Android, iOS)
Check-out
● Flutter-to-fly:
https://flutter-to-fly.firebas
eapp.com/#/
● Github :
https://github.com/ptyagic
odecamp/x-flutter-landingp
age
Contact
● Email:
ptyagicodecamp@gmail.com
● Twitter: @ptyagi13
● Blog:https://priyankatyagi.dev
Part 1: Designing Cross platform Flutter prototype
for Landing Page (Web-Hummingbird, Android,
iOS)
Part 2: Making Cross-platform Flutter Landing
Page Responsive (Web-Hummingbird, Android,
iOS)
Part 3: Using Flutter Themes for Cross-platform
Landing Page (Web-Hummingbird, Android, iOS)
Part 4: Implementing Flutter FactsBot using
DialogFlow
Part 5: Migrating to Flutter 1.9: Implementing
Cross-platform Firebase Login in Flutter Apps
Check-out
● Flutter-to-fly:
https://flutter-to-fly.firebas
eapp.com/#/
● Github :
https://github.com/ptyagic
odecamp/x-flutter-landingp
age
Contact
● Email:
ptyagicodecamp@gmail.com
● Twitter: @ptyagi13
● Blog:https://priyankatyagi.dev
Useful links
● Installing Flutter
● Setting up Flutter-Web project
● https://api.flutter.dev/
● Dart Packages for Flutter
● Flutter for Web
● Testing
● Getting started with Custom Fonts
● Google Fonts
● Flutter Inspector
● Declarative UI: https://flutter.dev/docs/get-started/flutter-for/declarative
● Why Dart
● CircleCI setup, Fastlane deployment
Imagery credits
● Android, iOS icons , Web icon, Android Studio icon
● iOS devices, and Android devices
● Visual Studio icon, IntelliJ Studio icon
● Team image, money image
Thank you !

More Related Content

PDF
Developing Cross platform apps in flutter (Android, iOS, Web)
PDF
Cross Platform Mobile Development using Flutter by Wei Meng Lee at Mobile foc...
PPTX
Intro to Flutter SDK
PPTX
Flutter talkshow
PDF
Intro to Flutter
PDF
Google flutter and why does it matter
PDF
[Alexandria Devfest] the magic of flutter
PDF
Flutter bus 2018
Developing Cross platform apps in flutter (Android, iOS, Web)
Cross Platform Mobile Development using Flutter by Wei Meng Lee at Mobile foc...
Intro to Flutter SDK
Flutter talkshow
Intro to Flutter
Google flutter and why does it matter
[Alexandria Devfest] the magic of flutter
Flutter bus 2018

What's hot (20)

PDF
IPhone Web Development With Grails from CodeMash 2009
PPTX
Flutter
PPTX
Flutter festival Info session -2022
PDF
Build beautiful native apps in record time with flutter
PDF
Flutter vs React Native
PPTX
Flutter
PPTX
Flutter not yet another mobile cross-platform framework - i ox-kl19
PPTX
Flutter dart assignment help
PPTX
Flutter
PPTX
Google I/O 2018 Extended, Baghdad - Flutter
PDF
The Magic of flutter Comex oman 2019
PDF
Flutter tutorial for Beginner Step by Step
PDF
Flutter Development Services
PDF
Flutter app
PPTX
A flight with Flutter
PDF
Introduction to Flutter - truly crossplatform, amazingly fast
PDF
Flutter study jam 2019
PDF
Mobile DevOps pipeline using Google Flutter
PPTX
Introduction to flutter's basic concepts
PDF
Getting Started with Cross-Platform Mobile Development with Flutter and Dart
IPhone Web Development With Grails from CodeMash 2009
Flutter
Flutter festival Info session -2022
Build beautiful native apps in record time with flutter
Flutter vs React Native
Flutter
Flutter not yet another mobile cross-platform framework - i ox-kl19
Flutter dart assignment help
Flutter
Google I/O 2018 Extended, Baghdad - Flutter
The Magic of flutter Comex oman 2019
Flutter tutorial for Beginner Step by Step
Flutter Development Services
Flutter app
A flight with Flutter
Introduction to Flutter - truly crossplatform, amazingly fast
Flutter study jam 2019
Mobile DevOps pipeline using Google Flutter
Introduction to flutter's basic concepts
Getting Started with Cross-Platform Mobile Development with Flutter and Dart
Ad

Similar to Developing cross platform apps in Flutter (Android, iOS, and Web) (20)

PPTX
flutter intro.pptx
PDF
#Code2Create:: Introduction to App Development in Flutter with Dart
PDF
The magic of flutter
PPTX
Flutter technology Based on Web Development
PPTX
GoogleDSC_ GHRCE_ flutter_firebase.pptx
PPTX
flutterbootcamp
PPTX
flutter_bootcamp_MUGDSC_Presentation.pptx
PDF
Android Development using Flutter: From fundamentals to advanced
PDF
What is flutter and why should i care?
PPTX
Flutter presentation for Gujarat University
PPTX
Mobile Application Development class 001
PPT
Getting started with android dev and test perspective
PDF
Mobile development with Flutter
PPTX
Flutter alegria event gdsc pillai college of engineering
PDF
Flutter vs React Native | Edureka
PPTX
Hariom_project.pptxjhbyubiyubiyugbybuybybgygy
PDF
Adopting Flutter in Native Mobile Applications
PDF
Flutter App Development Building Cross-Platform Apps.pdf
PPTX
Flutter presentation.pptx
ODP
Android App Development - 01 Introduction
flutter intro.pptx
#Code2Create:: Introduction to App Development in Flutter with Dart
The magic of flutter
Flutter technology Based on Web Development
GoogleDSC_ GHRCE_ flutter_firebase.pptx
flutterbootcamp
flutter_bootcamp_MUGDSC_Presentation.pptx
Android Development using Flutter: From fundamentals to advanced
What is flutter and why should i care?
Flutter presentation for Gujarat University
Mobile Application Development class 001
Getting started with android dev and test perspective
Mobile development with Flutter
Flutter alegria event gdsc pillai college of engineering
Flutter vs React Native | Edureka
Hariom_project.pptxjhbyubiyubiyugbybuybybgygy
Adopting Flutter in Native Mobile Applications
Flutter App Development Building Cross-Platform Apps.pdf
Flutter presentation.pptx
Android App Development - 01 Introduction
Ad

Recently uploaded (20)

PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Modernizing your data center with Dell and AMD
PPTX
Cloud computing and distributed systems.
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
KodekX | Application Modernization Development
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Machine learning based COVID-19 study performance prediction
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
cuic standard and advanced reporting.pdf
PDF
Empathic Computing: Creating Shared Understanding
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
NewMind AI Weekly Chronicles - August'25 Week I
Diabetes mellitus diagnosis method based random forest with bat algorithm
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
20250228 LYD VKU AI Blended-Learning.pptx
Understanding_Digital_Forensics_Presentation.pptx
Modernizing your data center with Dell and AMD
Cloud computing and distributed systems.
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
KodekX | Application Modernization Development
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Machine learning based COVID-19 study performance prediction
Dropbox Q2 2025 Financial Results & Investor Presentation
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Per capita expenditure prediction using model stacking based on satellite ima...
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
cuic standard and advanced reporting.pdf
Empathic Computing: Creating Shared Understanding

Developing cross platform apps in Flutter (Android, iOS, and Web)