Lekce 07 / 07

Po vydání: měření, aktualizace a udržení

Vydáním práce teprve začíná. Pády, analytika, aktualizace operačních systémů, retence uživatelů a co reálně stojí provoz aplikace.

Den, kdy vám appku schválí v obchodě, působí jako cíl. Ve skutečnosti je to start. Web můžete v nejhorším nechat běžet rok bez doteku a většinou se nic nestane. Mobilní aplikace ne. Pod ní se neustále hýbe systém, na kterém běží, a co dnes funguje, za rok spadne. Tahle lekce je o tom, co s appkou dělat potom, co je venku, aby vám nezačala tiše umírat.

Appka není hotová vydáním, mění se jí půda pod nohama

Apple i Google vydávají velkou verzi systému každý rok. K tomu přibývají nová zařízení, nové velikosti displejů, nové výřezy na kameru. Vy jste appku postavili na světě, jaký byl v den vydání. Ten svět se ale posouvá dál i bez vás.

Neudržovaná aplikace nezhasne ze dne na den. Spíš chřadne. Nejdřív se rozsype layout na novém telefonu, pak přestane fungovat přihlášení přes Apple, protože se změnilo pravidlo, a nakonec ji obchod přestane nabízet, protože necílíte na dost novou verzi systému. Uživatel přitom nevidí „zastaralou knihovnu“. Vidí appku, která nejde.

Dobré pravidlo: pokud někomu appku odevzdáte a další rok se k ní nikdo nevrátí, počítejte s tím, že na konci toho roku už nebude v pořádku.

Sledování pádů: o problému chcete vědět dřív než z recenzí

Bez měření pádů se o chybě dozvíte třemi způsoby. Buď vám napíše naštvaný zákazník, nebo dostanete jednu hvězdičku do recenzí, nebo to neuvidíte vůbec a jen vám tiše odejdou uživatelé. Všechny tři jsou drahé a všem se dá předejít.

Nástroj na hlášení pádů (běžně se používá Sentry nebo Firebase Crashlytics) sedí přímo v appce a ve chvíli, kdy něco spadne, vám pošle hlášení: na jakém telefonu, v jaké verzi systému, v jakém místě v kódu. Vy tak víte o chybě dřív, než si jí všimne víc lidí.

  • Nastavte si to hned při vydání, ne až bude zle. Data o pádu, která jste nesbírali, vám nikdo zpětně nedoplní. Stejné pravidlo jako u analytiky na webu.
  • Sledujte podíl uživatelů bez pádu (crash-free rate). Jedno číslo, které vám řekne, jak je na tom appka jako celek. Zdravá appka se drží hodně vysoko, klidně nad 99,5 %.
  • Hlídejte to po každé aktualizaci. Nová verze je nejčastější chvíle, kdy něco rozbijete. Pár dní po vydání se na čísla dívejte častěji.

Analytika a metriky, na kterých záleží: retence poráží stažení

Počet stažení je ta nejlákavější a zároveň nejméně užitečná metrika, jakou máte. Stažení je jednorázové gesto, často z reklamy nebo ze zvědavosti. Neříká nic o tom, jestli appku někdo používá. Klidně budete mít deset tisíc stažení a tři aktivní uživatele.

Co měřit místo toho:

  • Aktivace. Kolik lidí dojde od stažení k té jedné akci, kvůli které appka existuje (první rezervace, první zpráva, první trénink). Tohle je první brána, na které většina lidí odpadne.
  • Retence první den a třicátý den. Vrátí se člověk druhý den? A za měsíc? Retence je nejpoctivější známka toho, jestli appka má cenu. Stažení můžete koupit, retenci ne.
  • Frekvence hlavní akce. Ne „čas v aplikaci“, ten často roste, když je appka zmatená a lidi v ní bloudí. Měřte, jak často dělají to, kvůli čemu tam jsou.

Vyhněte se ješitným metrikám. Počet stažení, počet obrazovek, „čas v aplikaci“ vypadají v prezentaci hezky, ale neplatí faktury. Navažte měření na jeden hlavní cíl appky, přesně jak jste si ho určili na začátku, a zbytek ignorujte.

Aktualizace systémů a zařízení: vydávat musíte, jen abyste zůstali stát

Tohle je věc, která lidi nejvíc překvapí. U mobilní appky nevydáváte aktualizace jen kvůli novým funkcím. Vydáváte je i jen proto, abyste udrželi to, co už máte, v chodu.

Cyklus je víceméně daný shora. Na podzim přijde nový iOS a Android, na jaře a v létě nová zařízení. Apple i Google navíc pravidelně zvedají minimální verzi systému i sady nástrojů (SDK), na kterou musíte appku sestavit, jinak novou aktualizaci do obchodu nepustí. Není to volitelné a vy ten termín neurčujete.

V praxi to znamená několik menších aktualizací do roka jen kvůli údržbě, plus to, co reálně chcete přidat nebo opravit. Počítejte s tím v rozpočtu od začátku. Appka, na kterou si vyčleníte peníze jen na postavení a na provoz ne, je appka, která za dva roky přestane fungovat.

Co stojí provoz: aplikace je závazek, ne jednorázová faktura

Tohle si řekněme na rovinu, protože je to nejčastější nepříjemné překvapení. Postavení appky je první platba, ne poslední. Na provoz se skládá několik věcí:

  • Backend a hosting. Pokud appka komunikuje se serverem (přihlašování, data, notifikace, jak jsme probrali v páté lekci), ten server někde běží a něco měsíčně stojí. Účet roste s počtem uživatelů.
  • Poplatky obchodům. Apple Developer účet je roční předplatné, Google Play jednorázový vstupní poplatek. A pokud v appce prodáváte digitální obsah nebo předplatné, oba obchody si berou provizi z každé transakce.
  • Údržba. Ty aktualizace kvůli novým systémům z předchozí sekce. Není to volitelný luxus, je to nájem za to, že appka vůbec funguje.
  • Podpora uživatelů. Někdo musí odpovídat na dotazy, řešit recenze a chyby, které nahlásí lidi. Čím víc uživatelů, tím víc téhle práce.

Appka tedy není výdaj, který jednou zaplatíte a máte klid. Je to průběžný závazek, podobně jako auto: pořizovací cena je jen začátek, servis a benzín běží dál. Když to víte předem, je to v pohodě naplánovat. Když ne, narazíte přesně ve chvíli, kdy začínáte mít uživatele.

Můžete na to sami, nebo nám to předat

Tímhle celý průvodce končí. Prošli jsme to od otázky, jestli appku vůbec potřebujete, přes volbu technologie, MVP, design, backend a vydání až sem, k životu po spuštění. Berte to jako mapu. Když se do toho chcete pustit sami, máte v ruce dost na to, abyste se rozhodovali dobře a nedali se opít rohlíkem.

A když radši věnujete čas svému byznysu, můžete to celé předat nám. Postavíme appku tak, že vám zůstane všechno: kód, účty u Applu i Googlu, záznamy v obchodech, doména. Žádné zámky na klíče, které byste neměli v ruce. A protože víme, že vydáním to nekončí, bavíme se s vámi o údržbě a provozu rovnou na začátku, ne až přijde první spadlý systém. Ozvěte se a probereme to.