继续学习Flutter。
几天下来,最大的感受是,Flutter确实是一个非常优秀的新技术,不仅有趣,而且值得你花时间研究学习,前景应该不错。
之前了解了Flutter的基本用法、Widget、Layout,这些都是UI界面。下一步当然就是连接后台的网络和异步调用了。
这篇官方文章写得非常不错:https://flutter.io/flutter-for-ios/
帮助iOS的程序员更快的去理解Flutter, Dart语言。
1. 异步调用
Dart是一个单线程语言,但是它仍然可以异步地去处理任务。
相当于iOS里只有一个main线程。Dart提供了一个async/await的机制,来运行网络代码,但是不阻塞UI。
loadData() async {
String dataURL = "https://jsonplaceholder.typicode.com/posts";
http.Response response = await http.get(dataURL);
setState(() {
widgets = json.decode(response.body);
});
}
网络代码执行完后,调用setState()刷新。就是这么简单。
另外,如果想显示一个加载提示的话,也可以显示一个ProgressIndicator的Widget。
2.Layout
在iOS里对于一个list,一般就是通过UITableView或者CollectionView来显示。
在Flutter里,则是ListView,或者GridView(显示多列的List)。
iOS的UITableViewController有很多非常复杂的方法,需要去告诉系统如何handle这些数据。
在Flutter里的ListView,只需要把list数据作为参数传给Widget即可,其它全部会帮你搞定,就是这么简单。
总结,可以明显看到Flutter确实很简单,很强大。非常期待正式版本尽早发布。