推荐一个Flutter项目(已开源)
什么是Flutter?
2018年2月27日,在2018世界移动大会上,Google发布了Flutter的第一个Beta版本。Flutter是Google用以帮助开发者在iOS和Android两个平台开发高质量原生应用的全新移动UI框架。
其实我第一次听说Flutter是在收到谷歌开发者公众号的推送里,当时读完了那篇文章觉得Flutter的优点确实比较突出:
热重载(Hot Reload),作为一个菜鸟安卓开发者,能热重载真的太舒服了,利用Android Studio直接一个ctrl+s就可以保存并重载,模拟器立马就可以看见效果,就这一点比原生安卓制作简直不知道高到哪里去了。
一切皆为Widget的理念,对于Flutter来说,手机应用里的所有东西都是Widget,通过可组合的空间集合、丰富的动画库以及分层课扩展的架构实现了富有感染力的灵活界面设计。
借助可移植的GPU加速的渲染引擎以及高性能本地代码运行时以达到跨平台设备的高质量用户体验。 这段介绍是直接抄下来的,虽然我并不知道什么叫可移植的GPU加速的渲染引擎,但是最终结果就是利用Flutter构建的应用在运行效率上会和原生应用差不多。
酷安上有一个Flutter的演示Demo,Flutter Gallery。
如果经常逛酷安的一定会发现这个画廊的演示Demo的图标和另一个演示Demo的图标是一样的,Google Fuchsia OS Preview,这个应用的是传闻的Google正在研发的新一代操作系统,所以个人认为,Flutter的存在可能不仅仅是实现在安卓和IOS上的运行,更是为了日后丰富Fuchsia这个新系统的软件生态而存在的。
Flutter的核心内容
接下来我想写一下我自己通过这两天的接触对于Flutter的核心内容也就是上面好处的第二点的理解。
一切都是控件(Widget)
在Flutter中,每个应用程序都是Widget,这点和其他的应用框架不一样,Flutter的对象模型是统一的,也就是控件。
一个控件可以定义:
结构元素(比如按钮或者菜单)
风格元素(比如字体或者颜色方案)
布局
一些业务逻辑
控件是基于构图形成层次结构,每个控件嵌套在其中,并从其父代继承属性,没有单独的“应用程序”对象,只有根控件。
您可以通过告知框架用另一个控件替换层次结构中的控件来响应事件,比如用户交互,然后框架会对比新的控件和旧的控件,并有效的更新用户界面,即更新有变化的控件。
也就是说,在Flutter中,一个应用就是有许许多多的Widget组合而成的。
实践
做了一个豆瓣电影列表的功能
你将会学到
怎么样使用列表控件,Row控件,Column控件
怎么使用网络加载,异步操作怎么处理
实现加载更多
如何使用flutter布局,个人感觉相当好理解,Row控件,Column控件,ListView控件就能做出这个效果,我这是一个卡片
使用buildDefaultTabController容易的实现viewpager类似的东东
实现自定义控件 Ratingbar
tab
bottomNavigationBar
页面间的跳转。
json2model代码自动生成
我这里遇到了一些坑
在ListView的item中使用横向ListView,导致运行不出来,因此那个换成了Row。
在使用column和row控件的时候,界面刷步出来,定位原因是因为里面存在不确定的rect的子控件导致, 因此解决的办法就是使用expande,或者flexable包裹,或者其他的方式能够明确子控件怎么占位,占多少位置。
切换代缓存的图片控件cacheImage出现问题,刷步出图片,解决办法,卸载安装包,重装,原因没有定位出
下面是效果图:
增加了段子页面
你可以学会, 弹框bottomModalDialog
安装包大小
安装包有8M。因为用原生的写会不至于有这么大,所以要看看究竟,其实很容易发现,flutter库占了很大部分,实际dex文件较小。
上传的源码中已经打好了apk,可以直接下载安装,ipa包没有打,打了没有越狱一般也安装不了的,苹果这套对开发者不是很友好。
注意事项
如果你想自己下载源码玩玩的话:
config.dart 是需要你在showApi平台上自己申请appid和secretkey的
android工程中的key.properties文件中的value需要你自己配置你的秘钥,具体打包方式参考dart.io文档中 Build and release for Android 这一节。
原创作者:bravekingzhang
项目地址:点击【阅读原文】
推荐一个Flutter项目(已开源)相关推荐
- Flutter 学习第四天 第一个flutter项目
这个转自我自己的有道云 想看图片去那里 文档:Day2_26 Dart 面向对象 异步语法.md 链接:http://note.youdao.com/noteshare?id=1dc3ee54f0dd ...
- Flutter入门——创建第一个Flutter项目
Flutter入门--创建第一个Flutter项目 一.创建项目 第一个项目使用Android Studio创建,步骤如下: 先打开Android Studio,会有一个创建新的Flutter应用的选 ...
- 推荐一个十分好看的开源博客系统
推荐一个十分好看的开源博客系统,直接百度"里程密"地址www.lcm.wang 附图 主页 后台 浓浓的科技简约风,适合做技术的你 转载于:https://www.cnblogs. ...
- 新近发现推荐一个PHP的ORAM开源框架phpdoctrine
新近发现推荐一个PHP的ORAM开源框架phpdoctrine,看了下应该不错,迟些再写心得文 地址是http://www.phpdoctrine.org/
- 一款基于星座的app(项目已开源)
一款基于星座的app(项目已开源) 该星座app是大三时期做的期末项目.结果不被老师赏识,说是网上找的,哈哈.文章最后放源码下载地址. 关注公众号回复 : 1003 . 获取源码地址,回复1004,获 ...
- mac下创建第一个flutter项目以及遇到的问题
换电脑之后就没整过flutter环境,这周正好得空,就把flutter先搭起来,下面记录过程以及遇到的问题, 解决办法办法. 首先下载Android Studio 点击跳转 汉化教程: 1.点击下方链 ...
- 只要你一句话,马斯克就得留扫把头,项目已开源丨Adobe等出品
萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI 现在,Adobe不想让你用手P图了--动动口就行. 只需要你说一句话,计算机就能P出你想要的效果. 例如,说出想要的发型,马斯克就会立刻被剃 ...
- Android Studio创建第一个Flutter项目
一.创建Flutter项目 1.1 file->New–>New Flutter Project 1.2 配置Flutter SDK Path 1.3 填写项目相关信息 二.android ...
- 华为天才少年稚晖君自制「电子」机器人!应用OpenPose,项目已开源!
点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 转载自:新智元 编辑:桃子 拉燕 [导读]失踪人口回归了!华为「天才少年」稚晖君这次带来了一个又萌又 ...
最新文章
- 理解原理的重要性 - 论PostgreSQL merge join 成本评估陷阱 含case
- 北斗导航 | 完全自主研发国产高端三维激光雷达助力中国测绘技术发展
- ubuntu14.04 64bit主机下面安装android的NDK开发环境
- 助推曲烟数字化转型升级,开展生产业务数字化
- Ranger开源流水线docker化实践案例
- VBS去除字符串的重复项并统计重复字符出现的次数
- 获取GridView的BoundField值
- Springboot+vue项目疫情社区防控系统
- Linux下查看网卡光衰值
- 中国中央空调行业竞争力策略及未来发展潜力预测报告2021年版
- 微信表情存入mysql
- SpringCachemanager使用Cache(redis作为缓存中间件)
- 单片机温度传感器c语言编码,温度传感器代码解析Ⅱ
- android7.1刷supersu,安卓怎么刷SuperSU 安卓系统刷入超级授权SuperSU Pro方法
- 苹果5越狱教程_iOS13.5越狱教程
- 高通MSM8998 ABL的调试
- 颜色转换助手RGB888-565
- 堡垒机远程连接报“由于安全设置错误, 客户端无法连接到远程计算机. 确定你已登录到网络后,再重新连接” 错误处理步骤
- 微信小程序时代,小程序员的产品创意集合
- 高等数学(第七版)同济大学 习题6-2 (前12题)个人解答
热门文章
- 制定一天一周一月的工作计划用什么提醒软件?
- 农历2017年8月初4_2017年8月4日黄道吉日查询,2017年8月4日黄历查询,2017年8月4日吉日查询...
- 极限学习机代码注释翻译
- 双时推迟格林函数的定义
- 混合表象下单粒子格林函数计算
- 中国三大电信营运商的3G网络制式、网速、价格对比
- 锋云数据服务器管理文件说明书,云端数据库使用说明
- [转贴]美丽的童话——游戏学院真相探访
- android模拟器 平安行,携手MuMu模拟器,PC端畅游平安京
- 麒麟v10官方apt源、rpm包下载地址