是时候学习Flutter了

Posted IT烂笔头

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是时候学习Flutter了相关的知识,希望对你有一定的参考价值。

什么是Flutter

Flutter是谷歌在2018年2月份的谷歌IO大会上推出的一款跨平台的UI框架,可以快速的在androidios平台上构建高质量的原生用户界面。可以与你现有代码一起工作,并且是完全开源的。

有什么优点

  • 快速开发

    毫秒级的热重载,修改代码的同时应用界面会立即更新。使用丰富的可定制的widget快速构建原生界面。

  • 灵活的UI

    分层的架构允许完全自定义,实现难以置信的快速渲染和富有表现力、灵活的设计

  • 原生级性能

    内置丰富的widget:滚动、导航、图标和字体等,完全和IOS或者Android原生应用同样的性能表现。

快速开发

Flutter的热重载可帮助您快速地进行测试、构建UI、添加功能并更快地修复错误。在iOS和Android模拟器或真机上可以在亚秒内重载,并且不会丢失状态。

漂亮的用户界面

使用Flutter内置美丽的Material Design和Cupertino(iOS风格)widget、丰富的motion API、平滑而自然的滑动效果和平台感知,为您的用户带来全新体验。

响应式框架

使用Flutter的现代、响应式框架,和一系列基础widget,轻松构建您的用户界面。使用功能强大且灵活的API(针对2D、动画、手势、效果等)解决艰难的UI挑战。

 1class CounterState extends State<Counter{
2    int counter = 0;
3
4    void increment() {
5        // 告诉Flutter state已经改变,Flutter会调用build()更新显示
6        setState(() {
7            counter++;
8        });
9    }
10
11    Widget build(BuildContext context) {
12        // 当setState被调用时,这个方法都会重新执行,
13        // Flutter对此方法做了优化,使重新执行变得很快
14        return new Row(
15            children:<Widget>[
16                new RaisedButton(onPressed:increment, child:new Text('Increment')),
17                new Text('Count:$counter'),
18            ],
19        );
20    }
21}

访问本地功能

通过平台相关的API、第三方SDK和原生代码让您的应用变得强大易用。 Flutter允许您复用现有的Java、Swift或ObjC代码,访问iOS和Android上的原生系统功能和系统SDK。

 1Future<Null> getBateryLevel() async {
2    var batteryLevel = 'unknown';
3    try {
4        int result = await methodChanel.invokeMethod('getBatteryLevel');
5        batteryLevel = 'Battery level:$result%';
6    } on PlatformException {
7        batteryLevel = 'Failed to get battery level';
8    }
9    setState(() {
10        _batteryLevel = batteryLevel;
11    });
12}

统一的应用开发体验

Flutter拥有丰富的工具和库,可以帮助您轻松地同时在iOS和Android系统中实现您的想法和创意。 如果您没有任何移动端开发体验,Flutter是一种轻松快捷的方式来构建漂亮的移动应用程序。 如果您是一位经验丰富的iOS或Android开发人员,则可以使用Flutter作为视图(View)层, 并可以使用已经用Java / ObjC / Swift完成的部分(Flutter支持混合开发)。


Flutter从入门到放弃~


以上是关于是时候学习Flutter了的主要内容,如果未能解决你的问题,请参考以下文章

PHP必用代码片段

flutter解决 dart:html 只支持 flutter_web 其他平台编译报错 Avoid using web-only libraries outside Flutter web(代码片段

错误记录Flutter 混合开发获取 BinaryMessenger 报错 ( FlutterActivityAndFragmentDelegate.getFlutterEngine() )(代码片段

在 webview_flutter 中启用捏合和缩放,在哪里添加代码片段 [this.webView.getSettings().setBuiltInZoomControls(true);]

Flutter 报错 DioError [DioErrorType.DEFAULT]: Bad state: Insecure HTTP is not allowed by platform(代码片段

Flutter 布局备忘录