博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
flutter初探,从零开始搭建一个app
阅读量:5927 次
发布时间:2019-06-19

本文共 1255 字,大约阅读时间需要 4 分钟。

一.flutter是什么?

Flutter是什么?

FlutterGoogle开发维护的一个跨平台(Android 和 iOS)的移动开发框架,使用的是 Dart 语言。Flutter在Dart中实现了其它大部分系统(组合、手势、动画、框架、widget等。

二.Flutter与react native 性能对比?

1。RN的渲染性能机制是基于前端框架的考虑,复杂的UI渲染是需要依赖多个view叠加.比如我们渲染一个复杂的ListView,每一个小的控件,都是一个native的view,然后相互组合叠加.想想此时如果我们的list再需要滑动刷新,会有多少个对象需要渲染.react native渲染过程如下:

clipboard.png

2.Flutter 和react native框架不同,Flutter既不使用WebView,也不使用操作系统的原生控件。 通过底层C/C++构建。不需要通过JSbridge层,导致其性能优于react native。下图为flutter的渲染过程:

clipboard.png

三.flutter的安装和使用

作者这里选择Mac平台,IOS应用作为开发环境

1.获取文件
git clone -b beta
export PATH=pwd/flutter/bin:$PATH
flutter doctor

2.创建项目和运行

//创建项目
flutter create [Project name]
cd [Project name]
//运行项目
flutter run
//如果没有启动终端模拟器时候会报错,这时候需要
flutter emulators
flutter emulators --launch apple_ios_simulator
//注意:IOS创建项目时候要保证有Xcode的环境.

四.编写第一个程序

1.引入对应的package文件

1)打开 pubspec.yaml, 并将需要包文件加入到配置中
2)在终端运行 flutter packages get
flutter packages get命令必须翻墙来执行,如果不行可以设置国内镜像
export PUB_HOSTED_URL=
export FLUTTER_STORAGE_BASE_URL=

2.写出第一句hello world

clipboard.png

3.在终端模拟器显示效果如下:

clipboard.png

五.创建一个简单APP

1.布局listviwe

clipboard.png

终端运行效果如下:

clipboard.png

2.创建网络

引入dart.io处理网络事件
引入dart.convert处字符串json问题
clipboard.png

3.加入图片请求后

clipboard.png

六.打包运行

IOS需要通过Xcode内build到手机上

androud可以通过:flutter build apk边缘打包到手机上

七.结论:

Flutter目前还是存在一些不足的:

1.写布局的方式不如web舒服,写起来很生气。
2.会明显增加应用包体积。
flutter好处:
1.跨平台。
2.调试方便,代码更改之后,立刻可以看到效果。
3.社区发展较快。

参考文章:

转载地址:http://faevx.baihongyu.com/

你可能感兴趣的文章
python3 UnicodeEncodeError: 'ascii' 错误
查看>>
SON Web Token设计单点登录系统
查看>>
避免活跃性危险(第十章)
查看>>
一个不成功人士的“成功之道”
查看>>
对大数据知识架构的梳理
查看>>
HTTPS实现原理
查看>>
MTD/MT/MDD/MD以及LIB/DLL之间的一些联系和问题
查看>>
SCVMM 2012 R2运维管理九之:添加非信任的Hyper-v主机和群集
查看>>
源码lnmp
查看>>
java总结
查看>>
关于异或的一些东西和应用
查看>>
二叉树的实现(C#)
查看>>
PrincetonAlgorithm I - Assignment2 Deques and Randomized Queues
查看>>
系统日子打印记录
查看>>
【矩阵乘法】OpenJ_POJ - C17F - A Simple Math Problem
查看>>
[旧博客]Python 第一次
查看>>
Verify the Developer App certificate for your account is trusted on your device.
查看>>
神经网络- receptive field
查看>>
java.lang.NoClassDefFoundError: org.ksoap2.serialization.SoapObject
查看>>
centos7.0搭建svn服务器
查看>>