Part1 移動端開發(fā)閑聊
原生:iOS箱沦、Android
跨平臺:H5稼病、小程序绕沈、React Native肮韧、Weex融蹂、Flutter
[圖片上傳中...(image.png-6a946a-1584728464816-0)]
原生開發(fā):就聊聊 iOS 吧(Android 不熟 ??)。OC 這個語種弄企,當年剛接觸的時候真的各種不習慣超燃,給人的第一感覺就是很奇葩,用起來很別扭拘领,但自己又特別喜歡蘋果的產品??意乓,好在蘋果現在一直在推 Swift ,當年也是很感興趣 2.0 就入了坑约素,經歷了一次 Swift 版本升級之后果斷棄坑了洽瞬,不過現在應該好很多,很多公司的招聘要求也是需要懂 Swift业汰,但是在接觸了像 React 這種響應式 UI 開發(fā)后伙窃,現在偶爾去 OC 這種命令式開發(fā),著實有些難受...
跨平臺開發(fā):之前有接觸過 RN样漆,Hot Reload (JIT 是絕對要吹一波的)为障,對于 UI 開發(fā)效率的提升簡直是飛躍,React 的 Diff 算法也是令人拍案叫絕,但是 RN 最終是需要通過 JSCore 轉為原生鳍怨,所以理論上講呻右,運行效率是不如原生的,且由于需要依賴原生鞋喇,不同平臺控件需要單獨維護声滥,系統(tǒng)更新后,社區(qū)控件多數情況下是滯后的侦香。
Part2 今天的主題 Flutter 閑聊
先來感受下幾個跨平臺技術的星星情況(2019年12月07日)
Flutter 作為一個后起技術落塑,僅從 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 語言小結(比較跳躍...):
Dart 沒有 public州藕、private束世、protected 這些關鍵字,變量名以 _ 打頭意味著它的 lib 是私有的
類即接口床玻,可以繼承一個類也可以實現一個類
盡量給變量一個確定的類型
沒有初始化的變量毁涉,初始值默認都為 null
const 是編譯時常量
final const 修飾的變量建議指定數據類型
常量如果是類級別的,使用 static const
和 c锈死、oc 一樣贫堰,有斷言 assert
List 里邊的元素必須保持類型一致,同 java
Map 的 key 類型也需要保持一致待牵,key 不可以相同
級聯符號 .. 允許在同一個對象上進行一系列操作
使用 { } 指定命名參數其屏,同 OC 命名參數
使用 [ ] 來標記可選位置參數
Part4 Flutter 學習資料整理
混合開發(fā)官方集成方案:https://github.com/flutter/flutter/wiki/Add-Flutter-to-existing-apps#ios
中文網:(環(huán)境配置、SDK介紹等)https://flutterchina.club/get-started/install/
Dart 在線練習:https://dartpad.cn/
Flutter 布局詳解(寫的很好)https://github.com/yang7229693/flutter-study
Widget 生命周期
https://juejin.im/post/5d8c8fbaf265da5b9e0d2eb6
- 異步async缨该、await和Future的使用技巧
https://segmentfault.com/a/1190000014396421
Part5 IDE 推薦
剛開始玩 Flutter 時官網推薦了 Android Studio 和 VSCode 兩款 IDE 偎行,我先用了前者,因為現在做的是混合開發(fā),需要同時開啟 Xcode 與 Android Studio 蛤袒,由于鄙人電腦配置不是很好熄云,那“歡樂小菊花”轉起來有時候真讓人崩潰,后面就嘗試了后者 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 摘自官網一段作為結束語虑稼,挺振奮人心的??????
希望會給大家?guī)韼椭?O(∩_∩)O