是时候学习Flutter了
Posted IT烂笔头
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是时候学习Flutter了相关的知识,希望对你有一定的参考价值。
什么是Flutter
Flutter是谷歌在2018年2月份的谷歌IO大会上推出的一款跨平台的UI框架,可以快速的在android和ios平台上构建高质量的原生用户界面。可以与你现有代码一起工作,并且是完全开源的。
有什么优点
快速开发
毫秒级的热重载,修改代码的同时应用界面会立即更新。使用丰富的可定制的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了的主要内容,如果未能解决你的问题,请参考以下文章
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(代码片段