iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 8
0
Mobile Development

「Google Flutter」學習筆記系列 第 8

【Day 8】humanbeans-clock - 一場 Flutter Clock 競賽中誕生的布穀鳥鐘

  • 分享至 

  • xImage
  •  

今日要點
》前言
》介紹 humanbeans-clock 專案
》下載並編譯 humanbeans-clock 專案


前言

這次要介紹的 Github 專案,是一個時鐘,時鐘一直都是很常出現的實作專案,因為他可以練習到很多面向的程式技巧。每秒要更動一次狀態,對迴圈的處理,對畫面的處理,可以很好的練習到很多程式結構的語法。

剛好看到這個比賽的介紹,小小的時鐘,也能千變萬化的。所以今天就介紹這個比賽中,一個得獎的作品。

介紹 humanbeans-clock 專案

這是一場由Google舉辦的一項基於Flutter技能的Flutter Clock競賽,包括Flutter,Google Assistant和Lenovo團隊的參與。

比賽內容:創建漂亮的鐘面UI,使用Flutter為Lenovo Smart Clock構建漂亮的鐘面UI,從而有機會贏得iMac Pro,Lenovo Smart Display或Lenovo Smart Clock。提交期限已於2020年1月20日結束。

比賽已經結束了,每個的評分標準如下,一共有4個獎項:
Visual Beauty 視覺美感
Code Quality 代碼質量
Novelty 創意新穎
Overall Execution 總體執行(包括可訪問性)

今天介紹的是 Overall Execution 總體執行最高分的時鐘,brestnichki/humanbeans-clock 162 的星星,觀注度不太高的但蠻有趣專案。

在 README.md 的內容說明

鳥每天只拜訪一次,只停留一分鐘。 您可能已經好幾個星期都看不到它了,有時您只會瞥見它飛走的樣子。 但是有時候你和鳥會共享一個特殊的時刻。 許個願望,從另一個房間打電話給別人看,或者什麼都不做-這是您的特殊時刻!

  

嗯,老實說,我還沒看到鳥出現,要看到可能要一直等,或是我去改 code 強迫他出現 XD

剛把這個專案執行起來時,感覺果然很特別,樹枝會輕微的搖動,樹葉會掉落飄散,數字向上切換。整體來看都很不錯,果然是得獎級的作品。

數字的切換畫面

下載並編譯 humanbeans-clock 專案

所以我們就來練習編譯一下看看有沒有問題。

那麼我們就開始下載並且建立這個 humanbeans-clock 專案囉。

% git clone https://github.com/brestnichki/humanbeans-clock.git

Cloning into 'humanbeans-clock'...
remote: Enumerating objects: 365, done.
remote: Counting objects: 100% (365/365), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 365 (delta 169), reused 343 (delta 151), pack-reused 0
Receiving objects: 100% (365/365), 2.43 MiB | 1.63 MiB/s, done.
Resolving deltas: 100% (169/169), done.


% cd humanbeans-clock 
% flutter pub get

Because clock depends on flutter_test any from sdk which depends on clock 1.0.1, clock 1.0.1 is required.
So, because clock is 1.0.0+1, version solving failed.


好吧,很不幸,有問題,沒關係,我們來解決一下。
把 pubspec.yaml 打開
把 version: 1.0.0+1 改成 version: 1.0.1

ok, 再執行一次 flutter pub get,看起來可以了。

% flutter pub get

Running "flutter pub get" in humanbeans-clock...    0.3s


試 build 一下,

% flutter run -d all

OK 成功!

他是橫幅模式的,所以轉一下手機方向 XD

程式架構研究

Main.dart : MaterialApp

Clock.dart : _ClockState

今天就先這樣吧。

好,第8天,寫完。

參考:


上一篇
【Day 7】Flutter-UI-Kit - 一組常用UI的合集
下一篇
【Day 9】canvas_clock - 一場 Flutter Clock 競賽中誕生的華麗Curves時鐘
系列文
「Google Flutter」學習筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言