使用 TDD + Clean Architecture 開發 Flutter 專案課程筆記 13 ~ 14

前言

邏輯、流程的部分都已經處理掉了,接下來應該是把畫面跟定義好的程式串起來就會動了;課程也即將進入尾聲。

筆記

Flutter TDD Clean Architecture Course [13] – Dependency Injection

這集主要是要教學 dependency injection,在 Android 專案我習慣用 Koin 來處理這個需求,因為建構子實在需要太多東西了,假設 10 個地方需要 NumberTriviaBloc,那我就必需手動準備好 30 個參數。有了 DI 可以加速我們開發,只要宣告一次NumberTriviaBloc,就可以到處使用。

閱讀全文 使用 TDD + Clean Architecture 開發 Flutter 專案課程筆記 13 ~ 14

使用 TDD + Clean Architecture 開發 Flutter 專案課程筆記 10 ~ 12

前言

這幾集就是在講 Flutter 特有的 BLoC,我們已經跨入 presentation layer 了,這邊會開始碰到 UI 背後的邏輯。

筆記

Flutter TDD Clean Architecture Course [10] – Bloc Scaffolding & Input Conversion

影片一開始就要安裝自動產生程式碼的 plugin:

https://plugins.jetbrains.com/plugin/12129-bloc

這是我第一次接觸 Bloc,看他概念就是吃 event 轉換 state,直覺就是想到 Redux 的 reducer,名詞不同,但做的事情還滿像的。本集就先定義 state 跟 event 而已,Bloc 還沒有正式開始講。

閱讀全文 使用 TDD + Clean Architecture 開發 Flutter 專案課程筆記 10 ~ 12

使用 TDD + Clean Architecture 開發 Flutter 專案課程筆記 7 ~ 9

前言

這部分也在講 data layer 的內容,不過會更專注在 data source 裡面的東西。

筆記

Flutter TDD Clean Architecture Course [7] – Network Info

這集一開始導入一個 3rd party lib,專門用來確認網路狀態。這個 lib 直接連各大網路服務的 IP,概念簡單但很準確;不過 Github 上面有條滿可怕的 issue,正式版可能要考慮一下:

https://github.com/komapeb/data_connection_checker/issues/7

閱讀全文 使用 TDD + Clean Architecture 開發 Flutter 專案課程筆記 7 ~ 9

使用 TDD + Clean Architecture 開發 Flutter 專案課程筆記 4 ~ 6

前言

在課程 1 ~ 3 集學習了 Clean Architecture domain layer 的測試與實作,在這篇筆記中會著重在 data layer 的部分。

筆記

Flutter TDD Clean Architecture Course [4] – Data Layer Overview & Models

這集從頭到尾都在講 raw data 的測試跟 parse JSON。

num 是 int 跟 double 的父類別,在 parse raw data 時可以當作語法糖來用,少寫一些判斷,不太確定為何要有這種介於兩者的存在,可能在轉換或賦值時容易語法錯誤吧?

dynamic 等同於 Kotlin 的 Any 或 Java 的 Object,可以是任何東西。

factory 很像是 Kotlin 寫在 companion object 裡面的 function,又或是 Java 的 static,我不想 new instance,所以就用 factory 來寫 function。

閱讀全文 使用 TDD + Clean Architecture 開發 Flutter 專案課程筆記 4 ~ 6

使用 TDD + Clean Architecture 開發 Flutter 專案課程筆記 1 ~ 3

前言

以前專職開發 Android 專案時,我喜愛 Clean Architecture + MVVM 架構當作基本配置;TDD 一直是我很想精通的一個技能,但礙於各種因素,正式工作中我一向是在最後階段才補上測試。這次學習 Flutter 課程,除了想將技能樹向外延伸,也想複習架構,並順便習慣 TDD。

課程

本次課程選用 Matt Rešetár 的 Flutter TDD Clean Architecture Course:

這個課程適合熟悉 Flutter 或是熟悉 TDD 及 Clean Architecture 的開發者,若沒有基礎就直接來上,可能資訊量會太大;以我來說,我習慣使用 Clean Architecture 且接觸過 TDD,有疑惑的部分就會是 Flutter / Dart 為主。

閱讀全文 使用 TDD + Clean Architecture 開發 Flutter 專案課程筆記 1 ~ 3