Flutter - 浅谈

    联系人:石虎 QQ:1224614774  昵称: 嗡嘛呢叭咪哄

                          QQ群:807236138  群称: iOS 技术交流学习群

 

一、Flutter 基础

1.概念

2018年2月27日,在2018世界移动大会上,Google发布了Flutter的第一个Beta版本。Flutter是Google用以帮助开发者在Ios和Android两个平台开发高质量原生应用的全新移动UI框架,点击查看Flutter介绍视频

2.背景

在全球,随着Flutter被越来越多的知名公司应用在自己的商业APP中,Flutter这门新技术也逐渐进入了移动开发者的视野,尤其是当Google在2018年IO大会上发布了第一个Preview版本后,国内刮起来一股学习Flutter的热潮。目前使用flutter 开发的app有闲鱼。

3.简介

Flutter 是 Google推出并开源的移动应用开发框架,主要是跨平台、高保真、高性能。开发者可以通过 Dart语言开发 App,一套代码同时运行在 iOS 和 Android平台。 Flutter提供了丰富的组件、接口,开发者可以很快地为 Flutter添加 native扩展。同时 Flutter还使用 Native引擎渲染视图,为用户提供良好的体验

 

二、Flutter 环境配置

1.环境要求

win7或更高版本系统(64位)

至少400M的磁盘空间(不包含IDE)

Android Studio 3.0 及以上

Android 4.1(API 16)以上

git

2.安装Flutter

使用git命令克隆beta版本的Flutter到本地
git clone -b beta https://github.com/flutter/flutter.git

3.配置环境变量

在系统环境变量中找到Path,在最后添加Flutter的bin目录路径,例如:D:\Android\flutter\bin

 

三、Flutter 学习:

1.widget

Flutter Widget采用现代响应式框架构建,这是从 React 中获得的灵感,中心思想是用widget构建你的UI。 Widget描述了他们的视图在给定其当前配置和状态时应该看起来像什么。当widget的状态发生变化时,widget会重新构建UI,Flutter会对比前后变化的不同, 以确定底层渲染树从一个状态转换到下一个状态所需的最小更改

2.dart

Dart 是一个静态语言,这也是相对于js的一个优势。Dart可以被编译成js,虽然看起来像java。静态语言可以避免错误,获得更多的编辑器提示词。极大的增加了可维护性

3.pub依赖之yaml文件

Flutter工程之间的依赖管理是通过Pub来管理的,依赖的产物是直接源码依赖,这种依赖方式和iOS中的Pod有点像,都可以进行依赖库版本号的区间限定与Git远程依赖等,其中具体声明依赖是在pubspec.yaml文件中,其中的依赖编写是基于YAML语法,YAML是一个专门用来编写文件配置的语言,声明依赖后,通过运行flutter packages get命名,会从远程或本地拉取对应的依赖,同时会生成pubspec.lock文件,这个文件和IOS中的Podfile.lock极其相似,会在本地锁定当前依赖的库以及对应版本号,只有当执行flutter packages upgrade时,这时才会更新。

 

四、Flutter 特点:

跨平台:现在flutter至少可以跨5种平台,常见的平台:MacOS,Windows ,Linux ,Android ,iOS ,到目前为止,Flutter算是支持平台最多的框架了。良好的跨平台性,大大减少了开发成本。

丝滑般的体验:使用Flutter内置的Material Design(android风格)和Cupertino(ios风格)风格组件,以及丰富的motion API,平滑而自然的滑动效果和平台感知,为用户带来全新的体验。

响应式框架:使用一系列基础组件和响应式框架,可以轻松构建用户界面。使用功能强大且灵活的API可以实现复杂的界面效果。

支持插件:使用插件可以访问平台本地API,如相机,蓝牙,WIFI等等。借助现有的Java,swift ,object c , c++代码实现对原生系统的调用。

60fps超高性能:Flutter编写的应用可以达到60fps(每秒传输帧数)。Flutter采用GPU渲染技术,所以性能很好。完全可以胜任游戏开发。

 

五、Flutter 参考资料:

      Flutter 简书:https://www.jianshu.com/p/1bf88fa23a70

      Flutter 中文网 https://flutterchina.club/get-started/install/

      Flutter 库地址 https://flutterawesome.com/

      Flutter 实战 https://book.flutterchina.club

      Flutter 开发经验 https://segmentfault.com/a/1190000017164263

      Flutter 在线编辑器  https://dartpad.dartlang.org

      Flutter demo  https://github.com/iampawan/FlutterExampleApps

      Flutter demo  https://github.com/zhujian1989/flutter_study

 

谢谢!!!

本账号主要分享我成长过程中的各种心得感悟,包括技术总结, iOS、Swift 、Java和 Mac 相关技术文章、工具资源、参与技术讨论,整理开发技巧、让学习成为一种享受!!!