Pixel 手機退換貨紀錄

前言

大約是今年十一月開始,我的手機待機時間無法超過四個小時。當時也沒多想,畢竟自己大多時候都待在可充電環境。到了十二月底,這個症狀惡化到電量以兩秒 1% 的速度在掉,有時電量超過 40% 也會直接關機,嚴重影響我的日常生活。

查了一下手機災情,才發現我也是電池膨脹的受害者,也因為很多人即便過保,還是得到了換機的機會,因此嘗試走了一遍客服流程。

流程

首先會需要聯絡客服,填寫一些相關問題:

https://support.google.com/pixelphone/gethelp

閱讀全文 Pixel 手機退換貨紀錄

Pixel 手機如何刷機、降版?

前言

自從我將 Pixel 3a 升上 Android 12 後,耗電有感提升,於是將手機刷回 11,最後發現烏龍一場,原來是我手機電池膨脹。不管怎樣,來記錄一下當初的降版方法吧!

前置作業

開始刷機

https://developers.google.com/android/images

上列官方網站其實有提供不同的版本讓使用者自由刷機,只要型號對了,就是看要刷什麼版本,其中 Pixel 2 以上的型號可以直接在網站中進行刷機,相當方便,本次降版就是直接在網站中刷機。

閱讀全文 Pixel 手機如何刷機、降版?

Kobo 電子書閱讀器使用心得

前言

大約是 2018 年 11 月左右,那時我正在菲律賓的語言學校,我不知從哪看到仙俠小說的漫畫,因為劇情深得我心,我將下課時間跟週末都用來追這部小說改編的漫畫,後來漫畫進度過慢就跑回去追原作,那時我主要是用手機開啟網頁閱讀小說。註:那部仙俠小說是耳根的仙逆,很毒,請小心閱讀。

長時間用手機閱讀其實滿不舒服的,尤其是眼睛特別疲勞。回台後,我小說還沒追完,為了解決閱讀的不適感,我開始搜尋閱讀數位內容的解決方案:電子書閱讀器。

我們熟悉的 3C 用品都是用發光的形式來顯示內容,我們常聽到這些電子產品的螢幕會發出藍光,對眼睛不好,像手機、電腦螢幕……等。而電子書閱讀器是以反射的方式呈現內容,如同我們一般閱讀的方式,利用環境光源照射才看得清楚,缺少了螢幕強烈的光線,讀起來自然較沒有負擔。

閱讀全文 Kobo 電子書閱讀器使用心得

OUTPUT 最高學以致用法讀後感

前言

前陣子面試了幾位專案經理,剛好其中一位擁有自己的部落格,便隨意看了看內容;裡頭分享了一本我滿感興趣的書籍:最高學以致用法:讓學習發揮最大成果的輸出大全。

「你是否曾看了大量書籍,但最後卻覺得跟沒看一樣?」

大概是這個概念抓住了我的眼球;我覺得我每天都在瘋狂吸收資訊,但還真的是看過就忘了,有吸收進去的內容少之又少,我想要改善這個狀況。

閱讀全文 OUTPUT 最高學以致用法讀後感

Cloud Functions for Firebase 跟 Google Cloud Functions 差在哪?

不知道大家有沒有注意過:Cloud Functions 除了出現在 Google Clould 裡頭,在 Firebase 也看得到它的身影,一樣的服務為何要放在兩個地方?還有,它們倆真的一樣嗎?

當然,第一個問題只有官方知道,我也只是猜測而已:在 Firebase 剛推出時,強調開發者專注寫程式就好,剩下的 Firebase 會幫我們搞定。Google Clould 服務五花八門,很多服務不是單純寫程式可以理解的,不少服務還要具備伺服器管理經驗才有機會接觸,對於純粹寫程式的開發者而言就沒這麼友善。而 Cloud Functions 也是專注在寫程式的服務,跟 Firebase 的初衷如出一轍,將 Cloud Functions 放在 Firebase 當然沒問題。

至於第二個問題,它們一樣嗎——答案是否定的。我是先從 Google Cloud Functions 開始使用,最近的 Side Project 才用了 Cloud Functions for Firebase,一開始我以為兩者相同,但沒多久我就意識到:差多了!

閱讀全文 Cloud Functions for Firebase 跟 Google Cloud Functions 差在哪?

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