使用 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

完整移除 Comodo 防火牆解決無法上網問題

前言

大約在 2017 年裝了 Comodo 的防火牆,幾年使用下來也沒出甚麼問題,但最近會在開機後發生異常,說是防火牆無法正常啟動。這個問題也造成我無法上網,非常困擾。

釐清問題

因為 Windows 10 之前有出過更新後無法上網的問題,我一直以為是官方更新所造成的,但差異在於:官方的問題是完全無網路,我則是連得到 Wifi,但無法連到外網,也 ping 不到 default gateway,但交叉測試知道網卡跟 Router 都沒壞。

閱讀全文 完整移除 Comodo 防火牆解決無法上網問題

防疫資訊站 – 在口罩地圖之後

前言

前陣子我媽打給我,說:她不會用實聯制掃描而被店員唸了,後來每次進店都放棄用手機掃描,改用手寫登記。我不知道有多少長輩有碰到這個問題,但我覺得需要有人來解決它。剛好 g0v 有人在分享最新的疫情資料,就花了一個週末把口罩地圖改版了。

新功能

確診數據

將疾病管制署的數據呈現出來,在去年有看到不少國外應用提供這樣的數字佈告,我自己也會想要知道最新的疫情數據,因此就將它放在首頁,想到就可以看一下。

全國快篩站點資訊

由於快篩地點資訊非常零散,有的放在新聞文章、有的放在臉書公告,內容也不是很完全,例如:有開放時間、資格限制或是需要預約,但文章只有提到地點。g0v 參與者有做了一份整理好的表單,可以讓有需求的民眾了解相關資訊,內容非常便民。

實聯制掃描

主要是提供更簡單的選擇,或許不是最快的,但有試著加入一些說明來降低資訊落差。此外,前幾天用疾管家的網頁掃描時,有注意到網頁版相機的效能問題,原生的 App 可以有效改善這個狀況。

閱讀全文 防疫資訊站 – 在口罩地圖之後

教導年長者使用平板電腦

前言

我媽前陣子嚷著想要用電腦,就我有印象以來,這狀況持續了十年以上,每隔一段時間,我媽就會說要學電腦,但每次教完,大約一週內就會對電腦失去興趣。

使用者背景

  • 65 歲傳統家庭主婦
  • 國小學歷
  • 容易放棄,害怕失敗及未知的問題
  • 記憶力開始退化
  • 不擅長使用電子產品(包含無連網產品)
  • 桌上型電腦課程經驗,巔峰時期可以獨力完成開、關機流程
  • 沒有智慧型手機
閱讀全文 教導年長者使用平板電腦

OkHttp 綁定 AWS SSL 憑證

前言

前陣子印尼員工遭遇了手機無法連到 AWS EC2 主機的問題,請對方開啟網頁瀏覽器連自家 API,網址列上出現了驚嘆號,懷疑是自家主機不被該裝置信任,出了一版綁定憑證 (SSL pinning) 的版本,果然順利連到了主機。

延伸問題

EC2 的憑證每年換發一次,若應用程式每年也需要出新憑證的版本,到時肯定會手忙腳亂(很容易忘記),而且會有不相容舊版的狀況發生。

閱讀全文 OkHttp 綁定 AWS SSL 憑證

口罩地圖開發思路

前言

2/6 要實施購買口罩實名制的政策,前一天我對同事發表了「明天晚點到公司宣言」,口罩即將用盡的我,勢必得在政策實施的第一天補充庫存,雖然每個人只能選購兩片,但大家都有把髒內褲翻過來當作新的來穿的經驗,兩片口罩撐一週當然沒問題,翻過來又是一條好漢。(開玩笑的,正確配戴方式請查閱衛福部:口罩應反過來配戴?

當我要查詢附近特約藥局時,發現民間做的口罩地圖服務被大流量灌爆,甚至有人吃了一張 Google 的 60 萬元帳單。這件事應該是要被解決的,於是興起動手做一個的想法。

閱讀全文 口罩地圖開發思路