使用Flutter重构斗鱼APP
Github源码地址:https://github.com/yukilzw/dy_flutter
flutter重构的斗鱼直播APP
首页、娱乐为Material组件开发;直播间、鱼吧为纯自定义编写
另外整合各类优质的第三方开源库,打造出原生APP丝滑的用户体验
尽可能接入更多功能,方法附带注释,帮助你在使用flutter进行开发新的应用提供实用的借鉴案例
包含功能:
- 启动页广告位
- 开播列表上拉加载、下拉刷新、返回顶部
- 列表图片缓存加载优化
- 渐进式头部动画
- 底部导航切换保存页面状态
- HTTP缓存、IO缓存
- 直播间webSocket消息弹幕、礼物
- 页面路由传值
- RxDart全局消息通信封装
- Bloc流式状态管理(启动页预加载首页数据)
- 礼物横幅动画队列
- 弹幕消息滚动
- 静态视频流
- 九宫格抽奖游戏
- 照片选择器
- 全屏、半屏webView
- 鱼吧头部手势动画
- 仿微信朋友圈图片控件
- 登录注册弹窗
- 国家区号列表(仿微信通讯录滑动首字母定位)
- 二维码扫码
- 本地通知推送
- ...
- 持续增加中
APP截图:
调试:
服务端接口没有上云,如需本地启动该项目调试,可修改lib/base.dart
中DYBase.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的更多相关文章
- Flutter项目之app升级方案
题接上篇的文章的项目,还是那个空货管理app.本篇文章用于讲解基于Flutter的app项目的升级方案. 在我接触Flutter之前,做过一个比较失败的基于DCloud的HTML5+技术的app,做过 ...
- 两个星期,用Flutter撸个APP
前言 Flutter是Google推出的跨平台的解决方案,Slogan是"Design beautiful apps",国内也有知名企业在使用和推广,例如阿里.美团都有在尝试. 个 ...
- scrapy抓取斗鱼APP主播信息
如何进行APP抓包 首先确保手机和电脑连接的是同一个局域网(通过路由器转发的网络,校园网好像还有些问题). 1.安装抓包工具Fiddler,并进行配置 Tools>>options> ...
- Flutter 实现整个App变为灰色
在Flutter中实现整个App变为灰色是非常简单的,只需要在最外层的控件上包裹ColorFiltered,用法如下: @override Widget build(BuildContext cont ...
- Flutter: 监听App显示,隐藏
关键代码 class _MyAppState extends State<MyApp> with WidgetsBindingObserver { @override void initS ...
- 为了弄懂Flutter的状态管理, 我用10种方法改造了counter app
为了弄懂Flutter的状态管理, 我用10种方法改造了counter app 本文通过改造flutter的counter app, 展示不同的状态管理方法的用法. 可以直接去demo地址看代码: h ...
- 2020,最新Model的设计-APP重构之路
很多的app使用MVC设计模式来将“用户交互”与“数据和逻辑”分开,而model其中一个重要作用就是持久化.下文中设计的Model可能不是一个完美的,扩展性强的model范例,但在我需要重构的app中 ...
- Flutter & App
Flutter & App Android & iOS https://flutter.dev/docs/deployment/flavors https://flutter.dev/ ...
- 趁五一撸个纯Flutter版的心情日记App
前言 最近真的是太忙了,只能趁着五一期间把之前Android版的心情日记App移植到Flutter平台,并且已经上架华为应用市场以及苹果App Store. 整体框架沿用了两个星期,用Flutter撸 ...
随机推荐
- php映射echarts柱状图
多种样式柱状图 前台部分 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...
- php 之 excel导出导入合并
<?php class Excel extends Controller { //直属高校 public function __construct() { parent::Controller( ...
- SQL存储过程返回值
1 SQL存储过程返回值有3种 1.1 直接return返回(例如 return 1): 1.2 通过参数output返回(例如字符串类型): 1.3 直接返回程序集(Dataset程序集). 2 用 ...
- Java中float浮点型变量不加F报错情况
1 public class Text { 2 3 public static void main(String args[] ){ 4 float x=123.45; 5 System.out.pr ...
- GitLab集成Jenkins、Harborn构建pipeline流水线任务
一.计划 在jenkins中构建流水线任务时,从GitLab当中拉取代码,通过maven打包,然后构建dokcer镜像,并将镜像推送至harbor当中.Jenkins中含开发.测试.生产视图,开发人员 ...
- linux基本操作之linux登陆
一 文本登陆方式: 输入用户名与密码:/etc/passwd文件对照(口令文件,保存基本的用户信息):/etc/shadow文件对照(影子文件,保存密码信息):启动相应的shell程序:用户得到 一个 ...
- Bad magic number ImportError in python
是源码编译里面版本不对,删除掉源码pyc然后重新编译就可以了 find .-name '*.pyc'-delete python -m compileall . 更新历史 why when 创建 20 ...
- tomcat设置好环境变量,依然无法通过cmd startup命令启动
Windows环境下JDK安装与环境变量配置详细的图文教程 https://www.cnblogs.com/liuhongfeng/p/4177568.html Windows环境下maven 环 ...
- if __name__ == "__main__"的疑惑
Python中if __name__ == "__main__"详细解释: 想必很多初次接触python都会见到这样一个语句,if __name__ == "__main ...
- 2020年最新ZooKeeper面试题(附答案)
2020年最新ZooKeeper面试题 1. ZooKeeper 是什么? ZooKeeper 是一个开源的分布式协调服务.它是一个为分布式应用提供一致性服务的软件,分布式应用程序可以基于 Zooke ...