Flutter 闲聊

Part1 移动端开发闲聊

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

原生开发:就聊聊 iOS 吧(Android 不熟 )。OC 这个语种,当年刚接触的时候真的各种不习惯,给人的第一感觉就是很奇葩,用起来很别扭,但自己又特别喜欢苹果的产品,好在苹果现在一直在推 Swift ,当年也是很感兴趣 2.0 就入了坑,经历了一次 Swift 版本升级之后果断弃坑了,不过现在应该好很多,很多公司的招聘要求也是需要懂 Swift,但是在接触了像 React 这种响应式 UI 开发后,现在偶尔去 OC 这种命令式开发,着实有些难受...

跨平台开发:之前有接触过 RN,Hot Reload (JIT 是绝对要吹一波的),对于 UI 开发效率的提升简直是飞跃,React 的 Diff 算法也是令人拍案叫绝,但是 RN 最终是需要通过 JSCore 转为原生,所以理论上讲,运行效率是不如原生的,且由于需要依赖原生,不同平台控件需要单独维护,系统更新后,社区控件多数情况下是滞后的。

Part2 今天的主题 Flutter 闲聊

先来感受下几个跨平台技术的星星情况(2019年12月07日)




Flutter 作为一个后起技术,仅从 GitHub 的反响来看,是相当不错的。
其次 Flutter 选择的 Dart 这门语言借鉴了很多前端开发的优秀思想,比如 React 的响应式 UI 框架设计思想,async、await 像同步编程那样异步编程等。Flutter使用 Skia 作为其 2D 渲染引擎(Skia 是跨平台的,并提供了非常友好的 API,目前 Google Chrome 和 Android 均采用 Skia 作为其绘图引擎),理论上渲染效率要高于 RN。而且同时支持 AOT 与 JIT,开发时 JIT 可以高效开发、发布运行时 AOT 可以高效运行(这个可以大吹一波了)

Part3 近期 Flutter 开发感受

  • 一切皆对象: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 学习资料整理

  • 官网:https://flutter.dev/

  • 官方 wiki:https://github.com/flutter/flutter/wiki

  • 混合开发官方集成方案:https://github.com/flutter/flutter/wiki/Add-Flutter-to-existing-apps#ios

  • 中文网:(环境配置、SDK介绍等)https://flutterchina.club/get-started/install/

  • Dart 在线练习:https://dartpad.cn/

  • 插件:https://pub.dev

  • 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 ,我先用了前者,因为现在做的是混合开发,需要同时开启 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 摘自官网一段作为结束语,挺振奋人心的


希望会给大家带来帮助 O(∩_∩)O

你可能感兴趣的:(Flutter 闲聊)