【发布时间】:2021-02-07 06:25:47
【问题描述】:
我是一个相当新的 Flutter 程序员,所以请原谅以下问题中的任何缺陷......
我正在为结构/架构的困境而苦苦挣扎。这是背景: 应用理由:
- 我的应用允许其用户检查他们所在地区的少量工作,以及他们是否有时间并在适当的位置执行工作以获得报酬,
- 该应用使用标准 REST API(不是 Firebase),因此不能依赖服务器发送状态更改通知来触发重新获取数据,
- 关键要素是 (1) 给定地址的最新工作列表 - 其他用户可能已经在某个地址中完成了工作(定时刷新列表,例如每 5 分钟一次),以及 (2)应用需要跟踪用户的位置,如果用户在刷新时间内移动超过 2 公里,则相应地向服务器请求作业,
挑战:
- 我猜在基本级别上,应用程序应该有以下提供程序:(1) auth - 提供 authToken,(2) geolocation - 定期检查用户的位置,(3) jobList - 用于特定位置(获取高级作业描述和地址(,(4)jobDetails - 获取执行特定作业的确切指令,
- 如您所见:(2) 地理位置和 (3) jobList – 需要以编程方式刷新(间隔或在某些地理位置更改时),而 (1) auth, (4) jobDetails 由用户触发。
最大的问题 ;) 是……对于上述类型的应用程序的正确架构是什么?更具体地说:
- 我是否应该使用服务来连接服务器 API,而这些服务又会被提供者使用?
- 如何确保在计时器和地理位置重定位事件上以编程方式重新获取作业列表?
- 如何持续侦听位置变化以检测重定位,但又不会让应用程序不堪重负?
- 我应该将(快速过时的)jobLIst 数据存储在其对象类中,还是应该使用设置提供程序或本地数据库,或者可能有一种简单的方法来存储最新的 JSON 响应,而不必构建设置提供程序或数据库映射?
- 在我对 Auth api 的所有调用中,我需要提供 deviceId - 如何使其在整个应用程序中可用 - 这是相当静态的,但在身份验证中需要,所以检查它是否应该成为身份验证提供程序的一部分?
如果您能对上述内容发表评论或提出相关示例的来源,我将不胜感激。
感谢和欢呼!
【问题讨论】:
标签: flutter rest flutter-change-notifier