Github源码地址:https://github.com/yukilzw/dy_flutter

flutter重构的斗鱼直播APP
首页、娱乐为Material组件开发;直播间、鱼吧为纯自定义编写
另外整合各类优质的第三方开源库,打造出原生APP丝滑的用户体验
尽可能接入更多功能,方法附带注释,帮助你在使用flutter进行开发新的应用提供实用的借鉴案例

包含功能:

  • 启动页广告位
  • 开播列表上拉加载、下拉刷新、返回顶部
  • 列表图片缓存加载优化
  • 渐进式头部动画
  • 底部导航切换保存页面状态
  • HTTP缓存、IO缓存
  • 直播间webSocket消息弹幕、礼物
  • 页面路由传值
  • RxDart全局消息通信封装
  • Bloc流式状态管理(启动页预加载首页数据)
  • 礼物横幅动画队列
  • 弹幕消息滚动
  • 静态视频流
  • 九宫格抽奖游戏
  • 照片选择器
  • 全屏、半屏webView
  • 鱼吧头部手势动画
  • 仿微信朋友圈图片控件
  • 登录注册弹窗
  • 国家区号列表(仿微信通讯录滑动首字母定位)
  • 二维码扫码
  • 本地通知推送
  • 持续增加中

APP截图:

frc ecf315d063f4a3995eecde3c403294d7 - 使用Flutter重构斗鱼APP
启动页

frc 7ac04af3234ddc69fa3f8355387018a5 - 使用Flutter重构斗鱼APP
首页

frc e3c38d08df531e290115cd8a31b73065 - 使用Flutter重构斗鱼APP
下拉刷新,上拉加载

frc d48367239875b61c54ebfe81405a22a5 - 使用Flutter重构斗鱼APP
直播间

frc 1b0fdb86adb45a01b930ead4b5f39e89 - 使用Flutter重构斗鱼APP
鱼吧

frc 2a57492841cb34de77fd16794062216a - 使用Flutter重构斗鱼APP
图片预览器

frc e4502d6e3a692e97e4e95d559ad3cc74 - 使用Flutter重构斗鱼APP
鱼吧列表,动态图片自适应

frc 49921603a6444de9c190b0f73d1f658a - 使用Flutter重构斗鱼APP
登陆弹窗

frc 19b55be42d1403d6e52f2c2038bfdc5f - 使用Flutter重构斗鱼APP
登录注册页

frc 0e9a532b529c5b1e8c0460bb03930606 - 使用Flutter重构斗鱼APP
地址选择(仿微信通信录首字母定位)

frc 55d50f77c5dc6091ec1f717bc93c3560 - 使用Flutter重构斗鱼APP
抽奖游戏(系统通知)

frc 5675b53736faf7c3e7f026c43fd4bc11 - 使用Flutter重构斗鱼APP
内嵌webView容器

调试:

服务端接口没有上云,如需本地启动该项目调试,可修改lib/base.dartDYBase.baseHost为内网本机IP(端口不要改!),并确保手机与电脑在同一局域网
然后clone服务端仓库,本地启动服务器
Mock服务为python tornado,两种简单启动方式可选(1.安装py3.6与pip依赖,2.使用Docker镜像),具体参考其README

建议:

使用Material自带的widget进行搭配使用,已经能满足绝大部分场景的开发需求
但是在企业级APP高度UI交互定制化的场景下,仍需要根据业务场景重新实现诸如AppBar、TabView等widget,并编写手势交互

入门推荐:

Dart语法
Dart SDK
Flutter中文网 – 简单易懂的入门教程
Flutter实战 – 较为全面的进阶教程
Flutter官网(英) – 可查阅全部的API与SDK相关
Bloc(英) – 全局状态管理(除此之外也可选用redux或原生InheritedWidget)

dy_flutter为个人项目,仅供学习借鉴用

PS:
请使用Flutter SDK 1.9版本编译,并确保本地pub包版本与lock文件一致。
建议使用安卓调试,IOS因开源第三方native插件没有设备测试过,无法保证所有版本功能正常工作,请谅解。

使用Flutter重构斗鱼APP