Flutter 颤振–;关于体系结构、提供程序和从服务器获取数据的问题

Flutter 颤振–;关于体系结构、提供程序和从服务器获取数据的问题,flutter,restapi,flutter-change-notifier,Flutter,Restapi,Flutter Change Notifier,我是一个相当新鲜的颤振程序员,所以请原谅以下问题中的任何缺陷 我正挣扎于结构/架构的两难境地。背景如下: 应用程序理由: “我的应用程序”允许其用户查看所在区域的少量可用工作,如果他们有时间并在适当的位置执行工作并获得报酬 该应用程序使用标准REST API(非Firebase),因此服务器无法依靠发送状态更改通知来触发数据的重新获取 关键要素是(1)给定地址的最新作业列表-其他用户可能已经在某个地址中接受了作业(列表定时刷新,例如每5分钟一次),以及(2)应用程序需要跟踪用户的位置,并相应地

我是一个相当新鲜的颤振程序员,所以请原谅以下问题中的任何缺陷

我正挣扎于结构/架构的两难境地。背景如下: 应用程序理由:

  • “我的应用程序”允许其用户查看所在区域的少量可用工作,如果他们有时间并在适当的位置执行工作并获得报酬
  • 该应用程序使用标准REST API(非Firebase),因此服务器无法依靠发送状态更改通知来触发数据的重新获取
  • 关键要素是(1)给定地址的最新作业列表-其他用户可能已经在某个地址中接受了作业(列表定时刷新,例如每5分钟一次),以及(2)应用程序需要跟踪用户的位置,并相应地要求服务器提供作业,如果用户在刷新时间内重新定位超过2公里,
挑战:

  • 我猜在基本层面上,应用程序应该有以下提供者:(1)身份验证-提供身份验证令牌,(2)地理位置-定期检查用户的位置,(3)工作列表-特定位置(获取高级工作描述和地址)(,(4)jobDetails–获取执行特定作业的确切说明
  • 如您所见:(2)地理位置和(3)作业列表–需要以编程方式刷新(间隔时间或地理位置的某些更改),而(1)身份验证,(4)作业详细信息由用户触发
最大的问题是……对于上述类型的应用程序,什么是合适的体系结构?更具体地说:

  • 我是否应该使用服务连接到服务器API,而这些服务反过来又会被提供者使用
  • 如何确保在计时器上按程序重新提取作业列表,以及从地理位置重新定位事件
  • 如何持续监听位置变化以检测重新定位,但又不让应用程序无法处理
  • 我应该只在其对象类中存储(快速过时)作业列表数据,还是应该使用设置提供程序或本地数据库,或者有一种简单的方法来存储最新的JSON响应,而不必构建设置提供程序或数据库映射
  • 在我对Auth api的所有调用中,我需要提供设备ID—如何使其在整个应用程序中可用—这是相当静态的,但在身份验证中是必需的,所以检查它是否应该成为身份验证提供程序的一部分
如果您能对上述内容发表评论或提供相关示例,我将不胜感激

谢谢和干杯!

以下是我的想法:

  • 如何持续监听位置变化以检测重新定位,但又不让应用程序无法处理
您可以依靠第三方为您执行此操作。例如:。通过此操作,您可以指定在包通知您用户位置更改之前用户必须移动的距离

  • 我应该将(快速过时的)工作列表数据存储在其对象类中还是
因为工作列表应用程序可能经常在不同的地方使用这些数据,所以我更喜欢使用db。如果您计划在移动端进行某种分析或收集任何见解,从长远来看,它也会很有帮助

  • 在我对AuthAPI的所有调用中,我需要提供deviceId-如何使其在应用程序中可用
当应用程序初始化时,您可以获取deviceID并将其存储在中。然后在auth api中,您可以在进行api调用之前检索它

  • 我是否应该使用服务连接到服务器API,而这些服务反过来又会被提供者使用
至于地理位置,您可以向您更新有关位置更改的信息,并且可以基于此进行API调用


但是,如果您计划使用基于计时器的方法来刷新工作列表,那么您必须意识到您的用户可能会面临由您的不一致数据引起的问题。如果您计划解决此问题,那么这可能会有所帮助。但我强烈认为,支持推送通知的服务器或web套接字方法将是理想的解决方案这里。

嗨-谢谢你的想法!我需要先消化它们,然后才能做出反应;)干杯!