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. 【Android Studio】安卓开发初体验2——Activity

    Activity是什么 Activity用于提供可视化用户界面的组件,可以与用户进行交互来完成某项任务,一个应用程序中可以包含零个或多个活动 Activity的创建 首先将左侧的Active Tool ...

  2. 力扣 - 232. 用栈实现队列.md

    目录 题目 思路 代码实现 复杂度分析 题目 请你仅使用两个栈实现先入先出队列.队列应当支持一般队列的支持的所有操作(push.pop.peek.empty): 实现 MyQueue 类: void ...

  3. Java安全之JNDI注入

    Java安全之JNDI注入 文章首发:Java安全之JNDI注入 0x00 前言 续上篇文内容,接着来学习JNDI注入相关知识.JNDI注入是Fastjson反序列化漏洞中的攻击手法之一. 0x01 ...

  4. VirtualBox 6 安装 CentOS 7

    1 安装环境 windows7 Oracle VM VirtualBox 6.0.24 CentOS 7 2 VirtualBox 6 - 虚拟机软件 2.1 下载 Oracle VM Virtual ...

  5. PHP无限级评论回复功能实现

    protected function commentList($aid,$pid = 0,&$result=array()){ $arr = ArticleComment::relation( ...

  6. IP 层收发报文简要剖析1-ip报文的输入

    ip层数据包处理场景如下: 网络层处理数据包文时需要和路由表以及邻居系统打交道.输入数据时,提供输入接口给链路层调用,并调用传输层的输入接口将数据输入到传输层. 在输出数据时,提供输出接口给传输层,并 ...

  7. gdb调试core dump使用

    什么是coredump? Coredump叫做核心转储,它是进程运行时在突然崩溃的那一刻的一个内存快照.操作系统在程序发生异常而异常在进程内部又没有被捕获的情况下,会把进程此刻内存.寄存器状态.运行堆 ...

  8. jm8.6编解码器概述

    自己在学习h264的路上,欢迎讨论交流. 前段时间研究JM出品的h264编码器,代码实在看不下去,因此换了个角度来研究诸多算法--逆向方式(解码),本系列文章记录一些遇到的东西和思考. 1. JM介绍 ...

  9. 对accuracy、precision、recall、F1-score、ROC-AUC、PRC-AUC的一些理解

    最近做了一些分类模型,所以打算对分类模型常用的评价指标做一些记录,说一下自己的理解.使用何种评价指标,完全取决于应用场景及数据分析人员关注点,不同评价指标之间并没有优劣之分,只是各指标侧重反映的信息不 ...

  10. UNP——第五章,TCP客户/服务程序

    tcpser void str_echo(int sockfd) { long arg1, arg2; ssize_t n; char line[MAXLINE]; for ( ; ; ) { if ...