Flutter使用记录

Flutter

  • Flutter谷歌的移动端UI框架,使用Dart语言开发,可以快速的在iOS和Android上构建高质量的原生用户界面。

以往的跨平台框架

  • WebView,这是第一个跨平台框架,基于JavaScript 和 WebView 例如 Cordova、PhoneGap、APPCan、Ionic等,应用程序可以编写成Html,并最终在移动平台的Webview中显示,并通过JavaScript interface和原生交互。

    缺点:

    • 加载速度慢,达不到原生UI体验。
    • 内存消耗比较大。
    • 手势、动画和原生差距较大。
    • 相关原生功能支持有限。
  • 响应式视图,原生体验的第二代跨平台框架,如ReactNative/Weex,生成虚拟DOM,并进一步对应生成原生的组件,让页面由原生组件组成,来到达原生的体验。JS代码和原生代码本身都是很快的,瓶颈经常发生在当我们视图从一边转向另一边时,所以构建高质量的应用程序时,我们必须将使用桥接的次数控制到最小。

    缺点:

    • 虚拟DOM和原生组件的沟通需要Bridge。
    • 一些复杂的交互组件和动画性能上表现达不到原生效果。
    • 各平台之间的兼容问题。
  • Flutter,第三代跨平台框架,Flutter也提供响应式的视图,Flutter采用不同的方法避免由JavaScript桥接器引起的性能问题,即用名为Dart的程序语言来编译,Dart是用预编译的方式编译多个平台的原生代码,这允许Flutter直接与平台通信,同时使用Skia图形引擎来完成图形、文本、图像、动画等绘制,拥有自己独立的一套图形系统,不再依赖于原生。

  • 更多内容见

    Flutter中文网

    移动开发新利器 | 一文深入了解 Flutter 界面开发

    下一代移动端跨平台框架-Flutter大解密

开始使用

  • 现在按照Flutter中文网上面的资料,做Demo体验下Flutter。更多内容后期抽空探索。

  • 要获得Flutter,请先使用git克隆Flutter,然后将该flutter工具添加到您的用户路径。运行 flutter doctor 显示您可能需要安装的剩余依赖项。

  • 获取Flutter SDK

    git clone -b beta https://github.com/flutter/flutter.git
    
  • 修改环境变量 open ~/.bash_profile 将下面内容加入配置文件,并source ~/.bash_profile 刷新当前终端窗口。

    export PUB_HOSTED_URL=https://pub.flutter-io.cn //国内用户需要设置
    export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn //国内用户需要设置
    export PATH= PATH_TO_FLUTTER_GIT_DIRECTORY/flutter/bin:$PATH
    
    //注意:PATH_TO_FLUTTER_GIT_DIRECTORY 为你flutter的路径,比如“~/document/code”
    
  • 运行 flutter doctor

    一般的错误会是xcode或Android Studio版本太低、或者没有ANDROID_HOME环境变量等,请按照提示解决。

  • Android Studio安装Flutter和Dart插件,在插件搜索中搜索Flutter,安装重启studio。

    • Flutter插件: 支持Flutter开发工作流 (运行、调试、热重载等).

    • Dart插件: 提供代码分析 (输入代码时进行验证、代码补全等).

  • 创建一个新应用

    • 选择 File>New Flutter Project

    • 选择 Flutter application 作为 project 类型

    • 然后点击 Next输入项目名称 (如 myapp), 然后点击 Next

    • 点击 Finish等待Android Studio安装SDK并创建项目

    • 在项目目录中,您应用程序的代码位于 ==lib/main.dart.==

  • 下面用豆瓣电影的API做了一个简易丑陋的Demo,主要是体验Flutter创建界面、网络请求、数据解析的过程。

项目结构图
丑陋的运行效果

https://github.com/HappyMiao/FlutterDemo

你可能感兴趣的:(Flutter使用记录)