具有离线处理个人信息功能的平板电脑解决方案的技术选择
Technology Choice for Tablet Solution with Offline Capabilities handling Personal Information
我们希望在相当紧迫的时间内重写一个基于表单的应用程序(理想情况下,我们将在 7 月中旬发布测试版,并在 9 月发布最终版本)。当前平台显示出其局限性,需要过高的数量才能符合我们的要求。因此,我们希望将技术引入内部,并编写我们自己的解决方案。
要求:
- 必须能够处理网络连接中断 - 用户可能无法始终访问互联网
- 必须与服务器进行安全的双向通信 - 上传和下载的信息可能包含个人信息,我们对数据丢失概不负责
- 必须能够同步和更新/删除平板电脑上已有的记录 - 信息可能会更改,并且用户必须尽可能"fresh"访问信息
- 必须能够离线存储大量记录(约 1000 多条记录,每条记录几 kB,总计 5+ MB)- 根据平板电脑型号,用户可能只有在一天的开始和结束时通过 wifi 上网,因此应该下载和存储尽可能多的可能访问的记录
- 应该可以在 iOS 和 Android
上访问
我们目前的解决方案是一个表单应用程序,它在第三点上严重失败,很快就会成为交易破坏者。已浮动的解决方案是:
- 一个 HTML5 具有离线功能的网站,通过平板电脑的网络浏览器
- 一个包裹在现成应用程序中的网站 "shell" 以提供离线功能,通过应用程序商店部署
- 将通过应用商店部署的定制应用(通过 Xamarin 或类似应用)
不幸的是,我们是一家桌面开发公司 - 目前我们没有平板电脑应用程序的内部经验。话虽这么说,该应用程序与我们其他几个产品的联系非常紧密,因此很难将开发外包。
因此,问题是:
作为移动应用程序开发人员,"recommended"构建必须与服务器安全通信的离线应用程序的方法是什么?
因此,对于需要同步的 5 MB 数据,我会构建一个 Web 服务,您可以从中获取移动应用程序的数据。
我更喜欢JSON数据格式。
当您的应用程序在连接互联网的情况下登录时,该应用程序可以从网络服务中获取完整的数据。
然后我要做的是将 json 作为文件压缩或存档到应用程序内部文件系统。
现在应用只有两种场景:
离线(登录):
- 获取存档的 json 文件并对数据做您想做的事
在线(登录)
- 再次从 Web 服务获取数据,将其存档,然后对数据执行您想要的操作
将数据同步回后端并不是真正的移动应用程序。您必须在后端考虑您的架构。
为了安全起见,请确保您已启用 ssl 以连接到网络服务。
我是本地 iOS 开发人员,但我使用 Symfony 作为后端和三个本地应用程序(iOS、Android 和 Windows)构建了类似的东西
你也可以使用 firebase 作为后端,这完全取决于你的需要。
最后,我只是一个网络陌生人:) 通常当客户需要估算时,我们确实需要时间进行估算并选择适合客户的正确平台。
我们希望在相当紧迫的时间内重写一个基于表单的应用程序(理想情况下,我们将在 7 月中旬发布测试版,并在 9 月发布最终版本)。当前平台显示出其局限性,需要过高的数量才能符合我们的要求。因此,我们希望将技术引入内部,并编写我们自己的解决方案。
要求:
- 必须能够处理网络连接中断 - 用户可能无法始终访问互联网
- 必须与服务器进行安全的双向通信 - 上传和下载的信息可能包含个人信息,我们对数据丢失概不负责
- 必须能够同步和更新/删除平板电脑上已有的记录 - 信息可能会更改,并且用户必须尽可能"fresh"访问信息
- 必须能够离线存储大量记录(约 1000 多条记录,每条记录几 kB,总计 5+ MB)- 根据平板电脑型号,用户可能只有在一天的开始和结束时通过 wifi 上网,因此应该下载和存储尽可能多的可能访问的记录
- 应该可以在 iOS 和 Android 上访问
我们目前的解决方案是一个表单应用程序,它在第三点上严重失败,很快就会成为交易破坏者。已浮动的解决方案是:
- 一个 HTML5 具有离线功能的网站,通过平板电脑的网络浏览器
- 一个包裹在现成应用程序中的网站 "shell" 以提供离线功能,通过应用程序商店部署
- 将通过应用商店部署的定制应用(通过 Xamarin 或类似应用)
不幸的是,我们是一家桌面开发公司 - 目前我们没有平板电脑应用程序的内部经验。话虽这么说,该应用程序与我们其他几个产品的联系非常紧密,因此很难将开发外包。
因此,问题是:
作为移动应用程序开发人员,"recommended"构建必须与服务器安全通信的离线应用程序的方法是什么?
因此,对于需要同步的 5 MB 数据,我会构建一个 Web 服务,您可以从中获取移动应用程序的数据。
我更喜欢JSON数据格式。
当您的应用程序在连接互联网的情况下登录时,该应用程序可以从网络服务中获取完整的数据。
然后我要做的是将 json 作为文件压缩或存档到应用程序内部文件系统。
现在应用只有两种场景:
离线(登录):
- 获取存档的 json 文件并对数据做您想做的事
在线(登录)
- 再次从 Web 服务获取数据,将其存档,然后对数据执行您想要的操作
将数据同步回后端并不是真正的移动应用程序。您必须在后端考虑您的架构。
为了安全起见,请确保您已启用 ssl 以连接到网络服务。
我是本地 iOS 开发人员,但我使用 Symfony 作为后端和三个本地应用程序(iOS、Android 和 Windows)构建了类似的东西
你也可以使用 firebase 作为后端,这完全取决于你的需要。
最后,我只是一个网络陌生人:) 通常当客户需要估算时,我们确实需要时间进行估算并选择适合客户的正确平台。