每日筆記

明天休息~

前言

今天有以下幾個主題:

  1. Flutter Learning Note
  2. Flutter Game Development Information
  3. 毛澤東的矛盾論
  4. 影片想法

Flutter Learning Note

今天延續昨天 Form 的主題,且在 Coding 的過程中,順帶學了一些技巧或理論知識。

  1. 在 Flutter 中,有兩種給予使用者輸入資料的 widget:TextField and TextFormField
  2. TextField 具有 “label”, “icon”, “inline hint text”, “error text” 等 Properties。而 TextFormField 是以 TextField 為基礎進一步封裝成的,因此多了像是 “validator”, “onSaved” 等能夠進行表單驗證的屬性。
  3. 在 Flutter 中,對於不會變動的對象,可以使用 const 進行效能優化。
    要注意能夠優化效能是因為被編譯為常量,如果 object 會在 widget tree 的生命週期中做變化,就不可以宣告為 const。
    被宣告為 const 的 object 在 widget tree 重新建構的時候不會一起重新構建,一定要特別注意這件事。(只有不會變動的 widget 這麼做才不會出問題。)
  4. EdgeInsets 可以用來控制容器的 padding。具有 “all”, “symmetric”, “only”, “fromLTRB”, “fromWindowPadding” 等控制方式。
    all 同時控制四邊,symmetric 分水平、垂直,fromLTRB 依左上右下控制。
    值得一提的是 “fromWindowPadding”,我們知道螢幕中可能會有系統狀態欄、導航欄或者屏幕邊緣的安全區域,如果要避開這些東西,fromWindowPadding 是一個很好的方法。使用 fromWindowPadding 方法,可以根據窗口的填充值來調整應用程序的佈局和元素的位置,以確保它們在不同設備上的顯示都是正確的。
    具體使用方式就要看經驗了,我還沒試過。
  5. 匿名函數的宣告方式有兩種,分別用於單行與多行。
    (parameters) => . . . ;      => 單行。
    (parameters) {                   => 多行
    . . . . . . 
    }              
  6. 在 TextField 中,想要在 text field 變動時有所行動,有兩種方式。
    “Supply an onChanged() callback to a TextField or TextFormField.”
    “Use a TextEditing Controller.”
    第二種能做的事更多,it’s more complex, but more power and more elaborate approach.
  7. 如果要使用 TextEditingController,有四個步驟要做
    一:建立 TextEditingController
    二:連結 TextEditingController to TextField
    三:Create the callback function we want
    四:Listen to the controller for changes
    Note*: 物件有生命週期,在創建的時後為 controller addListener,在結束的時候也要 dispose 掉,讓資源回歸。
  8. 命名方式。遵從命名慣例有助於提高程式碼的可讀性和一致性。(使其符合常見的程式設計慣例。)
    今天學到 Lowercase with Underscores (和其子集 snake_case)、Camel Case、Pascal Case。
實作Part

我把昨天的形式抄了過來。
某些 text field 在打字的時候,後台都會顯示 text field 的內容是什麼。
家這個圖示的這個頁面,使用的 onChanged() 這個方法。
愛心圖示的頁面,使用的是 controller 的方法。
愛心圖示的那個頁面,還外加了一個可以顯示 text field 內容的按鈕,按了會跳出 dialog。

Flutter Game Development Information

https://github.com/flutter/samples/tree/main/game_template
上述 repository 有一個遊戲的 template。

這個 template 中運用到了幾點要素:

  1. sound(音效)
  2. music(音樂)
  3. main menu screen
  4. settings – 遊戲設定的頁面
  5. ads (AdMob) – 遊戲廣告模組
  6. in-app purchases – 在 app 裡購買商品的模組
  7. game services – Game Center & Google play Games Services
  8. crash reporting – Firebase Crashlytics

如果要寫遊戲,這些都是值得研究的。

毛澤東的矛盾論

文:毛澤東的矛盾論

看完的心得

看的過程其實看得滿累的…與其說是理解上有問題,不如說這麼簡單的道理為什麼要講的這麼複雜…而且整篇雖有可取之處,但有好多地方都讓我覺得視野好狹隘(然而這樣的想法,有可能來自於時代的差異。或許在那個時代,這樣的想法是很高深的也不一定。也有可能,單純是我不理解他的奧妙。)

在哲學思辨上,常常會有評論某種東西正確或錯誤的說法。(先聲明,我不是哲學家,沒有受過專業訓練,我的邏輯和敘述可能存在問題。)
在矛盾論內,也說了很多其他主義怎麼樣怎麼樣、觀念錯誤又或者正確等等的用句。但,我不認為想法本身有錯誤或正確之分,任何想法換個角度就有可能是對的,也可能是錯的。重點從來就不在想法本身,而是用的地方、如何使用。文明發展出網路讓資訊高速傳遞,是為了讓我們可以更好的豐富自己,修煉各種想法合而為一的能力,而不是在思想上產生對立(我們可以體驗對立競爭的過程,但強加在他人身上就是種不道德的行為)。
主義與主義間的矛盾,就是發展的必要條件。不需要刻意使用對立字眼去辯論彼此是非,增加內部矛盾上升到外部矛盾的機率。

就我的理解,矛盾論也一直試著論述不應該以客觀角度去論述矛盾,以及其衍伸而成的發展,試圖否定唯心論等使用較多「主觀」的主義。
但回到哲學其中一個大問題:存在與本質。撇除主觀意識,純用客觀方法研究,真的有辦法得出「我們存在的意義是什麼」的答案嗎?
否定其他「主義整體」的意義在哪?只為捍衛自身「信仰」或「權力」而存在?

任何的理論都有其可取之處,也有會有所缺失。得其所長即可。教義雖然有他的問題在,但在特定時代背景,也有其重要性在。基督教教義如果配上撒旦教教義,就是一個很棒的想法。兩者都有其優缺,同樣,取其所長即可。
科學除了客觀描述的發展,也有主觀意識的發展。既然這兩種能夠同時發展,不就證明了兩者都很重要嗎?

任何的「    」只要能夠存在,就有其意義。能否體驗到,是緣分。
畢竟人生,真的,就只是場冒險,重要的,是自己想體驗什麼,想如何和他「人」互動,想了解世界的什麼。
唯一不道德的事,就是強行交流、互動。

影片想法

有想到可以製作的主題:

  1. 學習 Flutter 該知道的是(這個比較適合單一主題)
  2. Flutter 遊戲開發(這個適合系列主題)

現在雖然有些想法可以優化自己的影片,但要製作所需付出的時間成本好高。

另外,或許我應該從底下幾個影片風格選一些來做嘗試:

  1. 敘事風格(Narrative Style)
  2. 紀錄片風格(Documentary Style)
  3. 教學風格(Educational Style)
  4. 音樂視覺風格(Music Visual Style)
  5. 幽默搞笑風格(Humorous Style)
  6. 藝術實驗風格(Artistic Experimental Style)

今天的影片分享

影片主題:影片製作風格介紹!

Leave a Comment

Your email address will not be published. Required fields are marked *