Flutter Community
Published in

Flutter Community

Mangirdas Kazlauskas

Oct 8, 2019

6 min read

Flutter Design Patterns: 0 — Introduction

Introduction to a series of articles about OOP design patterns and their implementation in Dart and Flutter

Table of Contents

  • About the series
  • OOP, Design Patterns…???
  • Application overview
  • Other articles in this series
  • Your contribution

About the series

In each article of the series, I will overview a design pattern, implement it using Dart programming language, prepare a practical (if possible) example in Flutter and add it to the Flutter Design Patterns mobile application. The theoretical part about design patterns would be heavily based on the “Gang of Four” (GoF) book “Design Patterns: Elements of Reusable Object-Oriented Software”, which, in my opinion, is one of the most iconic software engineering books about software design patterns. This book contains more than 20 different OOP design patterns, so you can expect more than 20 articles in the series! I will do my best to be consistent and publish a new article to the series weekly.

OOP, Design Patterns…???

What is OOP?

OOP stands for “Object-Oriented Programming”. In simple words, it is a programming paradigm that uses the idea of objects to represent data and methods to manipulate that data. This idea lets software engineers write code that represents the real-world objects, the data they contain and their relations with other objects via corresponding code structures. If you have already written some code using Dart or any other OOP programming language (C#, C++, Java just to name a few), probably you saw and used classes, defined properties and/or methods inside of those classes, created class instances and operated with them, specified relations between different objects/classes — that’s nothing less than Object-Oriented programming!

What is OOP Design Pattern?

OOP design pattern is a typical solution to a common problem in software design. In the GoF book, the purpose of a design pattern is described like this:

Application overview

As I have already mentioned, by introducing a new design pattern per article, I will also build a Flutter Design Patterns mobile application and expand its design patterns library step-by-step. Of course, this application is open-source and its code is already available on Github for all of you! The application consists only of three different screens — the main menu, design patterns’ category screen and design pattern’s screen.

Flutter Design Patterns — Main Menu
Flutter Design Patterns — Page transitions
...
{
"id": "introduction",
"title": "Introduction",
"description": "Laborum qui ea velit sint officia culpa aute ad sint fugiat excepteur ex pariatur consectetur.",
"route": "/introduction"
}
...
introduction.dart
router.dart
Flutter Design Patterns — Demonstration

Other articles in this series

Your contribution

👏 Press the clap button below to show your support and motivate me to write better!
💬 Leave a response to this article by providing your insights, comments or wishes for the series.
📢 Share this article with your friends, colleagues on social media.
➕ Follow me on Medium.
⭐ Star the Github repository.