Flutter

Flutter Design Patterns

Singleton, Factory, Repository, Dependency Injection, Service Locator, āļŦāļĨāļąāļāļāļēāļĢ SOLID

24 āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒÂ·
Senior
1

Singleton pattern āđƒāļ™ Dart/Flutter āļ„āļ·āļ­āļ­āļ°āđ„āļĢ?

āļ„āļģāļ•āļ­āļš

Singleton āļĢāļąāļšāļ›āļĢāļ°āļāļąāļ™āļ§āđˆāļēāļ„āļĨāļēāļŠāļĄāļĩāļ­āļīāļ™āļŠāđāļ•āļ™āļ‹āđŒāđ€āļžāļĩāļĒāļ‡āļ•āļąāļ§āđ€āļ”āļĩāļĒāļ§āđāļĨāļ°āđƒāļŦāđ‰āļˆāļļāļ”āđ€āļ‚āđ‰āļēāļ–āļķāļ‡āđāļšāļš global āđ„āļ›āļĒāļąāļ‡āļ­āļīāļ™āļŠāđāļ•āļ™āļ‹āđŒāļ™āļąāđ‰āļ™ āđƒāļ™ Dart āļĄāļąāļāļ–āļđāļ implement āļ”āđ‰āļ§āļĒ factory constructor āđāļĨāļ°āļ­āļīāļ™āļŠāđāļ•āļ™āļ‹āđŒ static āđāļšāļš private pattern āļ™āļĩāđ‰āļĄāļĩāļ›āļĢāļ°āđ‚āļĒāļŠāļ™āđŒāļŠāļģāļŦāļĢāļąāļš service āļ—āļĩāđˆāđƒāļŠāđ‰āļĢāđˆāļ§āļĄāļāļąāļ™ āđ€āļŠāđˆāļ™ āļāļēāļĢāļ•āļąāđ‰āļ‡āļ„āđˆāļēāļŦāļĢāļ·āļ­ API client

2

āļˆāļ° implement Singleton āđƒāļ™ Dart āđ‚āļ”āļĒāđƒāļŠāđ‰ factory constructor āļ­āļĒāđˆāļēāļ‡āļ–āļđāļāļ•āđ‰āļ­āļ‡āđ„āļ”āđ‰āļ­āļĒāđˆāļēāļ‡āđ„āļĢ?

āļ„āļģāļ•āļ­āļš

āļāļēāļĢ implement āļĄāļēāļ•āļĢāļāļēāļ™āđƒāļŠāđ‰āļ­āļīāļ™āļŠāđāļ•āļ™āļ‹āđŒ static āđāļšāļš private _instance, constructor āđāļšāļš private _internal() āđāļĨāļ° factory constructor āļ—āļĩāđˆāļ„āļ·āļ™āļ„āđˆāļē _instance āđ€āļŠāļĄāļ­ āļ§āļīāļ˜āļĩāļ™āļĩāđ‰āļĢāļąāļšāļ›āļĢāļ°āļāļąāļ™āļ§āđˆāļēāļĄāļĩāļ­āļīāļ™āļŠāđāļ•āļ™āļ‹āđŒāđ€āļžāļĩāļĒāļ‡āļ•āļąāļ§āđ€āļ”āļĩāļĒāļ§āđāļĨāļ° thread-safe āđƒāļ™ Dart āđ€āļ™āļ·āđˆāļ­āļ‡āļˆāļēāļ event loop āđāļšāļš single-threaded

3

āļ‚āđ‰āļ­āđ€āļŠāļĩāļĒāļŦāļĨāļąāļāļ‚āļ­āļ‡ Singleton pattern āđƒāļ™āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™ Flutter āļ„āļ·āļ­āļ­āļ°āđ„āļĢ?

āļ„āļģāļ•āļ­āļš

Singleton āļŠāļĢāđ‰āļēāļ‡ state āđāļšāļš global āļ—āļĩāđˆāļ—āļģāđƒāļŦāđ‰āļāļēāļĢāļ—āļģ unit testing āļĒāļēāļāđ€āļžāļĢāļēāļ°āļĒāļēāļāļ—āļĩāđˆāļˆāļ° mock āļŦāļĢāļ·āļ­āđāļ—āļ™āļ—āļĩāđˆāļ­āļīāļ™āļŠāđāļ•āļ™āļ‹āđŒ āļ™āļ­āļāļˆāļēāļāļ™āļĩāđ‰āļĒāļąāļ‡āļ—āļģāđƒāļŦāđ‰āđ€āļāļīāļ” coupling āļ—āļĩāđˆāđāļ™āđˆāļ™āļŦāļ™āļēāļĢāļ°āļŦāļ§āđˆāļēāļ‡āļ„āļĨāļēāļŠāđāļĨāļ°āļ­āļēāļˆāļ‹āđˆāļ­āļ™ dependency āļ—āļĩāđˆāđāļ—āđ‰āļˆāļĢāļīāļ‡ āļ—āļģāđƒāļŦāđ‰āđ‚āļ„āđ‰āļ”āļ”āļđāđāļĨāļĢāļąāļāļĐāļēāļĒāļēāļāļ‚āļķāđ‰āļ™āđāļĨāļ° refactor āļĒāļēāļāļ‚āļķāđ‰āļ™

4

