Flutter 閑聊

Part1 移動端開發(fā)閑聊

原生:iOS、Android
跨平臺:H5、小程序、React Native、Weex、Flutter
[圖片上傳中...(image.png-6a946a-1584728464816-0)]

原生開發(fā):就聊聊 iOS 吧(Android 不熟 ??)。OC 這個語種,當年剛接觸的時候真的各種不習慣,給人的第一感覺就是很奇葩,用起來很別扭,但自己又特別喜歡蘋果的產(chǎn)品??,好在蘋果現(xiàn)在一直在推 Swift ,當年也是很感興趣 2.0 就入了坑,經(jīng)歷了一次 Swift 版本升級之后果斷棄坑了,不過現(xiàn)在應該好很多,很多公司的招聘要求也是需要懂 Swift,但是在接觸了像 React 這種響應式 UI 開發(fā)后,現(xiàn)在偶爾去 OC 這種命令式開發(fā),著實有些難受...

跨平臺開發(fā):之前有接觸過 RN,Hot Reload (JIT 是絕對要吹一波的),對于 UI 開發(fā)效率的提升簡直是飛躍,React 的 Diff 算法也是令人拍案叫絕,但是 RN 最終是需要通過 JSCore 轉(zhuǎn)為原生,所以理論上講,運行效率是不如原生的,且由于需要依賴原生,不同平臺控件需要單獨維護,系統(tǒng)更新后,社區(qū)控件多數(shù)情況下是滯后的。

Part2 今天的主題 Flutter 閑聊

先來感受下幾個跨平臺技術(shù)的星星情況(2019年12月07日)




Flutter 作為一個后起技術(shù),僅從 GitHub 的反響來看,是相當不錯的。
其次 Flutter 選擇的 Dart 這門語言借鑒了很多前端開發(fā)的優(yōu)秀思想,比如 React 的響應式 UI 框架設計思想,async、await 像同步編程那樣異步編程等。Flutter使用 Skia 作為其 2D 渲染引擎(Skia 是跨平臺的,并提供了非常友好的 API,目前 Google Chrome 和 Android 均采用 Skia 作為其繪圖引擎),理論上渲染效率要高于 RN。而且同時支持 AOT 與 JIT,開發(fā)時 JIT 可以高效開發(fā)、發(fā)布運行時 AOT 可以高效運行(這個可以大吹一波了??)

Part3 近期 Flutter 開發(fā)感受

  • 一切皆對象:null、int 這些都屬于對象
  • 一切皆 Widget:連布局都是 Widget(像 H5 、RN 等都是分離開的,這個剛開始還是有些不習慣...)

Part3.1 Dart 語言小結(jié)(比較跳躍...):

  • Dart 沒有 public、private、protected 這些關(guān)鍵字,變量名以 _ 打頭意味著它的 lib 是私有的

  • 類即接口,可以繼承一個類也可以實現(xiàn)一個類

  • 盡量給變量一個確定的類型

  • 沒有初始化的變量,初始值默認都為 null

  • const 是編譯時常量

  • final const 修飾的變量建議指定數(shù)據(jù)類型

  • 常量如果是類級別的,使用 static const

  • 和 c、oc 一樣,有斷言 assert

  • List 里邊的元素必須保持類型一致,同 java

  • Map 的 key 類型也需要保持一致,key 不可以相同

  • 級聯(lián)符號 .. 允許在同一個對象上進行一系列操作

  • 使用 { } 指定命名參數(shù),同 OC 命名參數(shù)

  • 使用 [ ] 來標記可選位置參數(shù)

Part4 Flutter 學習資料整理

圖片來源于網(wǎng)絡

Part5 IDE 推薦

剛開始玩 Flutter 時官網(wǎng)推薦了 Android Studio 和 VSCode 兩款 IDE ,我先用了前者,因為現(xiàn)在做的是混合開發(fā),需要同時開啟 Xcode 與 Android Studio ,由于鄙人電腦配置不是很好,那“歡樂小菊花”轉(zhuǎn)起來有時候真讓人崩潰,后面就嘗試了后者 VSCode,不得不再吹一波,這個 IDE 是真真兒強大,插件庫豐富,打開速度很快,偏好設置直接設置 json (settings.json 文件) 就行
分享下我在使用的插件及配置


{
    // 主題
    "workbench.colorTheme": "Default Light+",

    // 控制何時自動保存已更新文件。接受的值: "off"、"afterDelay"、"onFocusChange" (編輯器失去焦點)、"onWindowChange" (窗口失去焦點)。如果設置為 "afterDelay",可在 "files.autoSaveDelay" 中配置延遲時間。
    "files.autoSave": "afterDelay",
    "files.autoSaveDelay": 3000,

    // 保存的時候自動格式化
    "editor.formatOnSave": true,

    "dart.openDevTools": "flutter",

    // vscode-fileheader 插件配置
    "fileheader.Author": "shaolin",
    "fileheader.LastModifiedBy": "shaolin",
    "workbench.iconTheme": "vscode-icons"
}

Part6 摘自官網(wǎng)一段作為結(jié)束語,挺振奮人心的??????


希望會給大家?guī)韼椭?O(∩_∩)O

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容