iT邦幫忙

2022 iThome 鐵人賽

DAY 30
0

今天要來分享一些flutter資源、好用的套件和一些對於flutter的看法。

雜談

若是有興趣繼續研究flutter的朋友,可以到下列地方找尋資源:

  • awesome flutter : 網羅各式各樣強大的flutter套件、開發工具、教學文等等
  • open source flutter app:蒐集了許多開源的flutter app,可以在這邊看到其他專案是如何實踐的、flutter可以做到什麼地步
  • What's new: 官方release note,持續發布flutter最新的改動方向

個人認為在Flutter上開發的體驗蠻乾淨舒適的。官方對此框架有良好的support:

  • 除錯層面,提供官方的debugger工具、支援hot reload,從log和畫面上便於即時察覺編程時的問題
  • 套件由官方pub.dev統一管理,所有套件會依照文件和專案完善程度、社群受歡迎程度進行評比,使用的時候更為安心
  • 文件寫得清楚明瞭,解答開發者的疑惑、查詢某個的widget怎麼用很有效

對flutter不太滿意的地方有:

  • 組件的api過於複雜。由於flutter UI是組合式架構,每一個組件都有對應的class,每一個組件的設定又有各自的class,層層下來蠻雜亂的。舉例來說: Container的大小要用Decoration類來制定,但是Button系列的大小卻要用.styleFromshape, minimumSize配合外層的組件來設定。

    雖然可以理解官方把ButtonContainer視為定位完全不同的組件,但這遠不如React Native使用類似css的設定,或者Android元件大小直接用layout_width, layout_height統一調整來得簡單。

  • 不如React Native支援熱更新(code-push)。雖然Dart和JS都可以JIT編譯,技術上理論是可行的,官方卻表明不會支援。就安全性而論,code-push本身的確有對應的風險,不過反過來說,不支援code-push代表每次小更新或修bug就要比照上架流程。在線上產品出錯時,對用戶(bug沒辦法被及時修正)和開發者(要一直走送審流程)雙方都不是非常好的體驗。

  • Dart語言和其他跨平台用的語言相較之下是真的很小眾。Xamarin的C#可以用來寫web app, desktop app, 寫後端服務, 寫遊戲;React Native的javascript搞不好是世界上最多人在用的、最受歡迎的語言之一。市面上Dart的應用門路稍微窄了點,特別去學Dart基本上就是來寫flutter app了。

總結而言,Flutter目前聲量的確挺高的。可以看出Google蠻用心在推這個跨平台框架的,之前都會戲稱Flutter已經到3.0了React Native還沒1.0。而且Flutter隨著近年的發展,各面向的社群套件也漸趨完善。不管有沒有要用來求職,個人都覺得是一個值得一探究竟的技術。

完賽心得

第一次參加鐵人賽終於完賽了。

連續三十天發文沒有想像中的簡單。儘管一開始想好了系列文的架構,實際下去寫文章並實作才發現規劃的大綱有許多思慮不週之處。

最大的難題在於三十天內,每天都要一邊思考今天要分享的內容、一邊做出成品。

常常是想好今天要分享的主題,實作的時候卻牽扯到還沒講到的概念,然後在那邊糾結要不要先寫進去...也曾在寫的時候才發現自己其實對於某個概念其實不熟悉而回頭複習。不過有了這次的經驗,下次會規劃得更好的。

個人蠻推崇鐵人賽的概念,相較於一篇一篇零碎的技術文章,鐵人賽要求三十天用更全面更完善的方式來講述一個主題。不過,這次選用的主題:「30天從開發到上架」範圍是有點太廣了,以至於好像什麼都碰到一點邊,但是沒有好好地講述實作的原理和細節,接下來也要好好思考自己的鐵人賽文章的定位。

原本預期可以在最後一天帥氣地放上三十天實作的flutter app在架上的照片,不過到最後一天app好像還沒通過審核,只好當作殘念了;是說,近期app審核的時間好像變更久了。

希望這次的文章可以帶給從未見過flutter / 不了解mobile app開發流程的朋友一些幫助~

好的,那我們就下次見!


上一篇
我發佈了我的第一個APP,下一步呢?
系列文
Flutter 30: from start to store30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言