Awesome
<p align="center"><img width="95" src="http://m.qpic.cn/psc?/V14dALyK4PrHuj/TmEUgtj9EK6.7V8ajmQrEE6*Uxu7pEUvrF6buDAC1qQBtOPo9FXPTzYdO3pyFiogvuA4HNDBer8u1KJY71acYTXx1pnl2uCYv*E1JIoixbA!/b&bo=AAEAAQABAAEDGTw!&rf=viewer_4&t=5" alt="斗鱼APP"></p> <p align="center"> <img src="https://img.shields.io/badge/flutter-2.0.0-52c6f9.svg?sanitize=true" alt="flutter-1.22"> <img src="https://img.shields.io/badge/android✔-brightgreen.svg?sanitize=true" alt="android✔"> <img src="https://img.shields.io/badge/ios✔-green.svg?sanitize=true" alt="ios✔"> </p> <h2 align="center">斗鱼Flutter</h2>flutter重构的斗鱼直播APP<br/> 首页、娱乐为Material组件;直播间、鱼吧为纯自定义编写。<br/> 另外整合各类优质的第三方开源库,打造出原生APP丝滑的用户体验<br/> 尽可能接入更多功能,方法附带注释,帮助你在使用flutter进行开发新的应用提供实用的借鉴案例<br/>
APP截图:
<table> <tr> <td > <img src="http://m.qpic.cn/psc?/V14dALyK4PrHuj/bqQfVz5yrrGYSXMvKr.cqaBgyoLMU7RqFQMjF1E5rBSN69..NZhiO89.yrgXkS6mTUwd*cb3ZSTIIiw5.iYRqBJZNdmErVng83zgFyZw3fA!/b&bo=gAIkBaAFkAsBCbM!&rf=viewer_4&t=5" width="100%"> </td> <td > <img src="http://m.qpic.cn/psc?/V14dALyK4PrHuj/bqQfVz5yrrGYSXMvKr.cqXLF*aVasp07p*Gto1g39y8aZOuyCwiCZ7OE4qg0HlHdSGC23z.kMOk6TRSl.Vz42C*KqGEkKzgahqZfA2ioU*I!/b&bo=gAIkBaAFkAsBCbM!&rf=viewer_4&t=5" width="100%"> </td> <td > <img src="http://m.qpic.cn/psc?/V14dALyK4PrHuj/bqQfVz5yrrGYSXMvKr.cqQlzJYlZpjmaYqbMmmVlIfygeiYM7LMzpr7UEBdem9TURt*pkPlyK3fFvGk2eY.I1BtAX74KahT368qwSMIKP1U!/b&bo=gAIkBaAFkAsBCbM!&rf=viewer_4&t=5" width="100%"> </td> </tr> <tr> <td > <img src="http://m.qpic.cn/psc?/V14dALyK4PrHuj/bqQfVz5yrrGYSXMvKr.cqThM.g*uqbv34APs2xUD795zzub.0Dc8*QFXGyRSc7aopK1TUkZnVFCO5cqvOO1r6O2UtjD0Pki0Gzza5R4dz*M!/b&bo=gAIkBaAFkAsBCbM!&rf=viewer_4&t=5" width="100%"> </td> <td > <img src="http://m.qpic.cn/psc?/V14dALyK4PrHuj/TmEUgtj9EK6.7V8ajmQrEH6IpnXld6FGQQHdyvv0dLAOgZN7.9jzMpMWHejoGTEWbMkYbRrkaNVCXPTTnsi*4.lOPqKEZadxwy1njSC.bKk!/b&bo=gAIkBaAFkAsBKZM!&rf=viewer_4&t=5" width="100%"> </td> <td > <img src="http://m.qpic.cn/psc?/V14dALyK4PrHuj/TmEUgtj9EK6.7V8ajmQrED*reHLmlDRzT43e6kiwzMNhOMGjGzslRl.TYS3MkfnDKtzoxbNkkju8Iw9N2ow5hMWNsTJCTxQaeREAlNtHwFI!/b&bo=gAIkBaAFkAsBGaM!&rf=viewer_4&t=5" width="100%"> </td> </tr> <tr> <td > <img src="http://m.qpic.cn/psc?/V14dALyK4PrHuj/TmEUgtj9EK6.7V8ajmQrEB*oC0jYr45N4XNhdrM1yAK99Mcrs92abHL8zMWGarZ3xk7c*crdD2eEW1ssMDQZEsH16hosf0rnp7PDRpI5ZnM!/b&bo=gAIkBaAFkAsBKZM!&rf=viewer_4&t=5" width="100%"> </td> <td > <img src="http://m.qpic.cn/psc?/V14dALyK4PrHuj/TmEUgtj9EK6.7V8ajmQrEEpYPJsokdhxS8ZJPdpyd4h7j0uwUEiyDXHhRSKB1aE9k0hf6Xmlq59g.MpMZfuojsn1UTeWD.8PwerbFzTpbPc!/b&bo=gAIkBaAFkAsBKZM!&rf=viewer_4&t=5" width="100%"> </td> <td > <img src="http://m.qpic.cn/psc?/V14dALyK4PrHuj/TmEUgtj9EK6.7V8ajmQrEOh8XZsi9bmSt55Q14bJBlbYyAzKf5RbGbeUGWmFAxFhVdq67Knce623EQWtUn42Oa9qXI3YMTEZcWtuvQsK4f4!/b&bo=gAIkBaAFkAsBGaM!&rf=viewer_4&t=5" width="100%"> </td> </tr> <tr> <td > <img src="http://m.qpic.cn/psc?/V14dALyK4PrHuj/TmEUgtj9EK6.7V8ajmQrEDZiySLBOghulMLa1J1SlA4yTA36ua0sJUKydayYdoQZuD11ksRfY5qQmZ6btw4U*rnYx2PjZh96GWn.8kmAkJk!/b&bo=gAIkBaAFkAsBGaM!&rf=viewer_4&t=5" width="100%"> </td> <td > <img src="http://m.qpic.cn/psc?/V14dALyK4PrHuj/TmEUgtj9EK6.7V8ajmQrECX7UhQoMNbn.zaa1QTctnsdRMEaz9AHVMnQkhVJAIXK1OsjW9SCcVyZM5jo5MF*rrrS4wwdM3w*U7wO8wtfc3U!/b&bo=gAIkBaAFkAsBKZM!&rf=viewer_4&t=5" width="100%"> </td> <td > <img src="http://m.qpic.cn/psc?/V14dALyK4PrHuj/bqQfVz5yrrGYSXMvKr.cqRGurtWW.dwJkBUlUai8n4M4RsCOUjgHRB61DR8473rvOz45Cgd2lDota9bBNfr1E*ViYKY6mDz7ssJG6bBiOqU!/b&bo=gAIkBaAFkAsBCbM!&rf=viewer_4&t=5" width="100%"> </td> </tr> </table>包含功能:
- 启动页广告位
- 开播列表上拉加载、下拉刷新、返回顶部
- 列表图片缓存加载优化
- 渐进式头部动画
- 底部导航切换保存页面状态
- HTTP缓存、IO缓存
- 直播间webSocket消息弹幕、礼物
- 页面路由传值
- RxDart全局消息通信封装
- Bloc流式状态管理(启动页预加载首页数据)
- 礼物横幅动画队列
- 礼物特效全屏lottie
- 弹幕消息滚动
- 静态视频流
- 九宫格抽奖游戏
- 照片选择器
- 全屏、半屏webView
- 鱼吧头部手势动画
- 仿微信朋友圈图片控件
- 登录注册弹窗
- 国家区号列表(仿微信通讯录滑动首字母定位)
- 二维码扫码
- 本地通知推送
- ...
- 持续增加中
本地调试:
flutter run --release
打包发布版本预览<br/>
APP所有数据均来源Mock网络请求,服务端接口没有上云,可修改lib/base.dart
中DYBase.baseHost
为你的电脑IP,并确保手机与电脑在同一局域网且能访问内网1236
端口<br/>
然后clone服务端仓库,Mock服务为python tornado
,两种简单启动方式可选:<br/>
- 在py 3.6~3.8下启动服务
- 安装
python3.6
环境; - cmd切换运行环境
cd ./tornado
; - 加载依赖包
pip install -r requirements.txt
; - 启动服务
python main.py
- 使用Docker镜像,具体方式参考该项目说明。
安卓打包可能因为国内无法加载gradle的问题,就算配了镜像也很慢,建议手动下载grdle-6.4.1-all.zip
版本再构建,下载安装可见此文章
入门推荐:
Dart语法 - 语法中文教程<br/> Flutter中文网 - 简单易懂的入门教程<br/> Flutter实战 - 较为全面的进阶教程<br/> Dart SDK(EN) - flutter中可用的SDK<br/> Flutter官网(EN) - 可查阅全部的API与SDK相关<br/> Bloc(EN) - 全局状态管理