Mendukung beberapa versi aplikasi Seluler


10

Kami sedang membangun serangkaian aplikasi seluler asli untuk melengkapi aplikasi kami yang ada yang saat ini hanya mendukung antarmuka web ke server. Aplikasi dapat diinstal dan di-host oleh klien di infrastruktur mereka sendiri atau di-host oleh kami sendiri untuk klien yang ingin memanfaatkannya. Pelanggan perusahaan besar biasanya memilih untuk menjadi tuan rumah sendiri sementara pelanggan yang lebih kecil memilih opsi hosting kami.

Kita perlu mendukung banyak versi aplikasi. Tidak semua pelanggan ingin memutakhirkan pada saat yang sama. Dengan antarmuka web, mendukung banyak versi tidak sulit karena antarmuka web secara otomatis menggunakan versi server yang terkait dengan instalasi servernya. Dengan aplikasi seluler di mana Anda biasanya hanya memiliki satu aplikasi yang tersedia di App Store, dukungan untuk berbagai tingkat API Server dan fungsionalitas dalam aplikasi seluler menjadi tantangan. Saya tertarik untuk mengetahui bagaimana orang lain memecahkan masalah ini. Menurut saya, Anda memiliki opsi seperti:

  1. Mendukung banyak versi aplikasi di app store.
  2. Bangun dukungan ke dalam aplikasi seluler untuk secara otomatis menentukan versi API dari server tempat ia berbicara dan merutekan panggilan ke titik akhir API server yang relevan. Juga perkenalkan gunakan beberapa jenis mekanisme sakelar fitur untuk mengaktifkan / menonaktifkan fungsionalitas dalam aplikasi seluler berdasarkan apa yang tersedia di versi server yang berbeda.
  3. Jangan gunakan app store untuk menyebarkan aplikasi Anda. Arahkan pengguna ke URL khusus versi yang dapat mereka gunakan untuk mengunduh dan menginstal aplikasi.

Opsi 1 - IMO akan membuat kebingungan bagi pengguna aplikasi. Juga tidak ada jalur migrasi yang bagus dari satu versi aplikasi ke yang berikutnya karena ini adalah dua aplikasi yang terpisah.

Opsi 2 - di sisi lain dapat dengan cepat menjadi sangat kompleks jika Anda memperhitungkan bahwa visual UI Anda sekarang pada dasarnya perlu beradaptasi dengan fungsionalitas apa pun yang tersedia dalam versi server API yang ia bicarakan. Itu juga perlu mendukung versi berbeda dari panggilan API server yang perlu dibuat.

Opsi 3 - dimungkinkan di dunia Android saat melakukan pemuatan samping aplikasi Anda, tetapi sejauh yang saya tahu tidak didukung di iOS dan saya tidak yakin apa gambarannya untuk aplikasi seluler Windows 10 yang akan datang.

Apa pendekatan lain yang ada untuk mengatasi masalah ini? Tolong jangan berdebat fakta bahwa kami sedang menulis aplikasi asli. Bukan itu yang saya tanyakan. Saya mencari panduan tentang bagaimana orang lain menangani masalah mendukung beberapa versi aplikasi seluler asli yang sama, berbicara dengan berbagai versi API server.


1
Opsi 3 juga dapat dilakukan di dunia Windows Phone, asalkan mereka terhubung ke infrastruktur perusahaan Anda dapat menentukan aplikasi mana yang mereka gunakan.
James Snell

Jawaban:


2

Lihatlah apa yang akan terjadi ...

Opsi 1 akan menghasilkan panggilan dukungan ketika pengguna menginstal versi yang salah. Akan selalu ada satu pengguna yang tidak bisa membaca atau memilih versi terbaru berpikir mereka tahu lebih baik ... dan Anda akan memiliki sejumlah besar versi untuk perbaikan backport yang berpotensi jika Anda perlu.

Opsi 2 menambahkan beberapa kompleksitas pada kode UI, seberapa banyak tergantung pada seberapa baik UI ditulis untuk menjadi adaptif. Tetapi memiliki pengalaman pengguna terbaik.

Opsi 3 tidak dapat terjadi di iOS (Android dan Windows akan memungkinkannya dalam konfigurasi tertentu) yang berarti perilaku yang berbeda untuk platform yang berbeda. Itu membuat hal-hal tidak konsisten yang merupakan resep untuk masalah.

Maka dari itu, membuat UI responsif dan menargetkan titik akhir yang tepat sejauh ini merupakan cara terbaik untuk pengguna Anda.


1

Saya sudah berurusan dengan ini dalam konteks yang sedikit berbeda, tetapi yang kami temukan adalah bahwa jika Anda menggunakan server publik kami, kami meminta Anda untuk meningkatkan. Jika Anda menghosting sendiri, kami mengizinkan Anda untuk tetap pada versi apa pun yang Anda suka.

Saya tahu itu bukan jawaban yang paling ramah pelanggan, dan itu mungkin bukan pilihan tergantung pada situasi Anda, tapi itu sikap yang akhirnya kami ambil.

Satu hal yang perlu diperhatikan: kami akhirnya harus melakukan banyak sekali berdasarkan baseline lama yang di-host-sendiri ketika kami menemukan masalah keamanan atau bug yang signifikan. Jika Anda mendukung beberapa versi, baik seperti yang kami lakukan atau jika Anda akhirnya mendukung banyak API sepenuhnya, Anda perlu memastikan bahwa Anda memiliki manajemen konfigurasi yang solid dan kontrol sumber. Ketika Anda menemukan bug, pastikan untuk mengambil waktu untuk sumber mereka kembali dari mana mereka berasal karena Anda mungkin harus memperbaikinya di cabang lama.


1
Apa yang Anda lakukan untuk mengejutkan rilis? Jika Anda hanya ingin menggunakan back end untuk beberapa pelanggan terlebih dahulu untuk mencobanya, bagaimana Anda melakukannya tanpa menyuruh semua pelanggan Anda untuk menunda peningkatan klien?
Pengembang Melbourne

0

Versi API baik-baik saja tetapi ini akan membutuhkan lebih banyak pekerjaan di Layer UI a) UI perlu mengetahui versi API yang akan digunakan tergantung pada konfigurasi (menggunakan file properti atau file sumber daya pada perangkat klien)

b) Juga server perlu memiliki dukungan untuk beberapa versi API.

Apakah API server hanya melayani klien Mobile atau apakah ada klien lain juga. Jika melayani klien lain maka hanya untuk Seluler Anda mungkin ingin mendapatkan API pembungkus yang pada dasarnya memanggil server API di satu sisi dengan dukungan versi.

Pada dasarnya versi sulit di API server jika ada klien lain seperti API publik yang dilayani oleh API server jika tidak sederhana.

2 sen saya.


API server melayani beberapa klien, tidak hanya klien seluler. Dengan wrapper API, apakah Anda mengacu pada sesuatu seperti Pola Gateway API
Carel
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.