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
77
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
More Decks by Dhrumil Shah
See All by Dhrumil Shah
Scaling Design Systems in Flutter: Lessons from building UIKit
dhuma1981
0
46
Utilise the power of AI with Flutter App Development
dhuma1981
0
76
Build_your_First_App_with_Flutter.pdf
dhuma1981
1
460
Flutter: Makes developer’s life easy
dhuma1981
1
410
Flutter Theming & Animation
dhuma1981
1
360
Let's explore Flutter with Firebase
dhuma1981
0
650
Let's Start with Flutter
dhuma1981
4
420
What the Flutter?
dhuma1981
1
400
Let's Flirt with Flutter
dhuma1981
3
490
Other Decks in Programming
See All in Programming
標準パッケージに uuid が追加された 背景から見る Go らしい意思決定 / go_127_uuid_decision
convto
5
9.2k
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
430
App Storeの外へ──日本のiOSサイドローディング入門 for iOSDC Japan 2026
yuukiw00w
0
280
Webの地図
yosuke_furukawa
PRO
6
5k
Security issues being discussed on Web Platforms
petamoriken
0
1.4k
難しいけど、読めた。- OSSの入口に立った話。
sts11142
0
130
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
280
MVNOの申込からeSIM開通までをiOSアプリでつなぐ- 本人確認・MNP・通信事業者基盤をまたぐ実装
satotakeshi
0
510
wkhtmltopdfの次どうするか問題2026
willnet
2
1.8k
JPUG勉強会 OSSデータベースの内部構造を理解しよう(第2回)
oga5
0
280
Ghostty + Neovimで作る 透明でカッコ良い開発環境
j341nono
0
150
ハーネス設計入門 〜 基礎知識の整理から実務へのステップアップ 〜
kinopeee
19
19k
Featured
See All Featured
Git: the NoSQL Database
bkeepers
PRO
432
67k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
3
4.3k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
330
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
410
The Curious Case for Waylosing
cassininazir
1
550
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
1k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
1k
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Darren the Foodie - Storyboard
khoart
PRO
4
4k
Product Roadmaps are Hard
iamctodd
55
13k
Transcript
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