# flutter_wan_android **Repository Path**: wzg_gitee/flutter_wan_android ## Basic Information - **Project Name**: flutter_wan_android - **Description**: 使用flutter 写的wanandroid项目 - **Primary Language**: Dart - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2022-09-29 - **Last Updated**: 2025-08-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # flutter_wan_android 这是一个基于flutter写的玩android项目,所有数据都是来源于开源api。 ### 关于作者 Email   : 718603390@qq.com ### 部分图片展示
Image 1 Image 2 Image 3 Image 4
## app下载二维码 ![img.png](img.png) # app下载链接(复制不要直接点击进去) app下载链接: https://www.pgyer.com/nmn4 ### 软件架构 1. flutter_2.5.3(实际要高一些,太久了忘记了,但是该版本可以运行) 2. getx 3. dio 4. 更多查看源码,接口大多都有注释 ### App结构简介 1.所有dart类都是根据功能划分,这样的好处是容易找,修改也不会影响多个目录,发现bug回去找问题也容易。 错误的做法是将所有的ui类放在一个目录,所以的model放在一个目录。 2.项目的整体架构是get实现ui与逻辑分离 3.一个标准get架构(但是不得不说有些内部界面还是没有重构) 4.ui设计参考其他开源项目(api官网中的java版本的wanandroid界面) 5.所有数据都是来源于开源api[开源api](http://www.wanandroid.com/blog/show/2) ### App目录结构 >- |--lib > - |-- core (核心类) > - |-- custom (自定义类,可复用的) > - |-- generated (自动生成的无需关注) > - |-- l10n (国际化) > - |-- network (网络) > - |-- test (flutter demos) > - |-- ui (ui类) > - |-- utils (工具类) ### ui目录结构 >- |--ui > - |-- common (通用) > - |-- login (登录) > - |-- main (main) > - |-- register (注册) > - |-- welcome (欢迎页) ### 路由 ```dart static List getPageList = [ GetPage( name: Routers.welcome, page: () => const WelcomePage(), binding: WelcomeBinding(), ), GetPage( name: Routers.loginPage, page: () => const LoginPage(), binding: LoginBinding(), ), GetPage( name: Routers.mainPage, page: () => const MainPage(), binding: MainBinding(), ), GetPage( name: Routers.homePage, page: () => const HomePage(), binding: HomeBinding(), ), GetPage( name: Routers.authorPage, page: () => const AuthorPage(), ), GetPage( name: Routers.dHPage, page: () => const DHPage(), binding: DHBinding() ), GetPage( name: Routers.synopsisPage, page: () => const SynopsisPage(), ) ]; ``` ### 网络请求 ```dart class LoginModel extends BaseModel { ///login static void login(String name, String pwd) async { await BaseModel.dataManager.login(name, pwd, (data) async { if (data == null) { SmartDialog.showToast("errMsg: data==null"); return; } await BaseModel.dataManager.setLoginStatus(true); await BaseModel.dataManager.setLoginName(data.nickname ?? name); await Get.offNamed(Routers.mainPage); }, (err) { SmartDialog.showToast("${err.errMsg}"); }); } } ``` # update status # v1.2.0 1.添加statusWidget 2.使用statusWidget替换项目的列表原本的loading 3.使用statusWidget替换知识体系的列表原本的loading 4.使用statusWidget替换收藏的列表原本的loading 5.优化项目主页与detail页ui代码 6.优化知识主页与detail页ui代码 # v1.2.1 1.优化一些代码【懂的都懂😀】 # v2.0.0 1.使用getx完成welComePage的改造 2.使用getx完成loginPage的改造 3.使用getx完成MainPage的改造 # v2.0.0.3 1.添加知识体系的失败重试 2.优化MyEasyRefresh的封装 # v2.0.0.4 1.添加项目详情列表的失败重试 # v2.0.0.5 1.添加作者介绍页 # v2.0.0.6 1.添加作者介绍页 2.添加导航页 # v2.1.0.0 1.添加导航功能 # v2.1.0.1 1.优化查看大图 # v2.1.1.1 1.优化我的界面 2.优化项目最后一个item的bottom padding为0问题 # v2.1.1.2 1.展示版本号 # v2.1.1.3 1.“登录页”与“我的页”展示版本号 # v2.1.1.4 1.优化“收藏页”未登录情况 # v2.1.1.5 1.升级app版本号 # v2.1.1.6 1.添加加载进度条