SlideShare a Scribd company logo
Why Flutter
Randal L. Schwartz (Dart/Flutter GDE) on 2023-08-17
Why Flutter should be your next UI SDK for all platforms
Overview
• What is Flutter?
• What does Flutter do?
• What experience does a developer need?
• What kinds of apps can we build?
• What makes Flutter unique?
• Why Dart?
• Notable Adopters
The evolution away from vendor lock-in
• Some of us are old enough to remember ancient operating systems…
• … that were provided by the vendor
• … and generally closed source (with a few exceptions)
• Then came the FLOSS revolution: the BSDs and Linux and others
• Customers could
f
ix, extend, and modify the OS, or port it to new hardware
• And share their code freely with others
• But more importantly: write once for Linux, run on extremely varied hardware
• Scaling to meet the needs from single-board micro devices to supercomputers
• Linux became the open-source API for cross-platform portability
The Mobile Story
• For over a decade, the smartphone vendors have been like the early computer vendors
• Phone apps had to be written with:
• vendor-supplied toolchains that varied between platforms
• vendor-chosen languages that varied between platforms
• APIs that varied greatly, even from release to release
• vendor-developed, closed-source widgets and gestures
• Releasing for both iOS and Android required specialized skills, or separate teams
• And never quite looked or acted the same on both platforms
• Then, along came Flutter, and suddenly the game has changed!
Flutter
• Flutter is a mobile app SDK, complete with framework, engine, widgets,
and tools
• Gives developers easy and productive way to build and deploy beautiful
apps
• Currently, in production release for iOS, Android, and web
• And desktop for Mac, Linux, and Windows
• Dart (Flutter’s language) can be used to build web and server applications
• Learn Dart once, develop for eight platforms
What does Flutter do?
• For users:
• Beautiful app UIs come to life
• For developers:
• Lowers the bar to entry for building mobile apps
• Speeds up the development cycle (hot reload, more on that later)
• Reduces the cost and complexity of app production across platforms
• Permits a single mobile app dev team for both iOS and Android
• For designers:
• Helps deliver original design vision without compromises
• Productive prototyping tool (rapid changes without long compile cycle)
What experience does a developer need?
• Flutter uses Dart as the primary development language
• Modern strongly-typed language with familiar constructs:
• Classes, methods, variables
• Complex data structures with generics, type inference, tuples
• Imperative programming (loops, conditionals, pattern matching)
• Functional programming (streams, immutable objects, list comprehensions)
• No prior mobile experience required
• Heck, even yours truly is doing mobile development now!
• Even people with very little programming experience seem to be productive rapidly
What kinds of apps can we build with
f
lutter?
• Optimized for 2D mobile apps that want to run on everything with a display
• Some 3D is being slowly introduced
• Capable of “brand-
f
irst” designs
• Also mimics “stock platform” look and feel
• Full featured apps including native services:
• camera
• geolocation
• network
• storage
• sensors
• bluetooth
• NFC
• and more!
Who makes and uses Flutter?
• Open-source project (hosted on github)
• Originally developed and still heavily supported by Google
• Community contributions as well
• Google uses Flutter to build business-critical apps for iOS and Android:
• Mobile Sales Tool
• Store Manager for Google Shopping Express
• And growing number of internal projects
• Nearly a million apps already deployed by third parties
What makes Flutter unique?
• Flutter does not use WebView or the OEM widgets!
• No penalty crossing between inputs, app code and rendering engine
• Flutter uses Skia from Chrome (and soon, Impeller) to render its own widgets
• The widgets are all written in Dart
• Thin layer of C++ to talk to native APIs, with JNI and FFI support
• Dart code also handles compositing, gestures, animation, frameworks, and so on
• Code is easily inspectable, patchable, extendable
• Cross-platform look and feel easily provided
• or customized per platform for native feel
• Design packages available for Windows, Linux, Mac desktop, and custom
Why Dart?
• Google mobile team chose Dart based on numerous criteria
• Two critical features:
• A JIT-based fast development cycle for shape changing and stateful hot reloads
• AOT compiler that emits ef
f
icient ARM code for fast startup and predictable speed
• Can also re-use most code in Pub (except those that depend on dart:io or dart:html)
• Flutter team has in
f
luenced Dart development
• AOT compiler (produce native binaries more directly)
• Optimizing VM for latency rather than throughput
• Strong mode (sound type system)
Notable Adopters
Summing it up: Why Flutter?
• The advantages of reactive views, with no JavaScript bridge
• Fast, smooth, and predictable; code compiles AOT to native (ARM) code
• The developer has full control over the widgets and layout
• Comes with beautiful, customizable widgets
• Great developer tools, with amazing hot reload
• More performant, more compatibility, more fun
• And, by the way, you can develop for many platforms from one code base
• But that’s insigni
f
icant compared to the other gains!
For more information
• Dart language: dart.dev
• Includes language tour (mandatory!) and library tour (at least skim)
• Flutter framework:
f
lutter.dev
• Tutorials
• Descriptions of widget classes
• Cookbook
• Codelabs
• Full API descriptions
• Support:
f
lutter.dev/community (join Slack and Discord from there)
Recommended YouTube Channels
• Mine, of course: https://www.youtube.com/@RandalOnDartAndFlutter
• Flutter of
f
icial: https://www.youtube.com/@
f
lutterdev
• Flutter Community: https://www.youtube.com/@FlutterCommunity

