Mobile strategy: How to handle this server-client version permutation?

百般思念 提交于 2019-12-10 17:12:31

问题


We are hosting a SAAS application for clients. The main app is a web appliction and different clients can be on different versions. e.g.:

Company A  version 1.0
Company B  version 1.1

We also have Android/iOS apps in App Store. Since the apps are not always up to date, we can have multiple app versions in the market too. e.g. 2.0 and 2.1 . Thus for compatibility reason, we have to make sure that each client version works with each server version:

server 1.0 must work with client 2.0,
server 1.0 must work with client 2.1,
server 1.1 must work with client 2.0, 
and server 1.1 must work with client 2.2.

It's manageable when there are only 2 sever version and 2 client version. However as the time goes by the list becomes crazy. We do have a mechanism that force mobile apps update to the latest version, but it's kinda annoying so the management people don't want to do it too often.

My question is, what is the best strategy to handle this problem? Do Android and iOS have built-in function that the user can download multiple app versions and only launch the one as required?

Thanks in advance.


回答1:


We are having a similar problem with multiple customers who may have different server versions deployed.

There are a few options we are currently considering:

  • Manage our customers' deployments in the cloud (administered by us) to ensure they are always running the latest version. Problematic for customers who want in-house deployments, e.g. for compliance or security reasons.
  • Bundle the older releases inside the app itself as a library and, at runtime, execute the one matching the server versions. Unfortunately leads to messy builds and bloated app packages.
  • Tell users to manually install the app, don't publish to app store. Inconvenient and problematic for less tech-savvy users.
  • Distribute apps through the customer's server deployment. Requires permission to install from unknown sources on Android. Requires the customer to have an iOS enterprise account for iOS ($299/year, each customer must sign up separately).
  • Modularize app code to enable/disable components or behavior based on server version. Might work if server updates are rare, but will become messy and hard to maintain it's happening often.

In each case, users must still update their app whenever their company upgrades the server version.

For us, using PhoneGap, there is one more option:

  • Download app code from the server and execute it. App store guidelines 2.7 and 2.8 seem to forbid this, but the developer agreement item 3.3.2 says downloading scripts running in a web view is allowed. This means the app is basically just a launcher that connects and gets a script from the server, then runs it. The downside is that it requires a download each time the app is run and/or a caching mechanism in the app's storage.

Have you found a solution that works for you? How did you choose to deal with this issue?



来源:https://stackoverflow.com/questions/12573693/mobile-strategy-how-to-handle-this-server-client-version-permutation

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!