Co všechno musíte zvládnout, než pošlete první příspěvek?
Prvním krokem by mělo být nalezení problému, který je pro vás zvládnutelný. Hledejte v issue trackeru štítky jako „good first issue" nebo „help wanted". Než se ale do problému pustíte, přečtěte si celou diskuzi. Často se stává, že problém už někdo řeší, nebo že je zadání zastaralé. Pokud není jasné, co se po vás chce, zeptejte se přímo v komentáři. Uveďte, co jste zjistili, a navrhněte, jak byste postupovali. Udržujte komunikaci věcnou a stručnou – nikdo nemá čas na dlouhé úvody.
Zároveň nezapomínejte na zálohování a obnovu dat. NoSQL systémy často nabízejí replikaci do více uzlů, ale to není totéž jako záloha. Když omylem smažete kolekci, replika smazání zkopíruje na všechny uzly. Pravidelně exportujte data do nezávislého úložiště a testujte obnovu. V praxi se vyplatí začít s NoSQL tam, kde přináší jasnou výhodu – třeba u ukládání uživatelských relací nebo logů – a zbytek aplikace nechat na SQL. Kombinace obou přístupů je častější, než se zdá, a mnoho firem tak řeší výkon bez zbytečného kompromisu.
Na závěr – testujte na skutečných zařízeních, ne jen v devtools. Změna velikosti okna není totéž jako dotykové ovládání. S Gridem a Flexboxem ušetříte stovky řádků kódu, ale jen pokud je používáte pro to, k čemu se hodí. Vyhraďte si deset minut na začátku projektu na rozvržení struktury – které části jsou jednorozměrné a které dvojrozměrné. Tato úvaha vám ušetří hodiny ladění a výsledný layout bude stabilní i na zařízeních, která ještě neznáte.
Na závěr si zvykněte číst logy a výjimky. Když aplikace spadne, logcat vám přesně řekne, na kterém řádku a proč se to stalo. Místo hledání řešení na internetu se nejdřív pokuste chybu přečíst a pochopit. Často jde o drobnost, jako je nulová hodnota nebo špatný název souboru. Pravidelným čtením logů získáte dovednost, která vám ušetří desítky hodin hledání. Postupně se propracujete od jednoduchých aplikací ke složitějším a zjistíte, že vývoj pro Android je logičtější, než se zdá.
Typickou chybou začátečníků je použití NoSQL pro data, která vyžadují vztahy a transakce. Pokud ukládáte faktury a položky faktur, potřebujete zaručit, že se buď uloží celý dokument, nebo se neuloží nic. Většina NoSQL databází sice nabízí transakce, ale jejich použití je často omezené a složitější než v SQL. Než začnete modelovat, ověřte si, jak daný systém řeší atomické operace. Další pastí je špatný výběr typu databáze: dokumentová databáze není vhodná pro grafy vztahů mezi uživateli, klíč-hodnota úložiště neumí efektivně dotazovat podle více atributů. Vždy si nejprve definujte, jak budete data číst, a teprve potom vyberte konkrétní nástroj.
Častý problém: po zadání grid-template-columns se obsah rozjede jinak, než čekáte. Většinou za to může implicitní řádky. Dejte pozor na grid-auto-rows – pokud chcete, aby všechny řádky měly stejnou výšku, nastavte grid-auto-rows: 1fr. A pokud používáte grid-template-areas, nezapomeňte, že každá buňka musí být definovaná, jinak se layout rozpadne. Tady se vyplatí pracovat s prázdnými buňkami pomocí tečky, ne je mazat.
Nezanedbávejte ani správu paměti. Android používá automatickou správu paměti, ale to neznamená, že se o všechno postará. Pokud načítáte velké obrázky nebo data ze sítě, vždy je škálujte a uvolňujte reference, které už nepotřebujete. Typický začátečnický problém je držet v paměti celou databázi nebo všechny obrázky najednou. Výsledkem je aplikace, která se zpomaluje a padá. Naučte se používat efektivní načítání dat a cache.
Když máte jasný cíl, nainstalujte si oficiální vývojové prostředí a sadu nástrojů pro Android. Po instalaci si vytvořte nový projekt s prázdnou aktivitou a projděte si strukturu složek. Důležité je pochopit, že zdrojový kód píšete v jazyce Kotlin, zatímco rozložení obrazovky definujete v XML souborech. Na začátku se nebojte použít vizuální editor rozložení, ale postupně si osvojte čtení XML kódu. Bez toho nepochopíte, proč se prvky chovají jinak, než čekáte, a budete ztrácet čas hledáním chyb.
Jaké chyby vás nejčastěji zdrží? Největší pastí pro začátečníky je práce s emulátorem. Emulátor je pomalý a často nereprezentuje skutečné chování zařízení. Pokud máte možnost, zapojte do počítače fyzický telefon a povolte v něm ladění. Na reálném přístroji hned uvidíte, jak aplikace reaguje na dotyk, jak rychle se spouští a kolik paměti zabírá. Pokud používáte emulátor, nastavte mu dostatek paměti a procesorových jader, jinak bude každý běh frustrující a neefektivní.
Většina vývojářů sahá po relační databázi automaticky. SQL je osvědčený standard, který se učí na školách a používá v milionech aplikací. Jenže každý projekt má jiné požadavky a právě v okamžiku, kdy potřebujete ukládat nestrukturovaná data nebo škálovat na obrovský objem čtení, začne klasický model narážet na své limity. NoSQL není náhrada za SQL, ale nástroj pro specifické případy, kdy výkon a flexibilita převažují nad striktní konzistencí.