Co se stane, když začnete s Androidem bez plánu

Z Mazovia

Další praktická rada se týká testování. Nečekejte, až budete mít celou aplikaci hotovou, a začněte psát testy od prvního dne. Nejdřív jednoduché jednotkové testy pro logiku, poté instrumentované testy pro uživatelské rozhraní. Když to odložíte, po měsíci budete mít aplikaci, která funguje, ale žádnou změnu neuděláte bez obav, že něco rozbijete. A když aplikaci vydáte, uživatelé najdou chyby, které jste mohli odhalit dřív. Navíc testy vám pomohou pochopit, jak vaše vlastní třídy fungují, a to je k nezaplacení.

Když už máte první obrazovku, začněte s životním cyklem aktivity. Mnoho začátečníků dává veškerou logiku do metody onCreate, což je chyba, protože při otočení zařízení se aktivita znovu vytvoří a vy ztratíte stav. Naučte se používat ViewModel a LiveData, i když to ze začátku vypadá složitě. Bez toho narazíte na situace, kdy aplikace při změně orientace ztratí načtená data a uživatel musí všechno dělat znovu. Často se to stává při načítání ze sítě – zobrazíte loading, pak otočíte telefon a místo dat vidíte prázdnou obrazovku.

Otestujte si své rozhraní na reálném zařízení. Emulátor nestačí – jiný výkon, dotyková odezva a velikost prvků mění celý dojem. Zkuste aplikaci používat jednou rukou, s mokrýma prstama nebo s vypnutým internetem. Tyto situace odhalí, kde se uživatel zasekne. Pokud máte čas, udělejte si rychlý test s kolegou, který projekt nezná. Pozorujte, kde zaváhá, co hledá a co mu chybí. To je nejcennější zpětná vazba.

Když píšete JavaScript, často narazíte na situaci, kdy stejný kód funguje v jednom prohlížeči, ale v jiném padá nebo vrací neočekávané hodnoty. Příčinou nebývá chyba v syntaxi, ale rozdíly v chování prostředí. Prohlížeč je v podstatě operační systém s vlastními pravidly pro správu paměti, asynchronní operace i zpracování událostí. Než začnete hledat chybu v logice, ověřte si, zda váš kód skutečně běží v kontextu, který předpokládáte. Nejčastější zdroj problémů je mylná představa o tom, kdy se který kód spustí.

Druhým krokem je nastavit si projekt správně hned od začátku. Vytvořte si prázdný projekt s prázdnou aktivitou, ne s šablonami, které generují zbytečný kód. Už od prvního dne si zvykněte na verzovací systém, ideálně git, a každou funkční změnu commitujte. Když to neuděláte, po třech dnech práce narazíte na chybu, kterou nebudete schopni vrátit zpět, a to vás bude stát hodiny hledání. Důležité je také používat emulátor – fyzické zařízení je sice rychlejší, ale emulátor vám umožní testovat různé velikosti obrazovek a systémové verze.

Prvním krokem při ladění by mělo být otevření vývojářských nástrojů, které jsou dnes součástí každého moderního prohlížeče. Klávesová zkratka pro jejich otevření je obvykle F12 nebo kombinace Ctrl+Shift+I. V záložce Console uvidíte nejen chybové hlášky, ale také vlastní výpisy pomocí console.log. Typickou chybou je spoléhat se na to, že console.log vypíše hodnotu v okamžiku, kdy řádek proběhne. Ve skutečnosti se ale u objektů může zobrazit až aktuální stav, nikoli stav v době volání. Pokud potřebujete zachytit hodnotu v konkrétním čase, použijte JSON.parse(JSON.stringify(objekt)) nebo console.table pro jednoduché struktury.

Začněte u mikrokopírování – textů na tlačítkách a hláškách. Místo generického „Odeslat" použijte konkrétní popis akce, třeba „Uložit změny" nebo „Vytvořit účet". Uživatel pak přesně ví, co se stane. Vyhněte se technickým termínům, jako jsou „endpoint" nebo „payload", a nahraďte je lidským jazykem. Typická chyba: chybová hláška „HTTP 500 – Internal Server Error" nic neřekne. Napište „Něco se pokazilo, zkuste to prosím za chvíli" a nabídněte tlačítko pro opakování.

Na závěr si osvojte princip progresivního vylepšování. Nejdřív navrhněte minimální verzi rozhraní, které splní účel, a pak ji postupně vylepšujte na základě zpětné vazby. Nepoužívejte nejnovější technologie jen proto, že jsou trendy – pokud uživatel zažije pád aplikace kvůli animaci, kterou jste chtěli „oživit", efekt je kontraproduktivní. Vždy měřte dopad změn: sledujte, jestli se zvýšila rychlost dokončení úkolu, ne jen počet kliknutí. Jednoduchost a jasnost jsou nad zlato.

Cvičení: načtení čísla bez pádu aplikace Zkuste napsat kód, který se ptá na poloměr kruhu a ověří, jestli uživatel zadal platné číslo. Použijte int.TryParse a proměnnou double pro přesnější výsledek. Můžete to zabalit do while cyklu, který se ptá znovu, dokud není vstup správně. To je praktický vzor, který použijete v každé větší aplikaci. Nezapomeňte, že desetinná čárka se zadává podle jazyka systému – v češtině čárka, ale programátor v kódu píše tečku. To je další častá past, na kterou se upozorňuje až poté, co program vypíše divné číslo.