上周看到一个简报,说google的项目flutter进入Beta阶段。从简报上大体了解了下,是用来开发跨平台应用的。之前从PhoneGap到后来的ReactNative,觉得跨平台应用有两点是致命伤。
- 权限。要么就是太低,无法调用丰富的平台API。要么就是接入了大量的API,不管用不用都封装进包里。
- 性能低下。
现在有些不关注这个领域了,以前Web要一统天下的气势似乎到现在也有些衰弱了。
随手去它的github上看了看。仅仅是看到engine项目下有个vulkan
目录就让我觉得这个项目的野心不是一般的大。简单找了找相关博客,感觉似乎不错,两个问题都有考虑(虽然调用系统API的方式还是非常蹩脚)。社区也比较活跃。而且国内也有很多相关资料了。虽然以现在的成熟度还不适合商用,但个人觉得,还是比较值的入坑看看的。
网上专栏不少,教程不少,我也就不多嘴了。今天搭建了下环境。有一些坑,记录一下。按照官网相应的说明操作即可,有两个坑。一个是新工程无法安装依赖。一个是无法调试。
新工程的文件创建完毕后,会自动安装依赖。flutter packages get
。这里需要用代理。socks5代理是不管用的,自然用polipo建立一个http代理到socks5代理的中间转换。方法是用docker。docker run -d -p 8118:8123 clue/polipo proxyAddress="0.0.0.0" proxyPort=8123 socksParentProxy="192.168.1.229:1080" socksProxyType=socks5
。再设置环境变量http_proxy=localhost:8123
,https_proxy=localhost:8123
,此环境下执行flutter packages get
即可。
调试的时候,不知道有什么错误,直接退出了。控制台只有简单的收到sigterm
信号提示。改用flutter run
运行提示缺少相应的SDK和Build Tool。按照要求安装即可。然后再运行flutter run
提示WebSocketChannelException: HttpException: , uri = http://127.0.0.1:8106/ws
。解决方法是改在不使用代理的环境下调试。
针对JS语言的缺点,MS和Google都有自己的看法,一个叫做TypeScript,一个叫做Dart。现在Node的项目已经都改用TypeScript来写了。但是对Dart还没有一点了解。所以,下一步的计划:
- 熟悉下Dart的语法
- 了解下Dart VM,Flutter等相关的设计
- 开发个全flutter的应用