Nová mobilná verzia, staré API: ako pripraviť bezpečné vydanie

Mobilnú aplikáciu používatelia neaktualizujú naraz. Kompatibilita API, postupné vydanie, meranie chýb a pripravený zásah pri probléme.

Testovanie mobilného rozhrania vedľa notebooku

Backend sa zmení skôr než všetky zariadenia

Pri nasadení webu vie tím zmeniť serverové správanie na jednom mieste. Mobilné aplikácie zostávajú na zariadeniach v rôznych verziách. Niektorí používatelia majú automatické aktualizácie vypnuté, iní nemajú pripojenie alebo miesto na disku. Schválenie nového balíka v store preto nie je okamih, od ktorého možno predpokladať iba nový klient.

V ilustračnej aplikácii obce pridáva verzia 4 nový detail podania. Verzia 3 stále načítava pôvodnú odpoveď. Ak server pri vydaní odstráni staré pole, poškodenie sa prejaví aj u ľudí, ktorí aktualizáciu ešte nevideli. Plán vydania musí pokryť súbeh klientov, zmenu API a podporu, ktorá bude rozlišovať chybu novej verzie od existujúceho problému.

Rozšírte zmluvu skôr, než zúžite podporu

Najprv nasadzujte rozšírenie API, ktoré podporované staršie klienty zvládnu. Potom vydajte aplikáciu používajúcu nové možnosti. Odstránenie pôvodného správania príde až po splnení dohodnutých podmienok podpory. Google AIP-180 opisuje kompatibilitu API vrátane rozdielu medzi zmenou schémy a zmenou správania. Pridanie poľa môže byť technicky malé, ale stále potrebuje overenie klientského parsera.

Otestujte nainštalovaný starší build proti novému backendu. Neuspokojte sa s testom len nového SDK. Pozornosť potrebujú neznáme enum hodnoty, výmena nullable poľa za povinné a iný význam rovnakého stavu. Ak starší klient z neznámej hodnoty spadne, rozšírenie zoznamu stavov nie je preň kompatibilné. Server môže podľa podporovanej zmluvy posielať vhodnú reprezentáciu.

Ilustračná zmenaČo overiť pred vydaním
Nové nepovinné pole odpovedeStarší klient toleruje neznáme pole.
Nový stav podaniaStaršia aplikácia má bezpečný fallback alebo pôvodnú reprezentáciu.
Odstránenie starého endpointuExistuje plán ukončenia podpory a údaje o jeho používaní.

Postupné vydanie obmedzí rozsah chyby

Apple umožňuje vydávať aktualizáciu automatickým aktualizáciám postupne počas siedmich dní. Používateľ ju však môže manuálne stiahnuť aj počas tejto fázy. Google Play pri aktualizácii umožňuje zvoliť percento používateľov pre staged rollout. Postupy nie sú totožné a percento nie je ochrana, ktorá zaručí, že sa ku konkrétnemu človeku nový build nedostane.

Pred začiatkom pripravte interné testovanie, podporované zariadenia, kontrolu upgrade existujúcej inštalácie a zoznam sledovaných problémov. Rozširujte vydanie podľa zistení, nie iba podľa kalendára. Pri malom počte používateľov môže aj vysoké percento predstavovať málo meraní. Absencia hlásenia potom nepreukazuje, že zriedkavý problém neexistuje.

Zastavenie distribúcie nevráti starý build do zariadenia

Pozastavenie postupného vydania obmedzí ďalšiu distribúciu, ale používateľov, ktorí už aktualizovali, samo nevráti na predchádzajúcu verziu. Google Play má aj postup na zastavenie plne vydanej verzie za stanovených podmienok; ani ten nie je automatické zníženie verzie na zariadení. Náprava už nainštalovaného klienta môže vyžadovať ďalší balík a schválenie.

Preto pripravte aj zásah na serveri. Voliteľnú novú funkciu možno riadiť vzdialeným nastavením a dočasne vypnúť, ak na to aplikácia bola navrhnutá. Taký prepínač neodstráni chybu, ktorá nastáva ešte pred načítaním konfigurácie. Bezpečnostné pravidlá a oprávnenia musí naďalej vynucovať backend; skrytie tlačidla samo nezakáže operáciu.

Sledujte vydanie podľa verzie a použitia

Rozlišujte chyby podľa verzie aplikácie a operačného systému. Sledujte pádovosť, zamietnuté API volania a konkrétne kroky, napríklad dokončenie podania. Počet spustení bez väzby na výsledok môže zakryť chybu formulára. Zvoľte agregované údaje, ktoré pomáhajú rozhodnúť o vydaní, bez ukladania obsahu podania alebo údajov používateľa do crash reportov.

Určte, kto vydanie pozastaví, kto preverí backend a kto komunikuje podpore. Pre ilustračnú aktualizáciu môže byť stop podmienkou nový reprodukovateľný pád pri prihlasovaní alebo porušenie integrity uložených podaní. Číselné prahy odvoďte od základnej úrovne chýb a objemu použitia. Vopred pripravte opravný postup aj v čase neprítomnosti hlavného vývojára.

Ukončenie podpory je súčasťou produktu

Ak staršia verzia už nemôže bezpečne pokračovať, dohodnite minimálnu podporovanú verziu, spôsob oznámenia a správanie aplikácie. Používateľ s rozpracovaným podaním potrebuje vedieť, čo sa s jeho údajmi stane. Vynútená aktualizácia nemá skončiť prázdnou chybovou obrazovkou. Rozhodnutie musí zohľadniť aj zariadenia, na ktorých nový balík nie je dostupný.

  • Podporované staršie buildy fungujú proti novému backendu.
  • Upgrade zachová dohodnutý lokálny stav a rozpracované údaje.
  • Tím vie zastaviť ďalšiu distribúciu a zmierniť problém nainštalovaných klientov.
  • Ukončenie podpory má zrozumiteľnú cestu pre dotknutého používateľa.

Zdroje a dokumentácia

Pri implementácii skontrolujte dokumentáciu verzie, ktorú používate.

Od témy ku konkrétnemu riešeniu.

Máte proces,
ktorý potrebuje zmenu?

Začnime tým, ako dnes pracujete. Technológiu vyberieme podľa toho.

Prebrať váš projekt