More Related Content

PPTX
Android simple calculator
PPTX
Mobile Application Testing Training Presentation
PPTX
Exploratory Testing
PPTX
Automation Tools Overview
PPTX
How to Break your App - Best Practices in Mobile App Testing
PPSX
Test Complete
PPTX
Swagger - make your API accessible
PDF
Lect-4: Software Development Life Cycle Model - SPM
Android simple calculator
Mobile Application Testing Training Presentation
Exploratory Testing
Automation Tools Overview
How to Break your App - Best Practices in Mobile App Testing
Test Complete
Swagger - make your API accessible
Lect-4: Software Development Life Cycle Model - SPM

What's hot (20)

PPT
Testes Funcionais
PDF
Arquitetura de informação
PDF
Oracle Application Testing Suite. Competitive Edge
PPTX
Static Testing
PPT
Test case design
PDF
Software Testing Life Cycle (STLC) | Software Testing Tutorial | Edureka
PDF
An Introduction to JUnit 5 and how to use it with Spring boot tests and Mockito
PPT
Testes de Software
PDF
Test plan
PPTX
Presentation on mobile app testing
PDF
Node.js e Express
PPTX
Unity 3D
PPTX
ALM - Testes Exploratórios
PDF
UI & UX DESIGN FOR MOBILE
PDF
Test plan
PPTX
Acceptance testing
PPTX
Tk2323 lecture 1 introduction to mobile application
PPT
Testing Metrics
PPTX
Automated UI Testing
PPTX
Importance of a Test Management Tool for Your Project
Testes Funcionais
Arquitetura de informação
Oracle Application Testing Suite. Competitive Edge
Static Testing
Test case design
Software Testing Life Cycle (STLC) | Software Testing Tutorial | Edureka
An Introduction to JUnit 5 and how to use it with Spring boot tests and Mockito
Testes de Software
Test plan
Presentation on mobile app testing
Node.js e Express
Unity 3D
ALM - Testes Exploratórios
UI & UX DESIGN FOR MOBILE
Test plan
Acceptance testing
Tk2323 lecture 1 introduction to mobile application
Testing Metrics
Automated UI Testing
Importance of a Test Management Tool for Your Project
Ad

Similar to Why Flutter.pdf (20)

