Začít s vývojem pro Android není tak složité, jak se na první pohled zdá. Není nutné hned ovládat všechny technologie, ale základní postup a několik důležitých rozhodnutí vám ušetří spoustu času i frustrace. Než se pustíte do psaní kódu, ujasněte si, co chcete vytvořit. Malá jednoduchá aplikace, která řeší jeden konkrétní problém, je lepší startovní čára než megalomanský projekt s desítkami funkcí. Tím se vyhnete přehnaným očekáváním a rychleji se dostanete k prvnímu funkčnímu prototypu.<br>
<br>
<br>
<br>
Jak využít standardní knihovny a vyhnout se běžným chybám Python má vestavěné moduly jako `os` a `shutil`, které umožňují práci se soubory a složkami. Například `os.listdir()` vrátí obsah složky, `shutil.move()` přesune soubor. Typickou chybou začátečníků je nezohledňovat různé operační systémy – cesty k souborům se liší (Windows používá zpětná lomítka, Linux a macOS lomítka). Používejte proto funkci `os.path.join()`, která správně sestaví cestu podle systému.<br>
<br>
<br>
<br>
Na závěr si osvojte práci s verzováním kódu, i když je to jen pro osobní projekty. Uložíte si tím možnost vrátit se k předchozí verzi, když něco rozbijete. A hlavně: testujte na malých vzorcích dat, ne hned na celém systému. Tím se vyhnete velkým škodám a snáze najdete chyby.<br>
<br>
<br>
<br>
Další pastí je implicitní konverze typů. Pokud máte sloupec VARCHAR a porovnáváte ho s číslem, databáze často provede konverzi na každém řádku, což opět znefunkční index. Dbejte na to, aby typy v podmínkách odpovídaly typu sloupce.<br>
<br>
<br>
<br>
Začněte testováním reducerů. Vytvořte si samostatný soubor pro každý reducer a testujte ho jako obyčejnou funkci. Vstupem je aktuální stav a akce, výstupem nový stav. Ověřte, že se stav nemění, pokud akce neodpovídá žádnému případu, a že se korektně mění pro každou důležitou akci. Typická chyba: zapomenete otestovat výchozí větev, která vrací nezměněný stav. To je přitom nejdůležitější část, protože chrání před náhodnou mutací dat.<br>
<br>
<br>
<br>
Druhým častým problémem je použití funkce na indexovaném sloupci. Když napíšete `WHERE UPPER(jmeno) = 'NOVAK'`, databáze nemůže index využít, protože musí nejprve transformovat hodnotu. Řešení je jednoduché: ukládejte data v normalizovaném tvaru (např. malými písmeny) nebo použijte funkční index, pokud to databáze podporuje.<br>
<br>
<br>
<br>
Nakonec si osvojte pravidlo: testy by měly být rychlé a izolované. Pokud potřebujete ke spuštění testu databázi nebo síť, děláte to špatně. Vše, co je externí, nahraďte mockem. Tím zajistíte, že testy poběží v řádu sekund a budou spolehlivé. Tento jednoduchý postup vám umožní testovat reducery a async akce i v projektech, které nemají složité prostředí, a přitom si zachovat jistotu, že logika funguje.<br>
<br>
<br>
<br>
Na závěr si osvojte zvyk číst chybové hlášky přímo v odpovědi. Mnoho API posílá podrobné informace o tom, co je špatně, ale programátoři je často ignorují. Místo hádání, co se pokazilo, se podívejte na „message" nebo „error" pole. Zároveň si dávejte pozor na časové limity a opakované volání – pokud API potřebuje více času, nastavte si timeout. S těmito základy zvládnete většinu API na trhu a postupně můžete přejít k složitějším operacím, jako je zápis dat nebo autentizace.<br>
<br>
<br>
<br>
Když máte základní funkci, přidejte logiku pro přechod mezi obrazovkami. Bez toho se neobejde žádná praktická aplikace. Vytvořte druhou aktivitu a do té první přidejte tlačítko, které ji spustí. Nezapomeňte novou aktivitu zapsat do manifestu, jinak se při pokusu o spuštění aplikace zhroutí. Toto je jedna z nejčastějších chyb, kterou začátečníci dělají. Manifest je konfigurační soubor, kde jsou definovány všechny komponenty aplikace. Pokud tam aktivitu nezapíšete, systém ji nenajde a aplikace spadne. Proto si vždy zkontrolujte, že je manifest v pořádku, když přidáváte novou obrazovku.<br>
<br>
<br>
<br>
Častý omyl je začít s nasazováním do produkce příliš brzy. Nejdřív si osvojte postupy na menších projektech nebo v odděleném prostředí. Zaveďte si pravidlo: změna musí projít automatickými testy, nasazením do stagingu a kontrolou metriku, než se dostane k uživatelům. To vyžaduje disciplínu, ale dlouhodobě vám ušetří víc času, než kolik do toho vložíte.<br>
<br>
<br>
<br>
<img src="https://i.ytimg.com/vi/NzEFxxKVHxM/hq720.jpg" alt="Psychologie designu: 8 tipů pro útulný domov (schváleno architektem)" style="max-width:400px;float:left;padding:10px 10px 10px 0px;border:0px;">Začněte mapováním současného stavu. Zjistěte, kde končí odpovědnost vývojářů a kde začíná provoz. Typická chyba je skočit rovnou na automatizaci bez jasné představy, co vlastně chcete zlepšit. Místo toho si sepisujte konkrétní úzká místa: dlouhé čekání na nasazení, ruční konfigurace serverů, chybějící zpětná vazba z produkce. Každé z nich pak řešte samostatně a postupně.<br>
<br>
<br>
<br>
Jak mockovat závislosti a ověřit dispatch Použijte knihovnu pro testování, jako je Jest, ale princip funguje stejně i v jiných prostředích. Vytvořte si fiktivní store pomocí redux-mock-store, který zaznamenává všechny dispatchované akce. Do thunku pak vložíte funkci, která místo API vrátí předem definovaný objekt. Po zavolání akce zkontrolujete, jestli se v seznamu akcí objevily ty, které očekáváte. Nezapomeňte na asynchronní povahu: počkejte na dokončení pomocí async/await nebo Promise.resolve, jinak test skončí dřív, než se akce stihnou odeslat.