Vydanie appky bez pádov: beta testovanie, postupné vydanie a crash reporting
Nová verzia appky prejde schválením, vyjde v obchode — a o hodinu začnú chodiť jednohviezdičkové recenzie: „po aktualizácii padá“. Na rozdiel od webu nemôžete chybu opraviť za päť minút. Oprava musí znova prejsť schvaľovaním a používatelia si ju musia stiahnuť. Preto sa v mobilnom vývoji oplatí mať proces, ktorý chyby zachytí skôr, než ich uvidia všetci. Tu je, ako ho nastaviť.
Čo si z článku odnesiete
- Pred vydaním testujte na skutočných ľuďoch cez TestFlight a testovacie stopy Google Play.
- Novú verziu púšťajte postupne — najprv malému percentu používateľov.
- Hlásenie pádov vám povie o chybe skôr než recenzia, aj s presným miestom v kóde.
- Majte pripravené vypínače funkcií a vynútenú aktualizáciu pre prípad núdze.
Prečo je mobilná chyba drahšia než webová
Chybu na webe opravíte, nasadíte a o minútu ju má opravenú každý návštevník. Pri mobilnej aplikácii je každá oprava novou verziou, ktorá čaká na schválenie, a potom na to, kým si ju ľudia stiahnu. Časť používateľov pritom aktualizuje až po týždňoch, niektorí vôbec.
| Web | Mobilná aplikácia | |
|---|---|---|
| Oprava sa dostane k ľuďom | Okamžite | Po schválení a stiahnutí aktualizácie |
| Stará verzia | Neexistuje | Beží u časti ľudí mesiace |
| Stopa po chybe | Zmizne s opravou | Recenzie a hodnotenie v obchode zostanú |
Horšie hodnotenie pritom znižuje aj pozíciu vo vyhľadávaní v obchode a ochotu nových ľudí appku stiahnuť. Jedna zlá verzia tak vie stáť stiahnutia ešte mesiace po oprave.
Beta testovanie na skutočných ľuďoch
Vývojári testujú na niekoľkých telefónoch, ktoré majú na stole. Skutoční používatelia majú stovky modelov, staré verzie systému, pomalý internet a zvyky, ktoré by vás nenapadli. Beta test tento rozdiel zmenšuje.
- TestFlight (iOS). Interne až 100 členov tímu, externe až 10 000 testerov cez e-mail alebo verejný odkaz. Externá verzia prejde krátkou kontrolou a platí 90 dní. Testeri vedia poslať spätnú väzbu aj so screenshotom priamo z appky.
- Testovacie stopy Google Play. Interná stopa pre malý tím (do 100 ľudí) s takmer okamžitou dostupnosťou, uzavretá stopa pre vybranú skupinu a otvorená pre kohokoľvek, kto sa prihlási.
- Pestrosť pred počtom. Desiatky testerov s rôznymi zariadeniami odhalia viac než stovky ľudí s rovnakým iPhonom. Pridajte starý a lacný Android, malý displej a iný jazyk systému.
- Verní zákazníci ako testeri. Ľudia, ktorí vašu appku milujú, radi vyskúšajú novinky vopred — a ich spätná väzba je najcennejšia.
Testujte aj aktualizáciu, nielen čistú inštaláciu. Najviac pádov po vydaní nespôsobí nová funkcia, ale stará verzia dát uložená v telefóne, s ktorou si nový kód nevie poradiť.
Postupné vydanie: chybu zachytíte pri percente
Aj po dobrom beta teste môže chyba prekĺznuť. Postupné vydanie zabezpečí, že ju uvidí malá skupina ľudí, nie všetci naraz.
- App Store — postupné vydanie počas 7 dní. Automatická aktualizácia sa rozšíri postupne na 1 %, 2 %, 5 %, 10 %, 20 %, 50 % a 100 % používateľov. Vydanie môžete pozastaviť (spolu až na 30 dní). Kto si aktualizáciu stiahne ručne, dostane ju hneď.
- Google Play — postupné zavádzanie. Percento si určíte sami, postupne ho zvyšujete a pri probléme zavádzanie zastavíte.
- Medzi krokmi sledujte čísla. Pády, zamrznutia, nové recenzie a spätnú väzbu na podporu. Až keď sú v poriadku, pustite ďalšiu vlnu.
- Nevydávajte v piatok večer. Najlepší čas je začiatok týždňa, keď je tím k dispozícii a môže na problém hneď reagovať.
Hlásenie pádov: dozviete sa prví
Používateľ, ktorému appka spadne, vám to nenapíše. Odinštaluje ju alebo napíše recenziu. Nástroje na hlásenie pádov — napríklad Firebase Crashlytics alebo Sentry — vám každý pád pošlú automaticky: na ktorom riadku kódu, na akom zariadení a verzii systému a čo používateľ tesne predtým robil.
| Metrika | Čo znamená | Cieľ |
|---|---|---|
| Používatelia bez pádu | Podiel ľudí, ktorým appka ani raz nespadla | nad 99,5 %, špička nad 99,9 % |
| Miera pádov (Android vitals) | Pády, ktoré používateľ reálne zažil | pod 1,09 % |
| Miera ANR (Android vitals) | Appka zamrzla a neodpovedá | pod 0,47 % |
| Hodnotenie novej verzie | Recenzie po vydaní | bez poklesu |
Hranice 1,09 % a 0,47 % sú prahy „zlého správania“ v Google Play. Appke, ktorá ich prekračuje, môže Google znížiť viditeľnosť v obchode a zobraziť ľuďom upozornenie.
- Nahrajte symboly. Bez súborov dSYM (iOS) a mapovacieho súboru (Android) uvidíte namiesto názvov funkcií len nečitateľné adresy.
- Nastavte upozornenia na nový typ pádu a na náhly nárast — nie až pri pravidelnej kontrole.
- Neposielajte osobné údaje. Kontext pádu áno, e-maily a mená nie. Nástroj uveďte v zásadách súkromia aj v údajoch o dátach v obchode.
Záchranné brzdy: vypínače a vynútená aktualizácia
Keď sa napriek všetkému niečo pokazí, potrebujete dve páky, ktoré fungujú bez novej verzie v obchode.
- Vypínače funkcií. Novú alebo rizikovú funkciu zabaľte do prepínača, ktorý ovládate zo servera (napríklad cez Firebase Remote Config). Ak spôsobuje problémy, vypnete ju za minútu. Funkcia však musí byť v buildi, ktorý prešiel schválením — skrývať funkcie pred recenzentom pravidlá obchodov zakazujú.
- Vynútená aktualizácia. Appka pri štarte zistí zo servera minimálnu podporovanú verziu. Ak je jej verzia nižšia, zobrazí výzvu na aktualizáciu — odporúčanú, alebo pri kritickej chybe blokujúcu. Na Androide na to existuje aj oficiálne rozhranie In-app updates.
Nastavenie na serveri môže byť úplne jednoduché:
{
"ios": { "minimum": "2.3.0", "latest": "2.5.1" },
"android": { "minimum": "2.3.0", "latest": "2.5.1" }
}Vynútenú aktualizáciu nepridáte spätne do verzie, ktorá už je u ľudí. Zabudujte ju hneď do prvého vydania. A kým ju nepotrebujete, server nesmie meniť odpovede tak, aby rozbil verziu spred pol roka — nové polia pridávajte, staré odoberajte až keď ich nikto nepoužíva. Viac v článku o návrhu REST API, ktoré prežije roky.
Kontrolný zoznam vydania
- Beta test aspoň pár dní na rôznych zariadeniach vrátane aktualizácie zo staršej verzie.
- Hlásenie pádov overené testovacím pádom a nahraté symboly.
- Zrozumiteľné poznámky k vydaniu — čo je nové pre človeka, nie „opravy chýb a vylepšenia“.
- Zapnuté postupné vydanie v oboch obchodoch.
- Sledovanie metrík 24 až 48 hodín pred každým ďalším krokom.
- Pripravený postup pre rýchlu opravu — kto rozhoduje, kto opravuje a kedy žiadať zrýchlenú kontrolu.
Dobrý proces vydávania nie je o tom, že sa chyby nestanú. Je o tom, že ich uvidí jedno percento ľudí namiesto sto. Zásada mobilného vývoja
Časté otázky
Koľko testerov potrebujem?
Na zachytenie väčšiny problémov stačia desiatky ľudí s rôznymi zariadeniami — dôležitejšia než počet je pestrosť. Pri nových osobných účtoch Google Play navyše vyžaduje pred prvým vydaním uzavretý test s aspoň 12 testermi počas 14 dní.
Spomalí hlásenie pádov appku alebo poruší GDPR?
Moderné nástroje sú úsporné a dáta posielajú v dávkach. Kvôli GDPR neposielajte v hláseniach osobné údaje a nástroj uveďte v zásadách ochrany súkromia aj v údajoch o dátach v obchode.
Čo robiť, keď postupné vydanie odhalí vážnu chybu?
Pozastavte ho — ďalší používatelia chybnú verziu nedostanú. Opravte chybu, vydajte novú verziu a pri kritickej chybe požiadajte Apple o zrýchlenú kontrolu. Ak máte vypínač funkcie, vypnite ju ešte predtým, než oprava príde.
Zhrnutie
Kľúčové poznatky
- Beta testujte na pestrých zariadeniach a vždy aj aktualizáciu, nielen čistú inštaláciu.
- Zapnite postupné vydanie a medzi vlnami sledujte pády a recenzie.
- Hlásenie pádov so symbolmi a upozorneniami vám povie o chybe skôr než recenzia.
- Pripravte vypínače funkcií a vynútenú aktualizáciu hneď v prvej verzii.
- Server musí zvládať aj staré verzie appky — ľudia aktualizujú pomaly.
Chcete appku, ktorá nepadá ani po aktualizácii?
Vyvíjam natívne aplikácie pre iOS a Android s kompletným procesom vydávania — beta testovanie, postupné vydanie, hlásenie pádov aj vzdialené vypínače funkcií. Pozrite si, ako pristupujem k vývoju aplikácií, alebo mi napíšte o svojom nápade.
Čítajte ďalej
Ďalšie články
Onboarding aplikácie, po ktorom používateľ zostane: 9 tipov
Štvrtina aplikácií sa otvorí len raz. Prvých 60 sekúnd rozhoduje o všetkom — ako navrhnúť úvod, ktorý ľudí udrží vnútri.
Čítať článokPush notifikácie, ktoré ľudia nevypnú: psychológia aj technika
Zlá notifikácia sa rovná odinštalovaniu. Kedy si pýtať povolenie, ako segmentovať a písať správy, ktoré ľudia naozaj otvoria.
Čítať článokMobilná aplikácia je investícia, nie výdavok
Prečo peniaze za appku nie sú výdavok, ale investícia, ktorá sa vráti — noví zákazníci, starostlivosť o súčasných a náskok pred konkurenciou.
Čítať článok