官方主页:https://flutterchina.club/get-started/install/
1.系统环境集成。
工具:androidStudio3.1 ,
jdk: 1.8.1
环境:deepin(ubuntu15.6)
需要的插件flutter ,dart
看了官方的长篇大论之后开始了踩坑之路。
题外话:
自从看了mysql从入门到删库跑路之后,本人就沉醉于java后台代码无法自拔,一时间山河变色,怎么会有如此掉渣天的语言存在。几年前塞班机子还统治帝国王朝的时候,googel骑着二哈从半路杀了出来,推翻了塞班老巢,扼杀了ios妄想一统六国,天下舍我其谁的霸权地位。尤记那年博主还是在学校嘴里啃着葱油饼,左手拿着诺基亚,右手夹着毛邓三的青葱少年。android的诞生如同圣光一样洒在了楼主的脸上,对,楼主沉迷了!那时候天下风云变色,到处哀鸿遍野,如果当时杨永信注意到了楼主,那楼主今天也不会在这吹牛B了。
那时候的市场很乱,android 大多数都是原来塞班那批人转过来的,互联网乱草丛生。生在三线城市的我算是一种悲哀也是一种庆幸。悲哀的是好多公司都是小区房,没有一家像样的互联网公司。庆幸的是那时候没多少互联网从业者,老板主要面试也是看你的作品。当时的互联网哪查得到那么多东西,完全靠自己硬撸,没有后台配合你写代码。当时的博主处于无奈,android里自己写sql,自己写jdbc连远程数据库。一套代码写下来基本前后端一个人干了,全写在android代码里。
这些都是题外话,博主从androud里自己写sql到react native现在的weex,flutter。虽然现在写后台去了,但是android始终是我内心的一道坎,过不去的坎,每每新东西出来之后必定会去尝试。
// 正文从这里开始----------------------------------------------------------------------------------------------------------------------------------------------------------------
1.flutter的安装。
首先如果你是windows那么很庆幸,你只需要去官网下个zip下来丢到文件夹下面配置系统变量就行了。如果你和我一样有情怀的程序员,比如的系统深度开发的 deepin。那么一定要去下linux的,千万别走git。不知道是网络差还是别的原因整整clone了一个多小时没clone下来。然后索性自己去官网down了一个下来:链接页面:https://flutter.io/setup-linux/ 目前在写这篇文章的时候版本号为: flutter_linux_v0.5.1-beta.tar.xz 至于其他的解压等等一系列以及配环境的相关方法请移步中文官网。
2.驱动的发现。
我是采用真机进行调试,没有使用虚拟机。如果你使用虚拟机驱动的模拟器如 Genymotion 之类,安装Genymotion 可能会出错 ,大概意思就是你的cpu不支持xx之类的,这个得去bios里面设置 有个vitual的选项在cpu里面设置成启用就行了,老鸟就不用关注这个了。
如果一般的java工程只要把手机插入之后就会显示在可调试选项里面,但是flutter有所不同,需要你手动输入命令来发现驱动。下图是一个手机已经插入了但是没有被发现驱动的图,这时你需要在最下面的terminal里面输入 flutter devices 此命令需要你配置了path,也就是flutter的path。
正常发现驱动的命令如下:
这时候就能点右上角的run或者dbug进行调试了,要注意的就是第一次如果是网太差基本上是要卡个半小时才会执行。
3.死锁
不知道称呼这个对不对,在我的理解里面flutter执行的时候是单线程执行,前面一个命令未执行完flutter默认锁住。
flutter默认执行一个命令没被执行玩的时候会在控台答应出一句话:Waiting for another flutter command to release the startup lock.
解决方法大概如此:进入/media/reasahi/tools/flutter/bin/cache 也就是你安装flutter的文件目录下 有个文件叫做lockfile 删除后就不会提示这个了,但是感觉治标不治本。
4.支付
如今的flutter还需要很大的空间去完善,第三方的jar引用,还有一些jar的os库目前引用起来不是那么方便,包括支付回调的service 等等一系列的东西还有些欠缺,官方给的文档又太少,目前我在研究支付的时候暂时没找到解决方案,要同时兼容ios和android,如果只是单纯的兼容android 那直接写目录下面的 android即可,http库目前有个dio ,很多功能不太完善,起码开发起来的效率得x2,期待goolge以后提供更好的库支持及生态圈 。
5.结束语
goolge毕竟是个大厂,对于此框架而言我更感觉goolge是在推广dart语言,其实语法类似于java 但比java简单。kotlin同样也出自与同一家公司。写法上毕竟是小众,除非像ios一样 oc一桶天下swift 作为辅助受众面可能要广一些。总的来说,小公司技术栈很窄的不建议使用,好多错误基本上查询不到,语法高亮,提示做的也不是很完善,类似的库又比较少,flutter还有很长的路要走,但是前方的路不好走,还请将军少饮酒!
至于react native 整体不做过多评价,前端这几年框架变化太快,还处在于一个优胜略汰的阶段,但是node基本上可以说已经确定了。