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

flutter重构的斗鱼直播APP

首页、娱乐为Material组件开发;直播间、鱼吧为纯自定义编写

另外整合各类优质的第三方开源库,打造出原生APP丝滑的用户体验

尽可能接入更多功能,方法附带注释,帮助你在使用flutter进行开发新的应用提供实用的借鉴案例

包含功能:

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

APP截图:























调试:

服务端接口没有上云,如需本地启动该项目调试,可修改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为个人项目,仅供学习借鉴用

使用Flutter重构斗鱼APP的更多相关文章

  1. Flutter项目之app升级方案

    题接上篇的文章的项目,还是那个空货管理app.本篇文章用于讲解基于Flutter的app项目的升级方案. 在我接触Flutter之前,做过一个比较失败的基于DCloud的HTML5+技术的app,做过 ...

  2. 两个星期,用Flutter撸个APP

    前言 Flutter是Google推出的跨平台的解决方案,Slogan是"Design beautiful apps",国内也有知名企业在使用和推广,例如阿里.美团都有在尝试. 个 ...

  3. scrapy抓取斗鱼APP主播信息

    如何进行APP抓包 首先确保手机和电脑连接的是同一个局域网(通过路由器转发的网络,校园网好像还有些问题). 1.安装抓包工具Fiddler,并进行配置 Tools>>options> ...

  4. Flutter 实现整个App变为灰色

    在Flutter中实现整个App变为灰色是非常简单的,只需要在最外层的控件上包裹ColorFiltered,用法如下: @override Widget build(BuildContext cont ...

  5. Flutter: 监听App显示,隐藏

    关键代码 class _MyAppState extends State<MyApp> with WidgetsBindingObserver { @override void initS ...

  6. 为了弄懂Flutter的状态管理, 我用10种方法改造了counter app

    为了弄懂Flutter的状态管理, 我用10种方法改造了counter app 本文通过改造flutter的counter app, 展示不同的状态管理方法的用法. 可以直接去demo地址看代码: h ...

  7. 2020,最新Model的设计-APP重构之路

    很多的app使用MVC设计模式来将“用户交互”与“数据和逻辑”分开,而model其中一个重要作用就是持久化.下文中设计的Model可能不是一个完美的,扩展性强的model范例,但在我需要重构的app中 ...

  8. Flutter & App

    Flutter & App Android & iOS https://flutter.dev/docs/deployment/flavors https://flutter.dev/ ...

  9. 趁五一撸个纯Flutter版的心情日记App

    前言 最近真的是太忙了,只能趁着五一期间把之前Android版的心情日记App移植到Flutter平台,并且已经上架华为应用市场以及苹果App Store. 整体框架沿用了两个星期,用Flutter撸 ...

随机推荐

  1. MYSQL字段

    这里我的测试环境是wampserver 选择数据库 选择表 或者创建数据库和表 SHOW DATABASES; 查看数据库 CREATE DATABASE 数据库名; 创建数据库 在 MySQL 中, ...

  2. Android测试三件套:传文件、抓包、看日志

    在对安卓进行测试时,我们需要把 apk 传到安卓机上,对请求抓包,同时监控应用日志.本文就来讲讲具体操作. 安卓机是指基于安卓的机器 ,如手机.POS 机.电视盒子等. 传文件 我们拒绝用 U 盘传文 ...

  3. 在windows下安装node-sass失败,提示\node-sass: Command failed,解决方案

    执行命令 yarn add node-sass@4.7.2 --dev --registry=https://registry.npm.taobao.org :报错 出现这个问题的原因一般是网络问题, ...

  4. KMP算法和bfprt算法总结

    目录 1 KMP算法 1.1 KMP算法分析 1.2 KMP算法应用 题目1:旋转词 题目2:子树问题 2 bfprt算法 2.1 bfprt算法分析 2.2 bfprt算法应用 1 KMP算法 大厂 ...

  5. tcpack--3快速确认模式

    接收到数据报后,会调用tcp_event_data_recv(),不管是在慢速路径的tcp_data_queue中调用还是 在快速路径中处理接收数据后直接调用,注意(如果len <= tcp_h ...

  6. RBD快速删除的方法分析与改进

    前言 这个问题在很久以前就有一篇文章进行过讨论 remove-big-rbd,这个文章写的比较清楚了,并且对不同的方法做了分析,这里先把结论说下 rbd类型 rbd rm 方法 rados -p rm ...

  7. android开发导包升级到androidx踩坑记录【转载】

    最近一直在做安卓开发,奈何手中的资料比较老,资料上的一些Import经常没有,十分让人头疼. 感谢简书上的[张晴天天天天天]做的整理. 在这里也记录一下备用. 升级Android Studio后,在 ...

  8. rootfs如何取消登录超时

    一种简便的办法,在etc/inittab文件中,增加一行::respawn:-/bin/login.之后当登录超时后,还会在进入到登录界面,就不会出现登录超时后无法在登录的问题了. #first:ru ...

  9. 回溯算法 - n 皇后问题

    (1)问题描述 在 n × n 格的棋盘上放置彼此不受攻击的 n 个皇后.按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子.n 后问题等价于在 n × n 的棋盘上放置 n 个 ...

  10. Linux文件监控工具——inotify-tools

    举例: ip.txt内容如下: 10.1.1.11 root 123 10.1.1.22 root 111 10.1.1.33 root 123456 10.1.1.44 root 54321 写法1 ...