Flutter 爱之初体验

Flutter是什么?

Flutter是Google公司出品,用于构建iOS和Android App的跨平台SDK,被世界各地的开发人员和组织使用,并且是免费开源的,开发者使用Dart编程语言构建App。

Flutter 的目标是用一套Dart语言创建高性能、高帧率、低延迟的 Android 和 iOS 或Fuchsia应用。并且开发出来的应用在不同的平台用起来跟原生应用具有一样的体验。

Flutter具有什么特点?

  • 响应式视图的优点,不需要JavaScript的桥接器

  • 快速,流畅,可预测; 代码将AOT编译为本机(ARM)代码

  • 开发人员完全控制UI组件和布局

  • 配有美观,可定制的UI组件

  • 强大的开发者工具,惊人的热重新加载

  • 性能更好,兼容性更好,开发起来更有乐趣

Flutter和ReactNative有什么区别?

React Native是非常受欢迎的(这是它应得的),但是因为JavaScript访问了原生UI组件,所以它也必须经过这些“桥接器”,界面上的UI控件通常被频繁地访问(在动画、转化或者用户用手指“滑动”屏幕上的某些东西时,每秒被访问高达60次),因此这很可能会导致性能问题。

640?wx_fmt=png

React Native中View渲染过程

和React Native一样,Flutter也提供响应式的视图,Flutter采用不同的方法避免由JavaScript桥接器引起的性能问题,即用名为Dart的程序语言来编译。Dart是用预编译的方式编译多个平台的原生代码,这允许Flutter直接与平台通信,而不需要通过执行上下文切换的JavaScript桥接器。编译为原生代码也可以加快应用程序的启动时间。

640?wx_fmt=png

Flutter中View渲染过程

实际上,Flutter是唯一提供响应式视图而不需要JavaScript桥接器的移动SDK,这就足以让Fluttter变得有趣而值得一试。

640?wx_fmt=gif

热重载

用流行的响应式框架构建UI,Flutter提供了丰富的基础库,用强大而灵活的API解决2D、动画、手势、效果等等的棘手UI挑战。

class CounterState extends State<Counter> {
  int counter = 0;

  void increment() {
    // Tells the Flutter framework that state has changed,
    // so the framework can run build() and update the display.
    setState(() {
      counter++;
    });
  }

  Widget build(BuildContext context) {
    // This method is rerun every time setState is called.
    // The Flutter framework has been optimized to make rerunning
    // build methods fast, so that you can just rebuild anything that
    // needs updating rather than having to individually change
    // instances of widgets.
    return new Row(
      children: <Widget>[
        new RaisedButton(
          onPressed: increment,
          child: new Text('Increment'),
        ),
        new Text('Count: $counter'),
      ],
    );
  }}

Flutter安装

1 下载 flutter sdk

Gesantung:Work Project apple$ git clone -b beta https://github.com/flutter/flutter.git

2 设置环境变量(临时)

Gesantung:Work Project apple$ export PATH=`pwd`/flutter/bin:$PATH

3 下载依赖

Gesantung:Work Project apple$ flutter doctor

note:一定要把临时的环境变量设置为全局的,如下图,不然每次重开Terminal都找不到flutter。

640?wx_fmt=png

Flutter性能

模拟器下性能数据都还可以,但真机体验不好,列表滚动可见明显卡顿。

640?wx_fmt=gif

 iPhoneX 模拟器

640?wx_fmt=jpegiPhone 5s 性能数据

总结

iOS下开发工具集还不友好,目前只能使用Android Studio 或 IntelliJ,并不支持Xcode,页面间动画切换生硬,滚动不是很流畅,可能还需要优化,组件也不完善,但Flutter提供了一种全新的跨平台思路,值得我们持续关注。

声明:本文部分素材来源:flutter开发者

Google I/O 2018 Flutter

访问https://google.com/io/,在这里您可以在线观看以下每个会话,包括直播和点播:

今年的IO大会Google花了很多的时间来介绍Flutter,下面就来看下具体的Flutter时间吧。

5月9日上午8:30 PDT - 用Flutter和Material Design编写漂亮的用户界面。

5月9日下午2:30 PDT - 移动设备的发展使Flutter和Firebase有趣

5月10日上午10:30 PDT - 使用Flutter构建反应式移动应用程序

5月10日下午3:30 PDT - 将Firebase添加到您的跨平台React Native或Flutter应用

640?wx_fmt=png

    更多骚操作,尽在iOSTips,关注公众号,第一时间get新姿势。

 

      

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值