Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/devonfw-forge/devon4flutter-non-bloc-arch

A guide aiming to bridge the gap between the absolute Flutter basics and clean, structured Flutter Development
https://github.com/devonfw-forge/devon4flutter-non-bloc-arch

architecture architecture-patterns best-practices bloc bloc-pattern conventions flutter guide state-management

Last synced: 3 months ago
JSON representation

A guide aiming to bridge the gap between the absolute Flutter basics and clean, structured Flutter Development

Awesome Lists containing this project

README

        

![Banner](https://github.com/devonfw-forge/devonfw4flutter/wiki//images/banner.png)

> The guide is published in the [Wiki of this repository](https://github.com/devonfw-forge/devonfw4flutter/wiki). This repository just holds a copy of the Wiki to make the commit history more readable. The _README.md_ is a copy of the [introduction chapter](https://github.com/devonfw-forge/devonfw4flutter/wiki).

# Introduction
Page Table of Contents
- [Introduction](#introduction)
- [The Goal of this Guide](#the-goal-of-this-guide)
- [Who is this Guide for?](#who-is-this-guide-for)
- [Topics that will be Covered](#topics-that-will-be-covered)
- [Creation Context](#creation-context)
- [Structure](#structure)
- [My Sources](#my-sources)
- [Creation Process](#creation-process)

## The Goal of this Guide

This guide aims to bridge the gap between the absolute Flutter [\[1\]](https://flutter.dev/) basics and clean, structured Flutter development. It should bring you from the basics of knowing how to build an app with Flutter to an understanding of how to do it *properly*. Or at least show you one possible way to make large scale Flutter projects clean and manageable.

## Who is this Guide for?

For people with a basic knowledge of the Flutter Framework. I recommend following this tutorial by the Flutter team [\[2\]](https://flutter.dev/docs/get-started/codelab). It will walk you through developing your first Flutter application. You should also have a basic understanding of the Dart programming language [\[3\]](https://dart.dev/). No worries, it is very similar to Java [\[4\]](https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html), Kotlin [\[5\]](https://kotlinlang.org/) and JavaScript [\[6\]](https://www.ecma-international.org/publications/standards/Ecma-262.htm). So if you know 1 or 2 of those languages you should be fine.

## Topics that will be Covered

- A brief introduction to the [Flutter Framework](https://github.com/devonfw-forge/devonfw4flutter/wiki/100-The-Flutter-Framework) in general:
- How the [underlying technology](https://github.com/devonfw-forge/devonfw4flutter/wiki/110-Under-the-Hood) works,
- how it’s [programming style](https://github.com/devonfw-forge/devonfw4flutter/wiki/120-Thinking-Declaratively) is little different from other frameworks,
- how Flutter apps are [structured](https://github.com/devonfw-forge/devonfw4flutter/wiki/130-The-Widget-Tree) on an abstract level and,
- how [asynchrony](https://github.com/devonfw-forge/devonfw4flutter/wiki/140-Asynchronous-Flutter) and communication with the web can be implemented.
- A showcase of possible [architectural styles](https://github.com/devonfw-forge/devonfw4flutter/wiki/210-State-Management-Alternatives) you can use to build your app and
- an [in-depth guide](https://github.com/devonfw-forge/devonfw4flutter/wiki/220-BLoC) on one of those possibilities (BLoC Pattern [\[7\]](https://www.youtube.com/watch?v=PLHln7wHgPE)).
- How to [test](https://github.com/devonfw-forge/devonfw4flutter/wiki/300-Testing) your app.
- Some [conventions and best practices](https://github.com/devonfw-forge/devonfw4flutter/wiki/400-Conventions) for Dart, and the Flutter Framework in general.
- My personal [evaluation of the framework](https://github.com/devonfw-forge/devonfw4flutter/wiki/500-Conclusion).

## Creation Context

This guide was written by a student in the Bachelor of Science Program “Computer Science and Media Technology” at Technical University Cologne [\[8\]](https://www.th-koeln.de/en/homepage_26.php), and it was created for one of the modules in that Bachelor. In addition to this, the guide was written in collaboration with DevonFw [\[9\]](https://devonfw.com/index.html). DevonFw released a guide on building an application with Angular [\[10\]](https://github.com/devonfw/devon4ng) in May of 2019, this guide is meant to be the Flutter version of that.

## Structure

The guide is designed to be read in order, from chapter 0 (this one) to chapter 5. Code examples throughout the chapters will mainly be taken from Wisgen [\[11\]](https://github.com/Fasust/wisgen), an example Flutter application that was specifically built for the purposes of this guide. If you want to search for any specific terms in the guide, you can use [this page](https://github.com/devonfw-forge/devonfw4flutter/wiki/gfm-guide). It is all chapters of the guide combined into one page. There is going to be a few common symbols throughout the guide, this is what they stand for:

| Symbol | Meaning |
| :----: | :----------------------- |
| 📙 | Definition |
| 🕐 | Shortened version (TLDR) |
| ⚠ | Important |

## My Sources

I am basing this guide on a combination of conference talks, blog articles by respected Flutter developers, the official documentation, scientific papers that cover cross-platform mobile development in general and many other sources. All sources used in the guide are listed in chapter [*6 References*](https://github.com/devonfw-forge/devonfw4flutter/wiki/600-References). To put that theoretical knowledge into practice, I built the Wisgen application [\[11\]](https://github.com/Fasust/wisgen) using the Flutter Framework, the BLoC Pattern [\[7\]](https://www.youtube.com/watch?v=PLHln7wHgPE), and a four-layered architecture.

## Creation Process

If you are interested in how this guide was created, how Wisgen was built, how a bridge between a citation software and Markdown was realized, or any other details about the creation process, check out the [Meta-Documentation](https://github.com/devonfw-forge/devonfw4flutter/blob/master/Meta-Documentation.pdf).

Next Chapter: The Flutter Framework >


Back to Top