PDF
Native mobile application development with Flutter (Dart)
PPTX
Flutter alegria event gdsc pillai college of engineering
PDF
Mobile development with Flutter
PDF
Flutter Development Services
PPTX
Flutter talkshow
PDF
INTRODUCTION TO FLUTTER.pdf
PPTX
Flutter App Development: The Best Framework For Cross-Platform Applications
PPTX
Flutter presentation for Gujarat University
PDF
DSC IIITL Flutter Workshop
PDF
Google flutter app development
PDF
Why The Future of Flutter Will Be Your Next Big Obsession.pdf
PDF
Building beautiful apps using google flutter
PDF
Why is flutter mobile app development mostly recommended for your business
PDF
Flutter App Development- Why Should You Choose It .
PPTX
Flutter presentation.pptx
PPTX
Introduction to flutter's basic concepts
PPTX
603848771-Lecture-1-Intro-to-Flutter-and-Dart.pptx
PDF
Dart Lecture Slides for Beginner level to Pro
PDF
How has the flutter become the game changer in recent years for mobile app de...
PPTX
Mobile Application Development class 001
Native mobile application development with Flutter (Dart)
Flutter alegria event gdsc pillai college of engineering
Mobile development with Flutter
Flutter Development Services
Flutter talkshow
INTRODUCTION TO FLUTTER.pdf
Flutter App Development: The Best Framework For Cross-Platform Applications
Flutter presentation for Gujarat University
DSC IIITL Flutter Workshop
Google flutter app development
Why The Future of Flutter Will Be Your Next Big Obsession.pdf
Building beautiful apps using google flutter
Why is flutter mobile app development mostly recommended for your business
Flutter App Development- Why Should You Choose It .
Flutter presentation.pptx
Introduction to flutter's basic concepts
603848771-Lecture-1-Intro-to-Flutter-and-Dart.pptx
Dart Lecture Slides for Beginner level to Pro
How has the flutter become the game changer in recent years for mobile app de...
Mobile Application Development class 001
Ad

More from Randal Schwartz (9)

PDF
Git: a brief introduction
PDF
Perl best practices v4
PDF
A brief introduction to dart
PDF
My half life with perl
PDF
Intro to git (one hour version)
PDF
Testing scripts
PDF
Introduction to git
ZIP
Introduction to Git
ZIP
Forget The ORM!
Git: a brief introduction
Perl best practices v4
A brief introduction to dart
My half life with perl
Intro to git (one hour version)
Testing scripts
Introduction to git
Introduction to Git
Forget The ORM!

Recently uploaded (20)

PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
KodekX | Application Modernization Development
PPTX
Big Data Technologies - Introduction.pptx
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
cuic standard and advanced reporting.pdf
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
Empathic Computing: Creating Shared Understanding
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Encapsulation theory and applications.pdf
PDF
Electronic commerce courselecture one. Pdf
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Machine learning based COVID-19 study performance prediction
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Mobile App Security Testing_ A Comprehensive Guide.pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
The Rise and Fall of 3GPP – Time for a Sabbatical?
KodekX | Application Modernization Development
Big Data Technologies - Introduction.pptx
Spectral efficient network and resource selection model in 5G networks
cuic standard and advanced reporting.pdf
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Chapter 3 Spatial Domain Image Processing.pdf
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Empathic Computing: Creating Shared Understanding
Reach Out and Touch Someone: Haptics and Empathic Computing
Building Integrated photovoltaic BIPV_UPV.pdf
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Encapsulation theory and applications.pdf
Electronic commerce courselecture one. Pdf
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Machine learning based COVID-19 study performance prediction
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf

Why Flutter.pdf

  • 1. Why Flutter Randal L. Schwartz (Dart/Flutter GDE) on 2023-08-17 Why Flutter should be your next UI SDK for all platforms
  • 2. Overview • What is Flutter? • What does Flutter do? • What experience does a developer need? • What kinds of apps can we build? • What makes Flutter unique? • Why Dart? • Notable Adopters
  • 3. The evolution away from vendor lock-in • Some of us are old enough to remember ancient operating systems… • … that were provided by the vendor • … and generally closed source (with a few exceptions) • Then came the FLOSS revolution: the BSDs and Linux and others • Customers could f ix, extend, and modify the OS, or port it to new hardware • And share their code freely with others • But more importantly: write once for Linux, run on extremely varied hardware • Scaling to meet the needs from single-board micro devices to supercomputers • Linux became the open-source API for cross-platform portability
  • 4. The Mobile Story • For over a decade, the smartphone vendors have been like the early computer vendors • Phone apps had to be written with: • vendor-supplied toolchains that varied between platforms • vendor-chosen languages that varied between platforms • APIs that varied greatly, even from release to release • vendor-developed, closed-source widgets and gestures • Releasing for both iOS and Android required specialized skills, or separate teams • And never quite looked or acted the same on both platforms • Then, along came Flutter, and suddenly the game has changed!
  • 5. Flutter • Flutter is a mobile app SDK, complete with framework, engine, widgets, and tools • Gives developers easy and productive way to build and deploy beautiful apps • Currently, in production release for iOS, Android, and web • And desktop for Mac, Linux, and Windows • Dart (Flutter’s language) can be used to build web and server applications • Learn Dart once, develop for eight platforms
  • 6. What does Flutter do? • For users: • Beautiful app UIs come to life • For developers: • Lowers the bar to entry for building mobile apps • Speeds up the development cycle (hot reload, more on that later) • Reduces the cost and complexity of app production across platforms • Permits a single mobile app dev team for both iOS and Android • For designers: • Helps deliver original design vision without compromises • Productive prototyping tool (rapid changes without long compile cycle)
  • 7. What experience does a developer need? • Flutter uses Dart as the primary development language • Modern strongly-typed language with familiar constructs: • Classes, methods, variables • Complex data structures with generics, type inference, tuples • Imperative programming (loops, conditionals, pattern matching) • Functional programming (streams, immutable objects, list comprehensions) • No prior mobile experience required • Heck, even yours truly is doing mobile development now! • Even people with very little programming experience seem to be productive rapidly
  • 8. What kinds of apps can we build with f lutter? • Optimized for 2D mobile apps that want to run on everything with a display • Some 3D is being slowly introduced • Capable of “brand- f irst” designs • Also mimics “stock platform” look and feel • Full featured apps including native services: • camera • geolocation • network • storage • sensors • bluetooth • NFC • and more!
  • 9. Who makes and uses Flutter? • Open-source project (hosted on github) • Originally developed and still heavily supported by Google • Community contributions as well • Google uses Flutter to build business-critical apps for iOS and Android: • Mobile Sales Tool • Store Manager for Google Shopping Express • And growing number of internal projects • Nearly a million apps already deployed by third parties
  • 10. What makes Flutter unique? • Flutter does not use WebView or the OEM widgets! • No penalty crossing between inputs, app code and rendering engine • Flutter uses Skia from Chrome (and soon, Impeller) to render its own widgets • The widgets are all written in Dart • Thin layer of C++ to talk to native APIs, with JNI and FFI support • Dart code also handles compositing, gestures, animation, frameworks, and so on • Code is easily inspectable, patchable, extendable • Cross-platform look and feel easily provided • or customized per platform for native feel • Design packages available for Windows, Linux, Mac desktop, and custom
  • 11. Why Dart? • Google mobile team chose Dart based on numerous criteria • Two critical features: • A JIT-based fast development cycle for shape changing and stateful hot reloads • AOT compiler that emits ef f icient ARM code for fast startup and predictable speed • Can also re-use most code in Pub (except those that depend on dart:io or dart:html) • Flutter team has in f luenced Dart development • AOT compiler (produce native binaries more directly) • Optimizing VM for latency rather than throughput • Strong mode (sound type system)
  • 13. Summing it up: Why Flutter? • The advantages of reactive views, with no JavaScript bridge • Fast, smooth, and predictable; code compiles AOT to native (ARM) code • The developer has full control over the widgets and layout • Comes with beautiful, customizable widgets • Great developer tools, with amazing hot reload • More performant, more compatibility, more fun • And, by the way, you can develop for many platforms from one code base • But that’s insigni f icant compared to the other gains!
  • 14. For more information • Dart language: dart.dev • Includes language tour (mandatory!) and library tour (at least skim) • Flutter framework: f lutter.dev • Tutorials • Descriptions of widget classes • Cookbook • Codelabs • Full API descriptions • Support: f lutter.dev/community (join Slack and Discord from there)
  • 15. Recommended YouTube Channels • Mine, of course: https://www.youtube.com/@RandalOnDartAndFlutter • Flutter of f icial: https://www.youtube.com/@ f lutterdev • Flutter Community: https://www.youtube.com/@FlutterCommunity