Chúng tôi đang xây dựng một bộ ứng dụng di động gốc để bổ sung cho ứng dụng hiện tại của chúng tôi hiện chỉ hỗ trợ giao diện web cho máy chủ. Ứng dụng có thể được cài đặt và lưu trữ bởi các khách hàng trên cơ sở hạ tầng của riêng họ hoặc được lưu trữ bởi chính chúng tôi cho các khách hàng muốn sử dụng nó. Khách hàng doanh nghiệp lớn thường chọn tự lưu trữ trong khi khách hàng nhỏ hơn chọn tùy chọn lưu trữ của chúng tôi.
Chúng tôi cần hỗ trợ nhiều phiên bản của ứng dụng. Không phải tất cả khách hàng đều muốn nâng cấp cùng một lúc. Với giao diện web, việc hỗ trợ nhiều phiên bản không khó vì giao diện web tự động sử dụng phiên bản máy chủ được liên kết với cài đặt máy chủ của nó. Với các ứng dụng di động mà bạn thường chỉ có sẵn một ứng dụng trong Cửa hàng ứng dụng, việc hỗ trợ các cấp độ khác nhau của API máy chủ và chức năng trong ứng dụng di động trở thành một thách thức. Tôi muốn biết làm thế nào những người khác đang giải quyết vấn đề. Theo suy nghĩ của tôi, bạn có các tùy chọn như:
- Hỗ trợ nhiều phiên bản của ứng dụng trong cửa hàng ứng dụng.
- Xây dựng hỗ trợ vào các ứng dụng di động để tự động xác định phiên bản API của máy chủ mà nó đang nói chuyện và định tuyến các cuộc gọi đến các điểm cuối API của máy chủ có liên quan. Đồng thời giới thiệu sử dụng một số loại cơ chế chuyển đổi tính năng để bật / tắt chức năng trong ứng dụng di động dựa trên những gì có sẵn trong các phiên bản máy chủ khác nhau.
- Không sử dụng cửa hàng ứng dụng để triển khai ứng dụng của bạn. Hướng người dùng đến một URL cụ thể của phiên bản mà họ có thể sử dụng để tải xuống và cài đặt ứng dụng.
Tùy chọn 1 - IMO sẽ tạo sự nhầm lẫn cho người dùng ứng dụng. Cũng không có đường dẫn di chuyển đẹp từ một phiên bản của ứng dụng sang phiên bản tiếp theo vì đây thực sự là hai ứng dụng riêng biệt.
Tùy chọn 2 - mặt khác có thể nhanh chóng trở nên rất phức tạp nếu bạn tính đến việc hình ảnh UI của bạn bây giờ về cơ bản cần phải thích ứng với bất kỳ chức năng nào có sẵn trong phiên bản API máy chủ mà nó đang nói đến. Nó cũng cần hỗ trợ các phiên bản khác nhau của các lệnh gọi API máy chủ cần thực hiện.
Tùy chọn 3 - có thể có trong thế giới Android khi tải ứng dụng phụ của bạn, nhưng theo như tôi biết không được hỗ trợ trong iOS và tôi không chắc hình ảnh sẽ ra sao cho các ứng dụng di động Windows 10 sắp tới.
Có những cách tiếp cận nào khác để giải quyết vấn đề? Xin đừng tranh luận về việc chúng tôi đang viết các ứng dụng gốc. Đó không phải là những gì tôi đang hỏi. Tôi đang tìm kiếm hướng dẫn về cách người khác giải quyết vấn đề hỗ trợ nhiều phiên bản của cùng một ứng dụng di động gốc nói chuyện với các phiên bản khác nhau của API máy chủ.