Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

推荐 4 个基于 Flutter 的重磅高仿开源项目 #25

Open
biaochenxuying opened this issue Feb 23, 2021 · 0 comments
Open

推荐 4 个基于 Flutter 的重磅高仿开源项目 #25

biaochenxuying opened this issue Feb 23, 2021 · 0 comments
Assignees

Comments

@biaochenxuying
Copy link
Collaborator

大家新年好呀,我是你们的 猫哥,那个不喜欢吃鱼、又不喜欢喵 的超级猫又回来啦 ~

相信大家过年都过得开心吧

过得开心,那么就开始学习了哈 ~

这里为你整理了 4 个 Flutter 优质的开源项目,希望对你有帮助。

斗鱼 APP

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

应用截图

主要涵盖功能

这高防实现的功能就多了。

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

项目地址

https://github.com/yukilzw/dy_flutter

精仿抖音

仿写抖音的 flutter app。主要实现了看视频功能。

实现功能

  • 上下刷视频,视频会自动加载封面
  • 左右滑动去搜索与个人中心
  • 双击冒爱心点赞
  • 看评论
  • 切换底部 Tabbar

应用截图

项目结构

依赖:

  flutter_spinkit^4.1.2
  # Bilibili开源的视频播放组件
  fijkplayer^0.8.3
  # 基础的透明动画点击效果
  tapped: any
  # map安全取值
  safemap: any

主要文件:

./lib
├── main.dart
├── mock
   └── video.dart # 假数据
├── other
   └── bottomSheet.dart # 修改了系统BottomSheet的高度
├── pages
   ├── cameraPage.dart # 拍摄页(没有实际功能)
   ├── followPage.dart  # 
   ├── homePage.dart # 主页面,包含tikTokScaffold的实际应用功能
   ├── msgDetailListPage.dart # 
   ├── msgPage.dart # 
   ├── searchPage.dart # 
   ├── todoPage.dart # 
   ├── userDetailPage.dart # 
   ├── userPage.dart # 
   └── walletPage.d # 
├── style
   ├── style.dart # 全局文字大小与颜色
   └── text.dart # 主要的几个文字样式
└── views
    ├── backButton.dart # iOS形状的返回按钮组件
    ├── loadingButton.dart # 可以设置为载入样式的按钮组件
    ├── selectText.dart # 可设置为“选中”或者“未选中”样式的文字
    ├── tikTokCommentBottomSheet.dart # 仿Tiktok评论样式
    ├── tikTokHeader.dart # 仿Tiktok顶部切换组件
    ├── tikTokScaffold.dart # 仿Tiktok核心脚手架,封装了手势与切换等功能,本身不包含UI内容
    ├── tikTokVideo.dart # 仿Tiktok的视频UI样式封装,不包含视频播放
    ├── tikTokVideoButtonColumn.dart # 仿Tiktok视频右侧的头像与点赞等按钮列的组件
    ├── tikTokVideoGesture.dart # 仿Tiktok的双击点赞效果
    ├── tikTokVideoPlayer.dart # 视频播放页面,带有控制滑动的VideoListController类
    ├── tiktokTabBar.dart # 仿Tiktok的底部Tabbar组件
    ├── tilTokAppBar.dart # 仿Tiktok的Appbar组件
    ├── topToolRow.dart # 用户页面的顶部状态,在tab切换到user页面时隐藏返回按钮
    └── userMsgRow.dart # 一条用户信息的样式组件` 

项目地址

https://github.com/mjl0602/flutter_tiktok

开源中国客户端

基于 Google Flutter 的开源中国客户端,支持 Android 和 iOS。

应用截图

iOS

Android

功能

  • 登录(使用 osc 账号)
  • 查看资讯(未登录即可查看)
  • 查看、回复、发表、评论动弹(需要登录)
  • 动弹小黑屋(需要登录)
  • “发现”部分的功能基本上都是用 H5 实现
  • 资讯列表、动弹列表、评论列表支持下拉刷新或分页加载
  • 支持主题切换(入口在侧滑菜单-设置-切换主题)

项目地址

https://github.com/yubo725/flutter-osc

豆瓣客户端

真正的豆瓣客户端,90% 还原豆瓣。首页、书影音、小组、市集及个人中心,一个不拉。

应用截图

功能介绍

  • 此项目,90% 还原某瓣 APP,所有 UI 均按照某瓣来实现。
  • 项目中的数据均来自豆瓣 api 真实有效数据
  • 项目中用到了几乎所有的 Flutter widget
  • 还有两个比较大的自定义魔改源码实现特效

项目地址

https://github.com/kaina404/FlutterDouBan

最后

初级前端与高级前端之间,很多时候并不是懂的知识点有多难的差别,很大原因就是投入学习前端的时间、经验的差别,其实就是信息差。

如果有一个地方能又快又好的获得这些优质的前端信息,那么将会大大缩短从初级到高级的时间。

前端GitHub 就是这样一个仓库,能帮助前端开发人员节省时间的仓库!

公众号:前端GitHub,专注于挖掘优秀的前端开源项目,抹平你的前端信息不对称。

已经推荐了 面试项目CSS 奇技淫巧项目代码规范项目数据结构与算法项目JavaScript 奇技淫巧项目前端必备在线工具 等专题的近 200 个优秀项目了。

平时如何发现好的开源项目,可以看看这篇文章:GitHub 上能挖矿的神仙技巧 - 如何发现优秀开源项目


关于猫哥,大家可以看看我的年终总结 前端工程师的 2020 年终总结 - 乾坤未定,你我皆黑马

不知不觉,已经写到第 20 期了呢,往期精文请看下方宝藏仓库,请慎入!

https://github.com/FrontEndGitHub/FrontEndGitHub

往期精文

微信搜 “前端GitHub”,回复 “电子书” 即可以获得 160 本前端精华书籍哦,猫哥 WX:CB834301747

@biaochenxuying biaochenxuying self-assigned this Feb 23, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant