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
79
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
47
Utilise the power of AI with Flutter App Development
dhuma1981
0
82
Build_your_First_App_with_Flutter.pdf
dhuma1981
1
460
Flutter: Makes developer’s life easy
dhuma1981
1
410
Flutter Theming & Animation
dhuma1981
1
370
Let's explore Flutter with Firebase
dhuma1981
0
660
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
コーディング自動化の次へ。人の介入をゼロにするファクトリーとサポートAIによる実践
timakin
5
4.1k
自作Discord音声botをLambda MicroVMsに移行した話 / Migrating My Discord Voice Bot to Lambda MicroVMs
akihisaikeda
0
110
作って学ぶSpring BootのAuto Configuration / JJUG Night Seminar 2026-10-19
rshindo
0
190
Event is what happens
moro
2
1k
Kotlinの15年とServer-Side Kotlin
n_takehata
1
160
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
npm との違いを手がかりにGo の依存管理を理解したい
optim
0
960
機械に任せるテスト、人が見るテスト ⽣成AIで引き直した、運⽤保守フェーズの線引き
dske104
0
190
sbt 2.0: takeoff
eed3si9n
0
160
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
260
エージェントを使い続けるためのメタワーク / Meta-work for keeping using the agent
rkaga
1
330
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
440
Featured
See All Featured
Google's AI Overviews - The New Search
badams
0
1.6k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.9k
How to train your dragon (web standard)
notwaldorf
96
6.9k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
My Coaching Mixtape
mlcsv
0
360
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
320
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Odyssey Design
rkendrick25
PRO
2
880
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
330
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.7k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
31k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
67k
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