flutter实现小猿网盘

开场
前言
💻 学习Flutter这些时间了,只能说这个框架后劲挺大的.最近由于个人原因,很多 想做事情都耽搁了,确实非常遗憾.虽然学习了Flutter有一段时间了,但是距离能不能找到一份和这个接近的工作 真的像个While(True)语句;多余的话就不罗嗦了,直接进入正题:
🔘首先,Flutter实战小猿网盘一共 30个文件,7个文件夹, 写完这个项目真的感觉自己还需要提升,写的过程中真的有遇见了很多的困难,同时也很感谢在这个项目中帮助过我的贵人.
⚫其次, 这个项目很多地方的逻辑真的很夸张,完全是超出了我的负荷和认知, 有些人的逻辑真的很缜密,让我深深的认识到了......(此感悟放结尾)
⚪最后, 最关心的问题就是此软件实现的重要功能:
- 登录
- 文件上传至网盘
- 文件下载至电脑
等等还有许多的功能... 当然你想节约时间请直接使用电脑下载:
软件下载网址:https://wwii.lanzouq.com/iU0sp1dvoxyh
密码: 8888
视频学习地址:https://www.bilibili.com/video/BV1Bc41197te/?vd_source=8a2d2437f3c68308d1c5fb038d646aeb
项目整体设计思路
- 构造RP原型
- 写静态前端代码
- 渲染接口数据
开发工具
- Android Studio 2022 3.1
- Visual Studio Code
实现过程
1 main文件
1 | import 'package:fluent_ui/fluent_ui.dart'; |
这个文件代码主要是为了管理我们后续文件和各个数据经过的地方,也可以理解为一个中转设备(或者理解为:“中央空调”);
2 登录功能
2.1 发送验证码
1 | _sendCode() async { |
登录的功能主要是:自己首要要有一个接口,通过自己封装的Dio库去对自己的接口发起请求, 当服务器返回的验证码输入之后我们会执行登录,执行登录的时候又要对输入的数据进行和 服务器接口中的数据进行判断,当输入的验证码和服务器值相匹配时候,就会保存用户信息;
2.2 执行登录
1 | if (_photo != "" || _code != "") { |
执行登录:通过输入的数据和服务器的进行验证,如果相匹配跳转到文件页面并且保存用户的信息 实现用户信息的持久化,当跳转到新的页面的时候,数据又要继续加载.
3 File文件
这个文件代码1115行 我只能说夸张

因此:此处只放最重要的核心代码
3.1 软件头部
1 | Widget _headerWidget(transfersProvider) { |
如图 所示:

这里主要的功能就是上传和下载文件以及文件的排序,接着往下面看详细的实现.
3.2 文件下载
1 | ListTile( |
通过对下载的文件进行判断,如果是文件夹就会遍历文件夹中的所有内容且判断 所有文件的类型,从而达到下载成功;如果是单个文件就不会这循环在,直接判断文件 的类型,直接下载并且赋予对应的Icon ;同时,当我们在下载文件的时候需要像请求的接口 进行一定的校验,当我们从服务器下载文件的时候,需要去判断服务器上是否存在这个文件 如果存在就需要更新文件和更新文件的时间,如果没有则会像服务器中添加文件.
3.3 文件上传
1 | () async { |
上传文件的逻辑和下载文件差不多,但是上传文件的时候需要用户的个人信息作为身份标识 然后在用dio发起请求,请求成功后就需要向Model中获取对应的数据,当服务器返回值成功时候则会 向网盘中添加数据.
3.4 持久化用户信息
1 | //保存用户信息 |
为什么要持久化用户信息? 当我们在日常使用软件的时候,我们都会有一个用户唯一的ID作为标识 ,这样才可以对不同用户的个人信息不同,就好比 大家的VX (嘿嘿) 里面的联系人或者聊天记录等很多信息是 不同的.当然这里还有清楚用户信息,这里就不献丑了.
3.5 MD5数字签名
1 | 案列:(留言给完整加密代码) |
对数据进行加密这个东西的重要性小猿就不做介绍了,我也相信大家都知道这个的Vital;
3.6 传输数据条
这一部分底部留言给你.
总结
🚲首先,这个项目很多地方的逻辑真的很夸张,完全是超出了我的负荷和认知, 有些人的逻辑真的很缜密,让我深深的认识到了眼界的重要性; 这个练手项目写完只能说很多东西都进一步的理解,下次更新文章也不知道会是多久了,就像开头所说, 我们总将会去和生活对线,大部分人都逃避不了,我也一样;
🚗其次,就是服务器和域名也快要到期了,我也不知道续不续,自己觉得我这个服务器的性能不是很强, 当你们看到这个的时候其实也感觉到了,有时候你们点击某个按钮的时候就会有延迟,如果你网络好 ,就没有什么影响;但凡网络差点味道,就会很明显感觉网站有卡顿效果,主要就是我给网站加了一些动画效果 ;所以后续我打算重新构造网站的底层和改一下网站的风格以及很多动画都会减去,同时也会去弄一弄CDN,提高速度;
🚄最后......
文件地址:
网址:https://wwii.lanzouq.com/iU0sp1dvoxyh
密码: 8888
视频学习地址:https://www.bilibili.com/video/BV1Bc41197te/?vd_source=8a2d2437f3c68308d1c5fb038d646aeb
结尾
Widen one's horizon









