Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Scaling Design Systems in Flutter: Lessons from...
Search
Dhrumil Shah
November 15, 2025
Programming
82
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Scaling Design Systems in Flutter: Lessons from building UIKit
Dhrumil Shah
November 15, 2025
Transcript
79 slides
Ahmedabad 2025 Dhrumil Shah Architect, Scapia Scaling Design Systems in
Flutter: Lessons from building UIKit
Ahmedabad 2025 Dhrumil Shah Architect, Scapia - Flutter & Dart
GDE - Mobile App Architect - Startup mentor - A11y advocate
Why Are We Here?
Scalable System Design • Planning the architecture & infrastructure of
a system • Defining components (APIs, services, databases) • Understanding how they interact to meet requirements
Scalable System Design • Planning the architecture & infrastructure of
a system • Defining components (APIs, services, databases) • Understanding how they interact to meet requirements
DESIGN SYSTEM ≠ SYSTEM DESIGN
Let’s create a button
Ahmedabad 2025
Ahmedabad 2025
Ahmedabad 2025
None
Inconsistent Code Developers create the same button in many different
ways:
• UI inconsistency slows teams down
• UI inconsistency slows teams down • Engineering time wasted
reinventing components
• UI inconsistency slows teams down • Engineering time wasted
reinventing components • Designers maintain multiple versions of the same UI
• UI inconsistency slows teams down • Engineering time wasted
reinventing components • Designers maintain multiple versions of the same UI • Hard to scale without a shared source of truth
We Are Here for DESIGN SYSTEM
Design System • A style guide for UI & graphic
design
Design System • A style guide for UI & graphic
design • Ensures products have a consistent, cohesive, on-brand experience
Design System • A style guide for UI & graphic
design • Ensures products have a consistent, cohesive, on-brand experience Visual + Interaction + Code + Tokens + Governance
None
None
Ahmedabad 2025 Design System { standards } UIKit { implementation
in Flutter } Component Library { ready-to-use Widgets }
Why Companies Need DS • Consistency • Speed • Onboarding
• Reusability
How to start with Design System
Tokens "The smallest, platform-agnostic design values"
Tokens • Colors • Typography • Spacing • Radius &
shadow • Motion
None
None
None
None
None
None
None
Atoms "The smallest functional UI elements"
Atoms • Buttons • Inputs • Icons • Text styles
• Avatars
Molecules "Atoms working together as a small, meaningful unit"
Molecules • Search bar (input + icon + label) •
Form field (label + input + error) • Card header (avatar + text)
Organisms "Complex sections made of atoms + molecules"
Organisms • Navigation bar • Card component • Sidebar •
Form sections
None
design.tatadigital.com/latest/components/accordion
None
None
None
None
None
None
None
Key challenges in Scaling • Multiple teams
Key challenges in Scaling • Multiple teams • New designers
Key challenges in Scaling • Multiple teams • New designers
• Design drift
Key challenges in Scaling • Multiple teams • New designers
• Design drift • Component misuse
Flutter Strength for Design System
Flutter Strength for DS • Single Codebase • Declarative Nature
• Theming + Extension • Composition over Inheritance • Hot Reload & Widget Previews
API Design Principles • Sensible defaults • Fewer required params
• Consistent naming • Predictable behavior
API Design Principles
Anti Patterns • Props explosion • Overly generic widgets •
Styles inside features • Multiple forms of the same component
What Makes a Component "Reusable"? Configurations, states, behavior. Ahmedabad 2025
Handling Multiple Variants • Enum-based variants • Theme overrides •
Composition
Example: Buttons Done Right • Primary/Secondary/Tertiary • Sm/Med/Lg sizes
Documentation
Documentation is Important
Documentation is Important (or why it fails) • Nobody reads
it • Nobody updates it
What Good Docs Look Like
• Usage guidelines Navigation bars can have three to five
destinations
• Do / Don’t with Code examples The FAB should
be right-aligned above the navigation bar Don’t cover the navigation bar with FAB
• Story-Based Documentation • Live Catalogs (Widgetbook / Widget Previews)
• Auto-Generated Docs (Dartdoc)
None
Testing
• Golden Tests for snapshot comparison
• Golden Tests for snapshot comparison • Widget Tests for
behaviour
• Golden Tests for snapshot comparison • Widget Tests for
behaviour • CI Integration to block PRs on mismatched goldens
Testing • Golden Tests for snapshot comparison • Widget Tests
for behaviour • CI Integration to block PRs on mismatched goldens • Linting for Compliance (Custom rules -“no random colors”)
Examples references • Material Design - m3.material.io • Zing -
design.tatadigital.com • Sushi - blog.zomato.com/sushi • Blade - blade.razorpay.com • wise.design
Connect With Me x.com/dhuma1981 linkedin.com/in/dhuma1981 flutterflakes.com conalyz.com
Special Thanks to Tirth AI (Asli Insaan)
speakerdeck.com/dhuma1981
Thank You Ahmedabad
More Decks by Dhrumil Shah
See All by Dhrumil Shah
Scaling Design Systems in Flutter: Lessons from building UIKit
dhuma1981
0
52
Utilise the power of AI with Flutter App Development
dhuma1981
0
87
Build_your_First_App_with_Flutter.pdf
dhuma1981
1
470
Flutter: Makes developer’s life easy
dhuma1981
1
420
Flutter Theming & Animation
dhuma1981
1
370
Let's explore Flutter with Firebase
dhuma1981
0
670
Let's Start with Flutter
dhuma1981
4
430
What the Flutter?
dhuma1981
1
400
Let's Flirt with Flutter
dhuma1981
3
490
Other Decks in Programming
See All in Programming
TS 7.0 で baseUrl が使えなくなった今、パスエイリアスをどうするか
bicstone
2
620
学びを記事・スライド・Xへ高速展開する― AI-assisted Learning Loopで回すコンテンツ生成術
ochtum
0
210
LLM 101
dalinaum
0
480
Kawaiicon: Kubernetes, it's no longer cool, but let's secure it anyway!
barnbarn
0
130
Growing PicoRuby's Ecosystem on ESP32
yuuu
2
120
Crash Auto Pipelines
veronikapj
1
410
作れるエンジニアから、価値を届けるエンジニアへ
ryunakayama
1
270
クラウドゲーミングのパフォーマンス最適化に挑む / Cloud Gaming Performance Tuning
vivion
0
330
Будущее локальных LLM – Алексей Голобурдин, PythoNN
sobolevn
0
120
AIがコードを書いてくれる時代、我々は何を確かめるのか
yosuke_furukawa
PRO
13
5.9k
まずはコードより業務と向き合う:テーブル解体のためにPdMを呼んだ話
sakawe_ee
0
220
Web3Dライブラリを作ってVue Custom Rendererの仕組みを理解しよう / lets learn vue custom renderer by making 3d library
drumath2237
1
130
Featured
See All Featured
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
590
The Cost Of JavaScript in 2023
addyosmani
56
10k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
1k
Designing for humans not robots
tammielis
254
26k
Docker and Python
trallard
47
4.3k
Discover your Explorer Soul
emna__ayadi
2
1.3k
Chasing Engaging Ingredients in Design
codingconduct
0
390
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.5k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
50
10k
Design in an AI World
tapps
1
390
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
33
5.7k