筆記一下把Go build成aar lib的步驟
1、首先Go的程式要設定pkg(lib)、struct名稱,並且開放Func
2、gomobile init產生gobind
3、gomobile bind --target android
4、aar移至main/libs,並設定gradle
5、MainActivity加入MethodChannel
6、import flutter/services,撰寫MethodChannel的實作

Do you understand what's ?
medium.com/p/dd84b624d0e

"
Flutter isn't an application framework, it's a portable UI toolkit.
...you create, compose, and rebuild your custom widgets in this tree whenever you want the pixels to change.
Beyond the widget tree, you should do whatever you need to do to implement the features that are unique to your app. The questions are how a developer can get info into this widget tree, and how to get events out of the tree.
"

今天在看 如何傳值給命名的頁面,發現還滿容易的。
flutter.dev/docs/cookbook/navi

感想就是…不需要下轉場動畫的頁面可以直接設定在 routes
需要轉場動畫的頁面,可以在 onGenerateRoute 讀取傳遞的參數,並且設定頁面所需的轉場動畫⭐

這兩天在寫 時遇到 CupertinoPicker Widget 沒有按照預期更新的問題。
資料 List 已經更新,但是 Widget 的內容卻不正確。
正好最近看到網友分享的文章,加個 Key 就可以解決⭐️
juejin.im/post/5ca2152f6fb9a05
如果大家寫 Flutter 發生類似的問題,就加個 Key 試試吧!

直播教學第二彈結束! youtu.be/2yH2wiuEf8c
今天上班好累回家就先昏迷了一會…
真心覺得不想再搞直播教學了😵
(沒錯!我就是知道自己會這樣想所以之前都沒做!)
(如果不是幫忙 推廣 ,我還真不想下水)

#感謝主辦單位拖著我這個懶惰鬼做這一系列的直播
#可惜這對上班族來說實在有點吃力
#再撐一下就結束了

最近 Google 展示了 的語法糖 Provider,看了教學我也拿 Sample Code 來練習一下😀
gist.github.com/yenru/7c35a6e8

#語法不自己練習真的不會用

勞動節的時候把 教學完成了。因為目標對象是沒學過程式的人,所以現在就是四處收集意見,看還有那邊不夠清楚再補充。
davina.pse.is/E38ZY

只是,看懂這份投影片真的不等於會寫程式,實際運用還是自己做專題比較快。
這裡的東西充其量只是個入門卷,是身為程式設計師應該要懂的基本中的基本。
由於是為了 做的教學,所以應用的部份還是會回到 Flutter 吧(如果還要繼續寫的話,雖然我懶惹)。

#內容參考Udacity的Python
#還有7年前在自己部落格發表的程式教學
#沒想到關站之後那些文章以這種形式活下來惹

之前參加 的作品。
github.com/yenru/swap_card

稍微分享一下我是如何開始的吧。
首先我的腦海中有個完成的畫面,於是先用CSS將Transform的效果做出來,確認我要用的是translation與scale的效果。
接著準備搬到 時,因為我想做手動→移動的效果,所以先去找了GestureDetector的範例,dragPercent就是這樣來的。
接著透過scrollPercent控制動畫的位置,並且確認執行的效果,然後就發現stack順序必須調整。
其實我一開始沒有用三角函數,但是參賽的作品只能寫5KB,加上stack的問題要判斷真的會寫太多語句,只好趕快搜尋三角函數來用,寫出來的程式真的漂亮很多🌸
最後就是回頭處理卡片控制的部份,然後測試Bug…其實現在還有一點小🐞 ,不過我懶得處理它啦😂

今天在 TECH(K)NOW DAY 分享的 教學投影片也分享在這邊~
現場大家環境沒設定好導致來不及寫code是比較可惜一點,不過照著投影片一步一步做也是ok的喔~
davina.pse.is/GLC9D

分享 Codelabs 的課堂練習,
將計數器Sample的StatefulWidget修改成只有數字的部份。

方法一:撰寫function冒泡式呼叫。
gist.github.com/yenru/bda56488

方法二:使用ValueNotifier物件通知更新。
gist.github.com/yenru/7e55bd3d

