推荐一个Flutter项目(已开源)

什么是Flutter?android

2018年2月27日,在2018世界移动大会上,Google发布了Flutter的第一个Beta版本。Flutter是Google用以帮助开发者在iOS和Android两个平台开发高质量原生应用的全新移动UI框架。git

其实我第一次据说Flutter是在收到谷歌开发者公众号的推送里,当时读完了那篇文章以为Flutter的优势确实比较突出:github

  • 热重载(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的核心内容json

接下来我想写一下我本身经过这两天的接触对于Flutter的核心内容也就是上面好处的第二点的理解。缓存

一切都是控件(Widget)
在Flutter中,每一个应用程序都是Widget,这点和其余的应用框架不同,Flutter的对象模型是统一的,也就是控件。
一个控件能够定义:微信

  • 结构元素(好比按钮或者菜单)
  • 风格元素(好比字体或者颜色方案)
  • 布局
  • 一些业务逻辑

控件是基于构图造成层次结构,每一个控件嵌套在其中,并从其父代继承属性,没有单独的“应用程序”对象,只有根控件。
您能够经过告知框架用另外一个控件替换层次结构中的控件来响应事件,好比用户交互,而后框架会对比新的控件和旧的控件,并有效的更新用户界面,即更新有变化的控件。网络

也就是说,在Flutter中,一个应用就是有许许多多的Widget组合而成的。架构

实践app

作了一个豆瓣电影列表的功能框架

你将会学到

  • 怎么样使用列表控件,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
项目地址:https://github.com/bravekingzhang/flutter_me
在这里插入图片描述欢迎关注个人微信公众号「码农突围」,分享Python、Java、大数据、机器学习、人工智能等技术,关注码农技术提高•职场突围•思惟跃迁,20万+码农成长充电第一站,陪有梦想的你一块儿成长

相关文章
相关标签/搜索