zhongmeizhi/fultter-example-app
機能が完全に整ったBlocパターンのFlutterアプリプロジェクト。🍨 アーキテクチャに重点を置いたSPAアプリで、バックエンドシステムとしてNodeを使用し、一部の公式プラグインを利用しています。主な機能は自作です。🥰 便利ならスターを押してください。
- Stars
- 277
- Forks
- 63
- 最終プッシュ(UTC)
- 2023/03/21
- プロジェクト状態
- 公開中
言語DartJavaScriptObjective-CShellJavaHTML
技術トピック
使用している依存関係
依存関係一覧 14 件
- flutter
{"sdk":"flutter"} - flutter_localizations
{"sdk":"flutter"} - cupertino_icons
^0.1.2 - common_utils
^1.1.1 - webview_flutter
^0.3.10+3 - shared_preferences
^0.5.0 - permission_handler
^3.2.2 - path_provider
^0.4.1 - flutter_downloader
1.1.9 - url_launcher
5.2.7 - flutter_bloc
^0.21.0 - bloc
^0.15.0 - dio
^2.1.16 - flutter_test開発用
{"sdk":"flutter"}
ランキング
元の README
以下は英語原文のスナップショットです。最新版は GitHub をご覧ください。
README を開く / 閉じる
Flutter-App
项目介绍
一个功能完整齐全的Bloc模式Flutter App项目。更关注架构的SPA应用。
项目更关注整体架构,以SPA方式完成全局Loading,全局Toast,全局命名路由动画,参数传递等功能。以Bloc方式实现状态管理,一键换肤等功能。实现了屏幕适配,可自定义全局Loading的请求封装,分离开发、测试、生产环境,WebView自然也一定要有咯。项目大部分都使用Flutter原生API来完成。使用少量原生插件。喜欢请Star,尽量别 Fork。
APP强更提示:
- 虚拟机似乎不支持强更,需要用真机试
项目预览
| 1 | 2 | 3 | 4 |
|---|---|---|---|
| 5 | 6 | 7 | 8 |
| 9 | update | search | reorder |
项目计划
- [x] ZFit 屏幕适配
- [x] RouteSetting + 路由数据回传
- [x] 自定义App桌面 图标 + 名称
- [x] 无限轮播图
- [x] EventBus
- [x] koa2 + node 后台服务器
- [x] 封装请求
- [x] Storage 保持登录状态
- [x] 解决页面切换重绘问题
- [x] webview
- [x] 下拉刷新 + 上拉加载
- [x] keepa-live && 缓存Widget
- [x] 搜索功能
- [x] App强制更新
- [x] 拖动式排序
- [x] BLoC模式 实现状态管理
- [x] 一键换肤
- [x] 重写Flutter部分类
- [x] 全局Toast + 全局 Dialog
- [x] 全局 命名路由动画
- [x] 实现 SPA (单页面应用)
- [x] 环境分离
- [x] 元数据(由于flutter不支持反射,End)
- [ ] Bloc模式完善
- [ ] node架构完善
目录结构
主目录:
- assets:静态文件
- back-end:mock数据
lib目录:
- config:配置文件
- domain:实体类
- bloc:逻辑模块
- page:页面
- plugin:独立组件/插件
- routes:路由
- service:接口封装 + API地址
- styles: 常用样式类
- utils:工具类
- view:可复用Widget
主要管理文件
service.dart:请求管理manager_page.dart:单页管理
Node 后台:
- 安装
node.js - cd 到项目
back-end目录下 - 控制台运行
npm i - 控制台运行
node server.js - 启动服务端成功
- tip:记得先要修改
config文件下的 baseUrl - tip:如果要启动node的负载均衡/热重载请使用PM2
附: 如果是本地调试,baseUrl请使用IP + 端口
End 附:
- BLoC模式
- 不使用setState就能刷新页面
- 在多个页面中共享状态。