分享 的建構子與JSON操作,主要是在 API 轉成物件時容易遇到問題。
gist.github.com/yenru/3a279e35

#發現500個字貼Code還是不夠用
#只好用Gist分享了

要寫一個 app,我想大致可以分成兩個部份來完成:功能和介面。
初學者通常是從介面 Widget 開始學起,不過 API(service) 的介接也很重要。
單純呼叫 API 也不是什麼大問題,不過把回傳的內容轉成物件就有點麻煩。
來分享建立物件的幾個重點。

有學員詢問 多國語系的施作方式。
距離上次施作已經很久,都快忘記怎麼弄了,趕緊來筆記一下
github.com/flutter/website/tre

1、參考範例編寫 DemoLocalizations 與 DemoLocalizationsDelegate 物件,存檔為 xxx.dart
2、輸入指令 ...run intl_translation:extract_to_arb...xxx.dart 產生 intl_messages.arb
3、複製成 intl_zh_TW.arb 並修改內文
4、輸入指令 ...run intl_translation:generate_from_arb... 產生 messages_all.dart 與 messages_zh_TW.dart
5、import xxx.dart,並按照範例設定與使用

#東西不寫下來真的會忘記
#其實我只是順便分享而已

直接用 寫動畫覺得太難,所以我是先寫CSS的動畫,再將它轉至Flutter的語法(利用Chrome的F12可以直接改數值看結果)。
不過最近想的動畫效果要用Matrix才有辦法實現,要填Matrix的數值又要寫出動畫路徑的方程式才能算出來,一整個覺得頭很大,十幾二十年沒用早就還給老師啦!只好放棄~做簡單的效果就好…

#是誰說前端不用數學
#客制個動畫效果來給我看看
#早知道可以做動畫我一定超愛玩

和我一起帶 Codelabs 的助教分享 webview 的用法,順便借題發揮一下😜
medium.com/@chloe.thhsu/75969b

除非是社群app讓用戶分享網址,不然我覺得app功能要開啟webview是不太好的做法(通常代表沒做完)。
所以我們比較喜歡把HTML做得很像app的內容嵌在裡面,讓使用者感覺不出來那是網頁,而是app的一部份。
對於文字內容很多,或是更新麻煩的頁面來說,這是個不錯的做法。LINE TODAY就是很好的範例,它的內容其實都是網頁喔!

舉辦了一個UI/UX為主的比賽,我打算寫個轉場特效來試試。不過5KB的限制實在有點棘手,感覺寫動畫很容易超過呀😂

flutter.io/create

最近用 的http連接api時遇到幾個雷。
首先body傳入的不是Map<String, dynamic>而是Map<String, String>。
然後傳遞的content-type是application/x-www-form-urlencoded而不是application/json。
plugin的文件不見得寫得清楚,有時候還是要點進去程式看才行。

#搞得我差點放棄用api改用Cloud Firestore
#一切都是Google的陰謀(X

今天和同事聊跨平台開發App的程式語言,才知道有Kotlin/Native,想當初我也很看好Kotlin。突然明白為什麼 社群異常熱絡、 要這麼大力推行了。

#這不是我認識的Google
#這年頭社群也是語言選擇的指標之一
#可惜Kotlin/Native還不能用Windows開發

三月份每週四晚上要帶一個 基礎課程,由於是鎖定沒寫過App甚至將來會是沒寫過程式的人,所以著手開始做 的教學。
可惜時間緊迫,教學只先做了一半。首期的學員還是以有程式基礎的為主,這些資料僅作為補充,後續再慢慢將它補完。

#順便把帶人遇到的天兵狀況補充進去
#再發生相同的錯誤就要拿出來打臉了

davina.pse.is/E38ZY

最近學 有一些小心得,但內容沒有豐富到可以寫成文章,而且我已經決定不再發技術型的部落格,再三考慮之後決定以後就發佈在這兒吧!

#新的個人日誌即將開張 :blobaww:
#我不想有粉絲
#Twitter帳號是想練習英文,雖然也是荒廢掉了😂

Mastodon

Server run by the main developers of the project 🐘 It is not focused on any particular niche interest - everyone is welcome as long as you follow our code of conduct!