Factory pattern āđƒāļ™āļāļēāļĢāđ€āļ‚āļĩāļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāđ€āļŠāļīāļ‡āļ§āļąāļ•āļ–āļļāļ„āļ·āļ­āļ­āļ°āđ„āļĢ?

5

āļ„āļ§āļēāļĄāđāļ•āļāļ•āđˆāļēāļ‡āļĢāļ°āļŦāļ§āđˆāļēāļ‡ Factory Method āđāļĨāļ° Abstract Factory āđƒāļ™ Flutter āļ„āļ·āļ­āļ­āļ°āđ„āļĢ?

+21 āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒ

āļŦāļąāļ§āļ‚āđ‰āļ­āļŠāļąāļĄāļ āļēāļĐāļ“āđŒ Flutter āļ­āļ·āđˆāļ™āđ†

āļžāļ·āđ‰āļ™āļāļēāļ™ Dart

Junior
25 āļ„āļģāļ–āļēāļĄ

āļžāļ·āđ‰āļ™āļāļēāļ™āļ āļēāļĐāļē Dart

Junior
15 āļ„āļģāļ–āļēāļĄ

āļžāļ·āđ‰āļ™āļāļēāļ™ Flutter

Junior
18 āļ„āļģāļ–āļēāļĄ

āļ§āļ‡āļˆāļĢāļŠāļĩāļ§āļīāļ•āļ‚āļ­āļ‡ Widget

Junior
20 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļˆāļąāļ”āđ€āļāđ‡āļšāļ‚āđ‰āļ­āļĄāļđāļĨāđƒāļ™āđ€āļ„āļĢāļ·āđˆāļ­āļ‡

Junior
20 āļ„āļģāļ–āļēāļĄ

āļ§āļ‡āļˆāļĢāļŠāļĩāļ§āļīāļ•āļ‚āļ­āļ‡āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™

Junior
20 āļ„āļģāļ–āļēāļĄ

Layouts & Constraints

Mid-Level
24 āļ„āļģāļ–āļēāļĄ

ListView & GridView

Mid-Level
25 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļ™āļģāļ—āļēāļ‡āđāļĨāļ° Routing

Mid-Level
22 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļˆāļąāļ”āļāļēāļĢ State āļžāļ·āđ‰āļ™āļāļēāļ™

Mid-Level
22 āļ„āļģāļ–āļēāļĄ

Provider Pattern

Mid-Level
18 āļ„āļģāļ–āļēāļĄ

Networking & HTTP

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļ‹āļĩāđ€āļĢāļĩāļĒāļĨāđ„āļĨāļ‹āđŒ JSON

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāđƒāļ™āđ€āļ„āļĢāļ·āđˆāļ­āļ‡

Mid-Level
22 āļ„āļģāļ–āļēāļĄ

āļŸāļ­āļĢāđŒāļĄāđāļĨāļ°āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļ„āļ§āļēāļĄāļ–āļđāļāļ•āđ‰āļ­āļ‡

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

āđāļ­āļ™āļīāđ€āļĄāļŠāļąāļ™

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļœāļŠāļēāļ™āļĢāļ§āļĄ Firebase

Mid-Level
18 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļ—āļ”āļŠāļ­āļšāļĒāļđāļ™āļīāļ•

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļ—āļ”āļŠāļ­āļš widget

Mid-Level
18 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢ Build āđāļĨāļ° Deploy

Mid-Level
16 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļˆāļąāļ”āļāļēāļĢāđāļžāđ‡āļāđ€āļāļˆ

Mid-Level
16 āļ„āļģāļ–āļēāļĄ

āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļģāđāļĨāļ°āļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļž

Senior
22 āļ„āļģāļ–āļēāļĄ

Streams & RxDart

Senior
24 āļ„āļģāļ–āļēāļĄ

State Management āļ‚āļąāđ‰āļ™āļŠāļđāļ‡

Senior
26 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāđ€āļžāļīāđˆāļĄāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāļāļēāļĢāļ—āļģāļ‡āļēāļ™

Senior
26 āļ„āļģāļ–āļēāļĄ

Platform Channels

Senior
20 āļ„āļģāļ–āļēāļĄ

Custom Painting

Senior
22 āļ„āļģāļ–āļēāļĄ

āļŠāļ–āļēāļ›āļąāļ•āļĒāļāļĢāļĢāļĄāđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™ Flutter

Senior
22 āļ„āļģāļ–āļēāļĄ

āđ€āļŠāļĩāđˆāļĒāļ§āļŠāļēāļ Flutter āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļŠāļąāļĄāļ āļēāļĐāļ“āđŒāļ„āļĢāļąāđ‰āļ‡āļ–āļąāļ”āđ„āļ›

āđ€āļ‚āđ‰āļēāļ–āļķāļ‡āļ„āļģāļ–āļēāļĄāļ—āļąāđ‰āļ‡āļŦāļĄāļ” flashcards āđāļšāļšāļ—āļ”āļŠāļ­āļšāđ€āļ—āļ„āļ™āļīāļ„ āđāļšāļšāļāļķāļāļŦāļąāļ” code review āđāļĨāļ°āļ•āļąāļ§āļˆāļģāļĨāļ­āļ‡āļŠāļąāļĄāļ āļēāļĐāļ“āđŒ

āđ€āļĢāļīāđˆāļĄāđƒāļŠāđ‰āļŸāļĢāļĩ