Hỗ trợ nhiều phiên bản ứng dụng di động


10

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ư:

  1. Hỗ trợ nhiều phiên bản của ứng dụng trong cửa hàng ứng dụng.
  2. 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.
  3. 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ủ.


1
Tùy chọn 3 cũng có thể thực hiện được trong thế giới Windows Phone, miễn là chúng được kết nối với cơ sở hạ tầng công ty, bạn có thể chỉ định ứng dụng nào họ sử dụng.
James Snell

Câu trả lời:


2

Hãy nhìn vào những gì sẽ xảy ra ...

Tùy chọn 1 sẽ tạo các cuộc gọi hỗ trợ khi người dùng cài đặt phiên bản sai. Sẽ luôn có một người dùng không thể đọc hoặc chọn phiên bản mới nhất nghĩ rằng họ biết rõ hơn ... và bạn sẽ có một số lượng lớn các phiên bản để sửa lỗi backport mà bạn cần.

Tùy chọn 2 thêm một số phức tạp vào mã UI, bao nhiêu tùy thuộc vào mức độ UI được viết để thích ứng. Nhưng nó có trải nghiệm người dùng tốt nhất.

Tùy chọn 3 không thể xảy ra trên iOS (Android và Windows sẽ cho phép nó trong một số cấu hình nhất định) có nghĩa là các hành vi khác nhau cho các nền tảng khác nhau. Điều đó làm cho mọi thứ không nhất quán là một công thức cho rắc rối.

Vì vậy, trong số đó, tạo một UI đáp ứng và nhắm mục tiêu đúng điểm cuối là cách tốt nhất cho người dùng của bạn.


1

Tôi đã xử lý vấn đề này trong một bối cảnh hơi khác, nhưng điều chúng tôi nghĩ ra là nếu bạn sử dụng máy chủ công cộng của chúng tôi, chúng tôi yêu cầu bạn phải nâng cấp. Nếu bạn tự lưu trữ, chúng tôi cho phép bạn ở lại bất kỳ phiên bản nào bạn thích.

Tôi biết đó không phải là câu trả lời thân thiện với khách hàng nhất và nó có thể không phải là một lựa chọn tùy thuộc vào tình huống của bạn, nhưng đó là lập trường mà chúng tôi đã kết thúc.

Một điều cần lưu ý: cuối cùng chúng tôi đã phải thực hiện rất nhiều lần một lần dựa trên các đường cơ sở cũ đã được tự lưu trữ khi chúng tôi tìm thấy các vấn đề bảo mật hoặc lỗi nghiêm trọng. Nếu bạn hỗ trợ nhiều phiên bản, cho dù cách chúng tôi đã làm hoặc nếu bạn kết thúc hỗ trợ đầy đủ nhiều API, bạn cần đảm bảo rằng bạn có quản lý cấu hình và kiểm soát nguồn vững chắc. Khi bạn tìm thấy lỗi, hãy đảm bảo dành thời gian để tìm lại chúng vì chúng có nguồn gốc vì bạn có thể phải sửa nó trên một nhánh cũ.


1
Bạn làm gì về việc phát hành đáng kinh ngạc? Nếu bạn chỉ muốn triển khai mặt sau cho một vài khách hàng trước để dùng thử, làm thế nào để bạn làm điều này mà không nói với tất cả khách hàng của bạn trì hoãn nâng cấp máy khách?
Nhà phát triển Melbourne

0

Phiên bản API vẫn ổn nhưng điều này sẽ đòi hỏi nhiều công việc hơn ở Lớp UI a) UI cần biết phiên bản API nào sẽ được gọi tùy thuộc vào cấu hình (sử dụng tệp thuộc tính hoặc tệp tài nguyên trên thiết bị khách)

b) Ngoài ra, máy chủ cần phải có hỗ trợ cho nhiều phiên bản API.

API máy chủ chỉ phục vụ cho các máy khách Di động hay nó cũng có các máy khách khác. Nếu nó phục vụ cho các máy khách khác thì đối với Mobile, bạn chỉ có thể muốn có một API trình bao bọc mà về cơ bản gọi API máy chủ ở một đầu với sự hỗ trợ phiên bản.

Về cơ bản, phiên bản rất khó đối với API máy chủ nếu có các máy khách khác như API công khai được API máy chủ phục vụ nếu không thì đơn giản.

2 xu của tôi.


API máy chủ phục vụ cho nhiều khách hàng, không chỉ khách hàng di động. Với API trình bao bọc, bạn có đang đề cập đến một cái gì đó giống như Mẫu Cổng API
Carel
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.