Jump to content

Co všechno musíte zvážit před vývojem iOS aplikace ve Swiftu?

From Babylon SIGNALIS Wiki

Při psaní kódu ve Swiftu narazíte na problém s volitelné typy. Mnoho začátečníků zbytečně používá force unwrap – vykřičník – a pak řeší pády aplikace. Správný postup je používat if let nebo guard let, případně kombinovat s nil-coalescing operátorem. Pokud si nejste jistí, proč je volitelnost důležitá, zkuste si přečíst dokumentaci k optionals. Ale raději si to procvičte na malých příkladech. Uvidíte, že to zlepší kvalitu vašeho kódu. Rozdíl mezi implicitními volitelnými typy a běžnými volitelnými typy je častým zdrojem zmatení – snažte se jim vyhnout, dokud nepochopíte, jak fungují.

První rok v IT je o růstu, ale taky o tom, že se naučíš říkat si o pomoc. Pokud se ti něco zdá přehnané, jako třeba termíny nebo rozsah úkolů, řekni to včas, ne až na poslední chvíli. Nikdo nečeká, že budeš hned perfektní. Důležité je, že se zlepšuješ a že jsi schopen přinést hotovou práci. Za pár měsíců zjistíš, že věci, které tě na začátku stresovaly, jsou rutina. A to je přesně ten moment, kdy se můžeš posunout na další úroveň.

Další častá chyba spočívá v tom, že se testuje pouze šťastná cesta. Zkuste otestovat i situace, kdy API vrací chybu, nebo kdy je požadavek zrušen. Vytvořte si mock, který vyvolá výjimku, a ověřte, že se dispatchuje správná akce pro chybu. Tímto způsobem získáte jistotu, že vaše aplikace korektně reaguje i na neočekávané stavy. Nezapomeňte také testovat, že se async akce nedispatchuje vícekrát, než je potřeba, což je častý zdroj duplicitních požadavků v UI.

Když se rozhodnete vytvořit web bez redakčního systému, první kroky vedou k HTML a CSS. HTML určuje strukturu – nadpisy, odstavce, obrázky, odkazy. CSS pak řídí vzhled – barvy, fonty, mezery, rozložení. Důležité je pochopit, že tyto dva jazyky pracují společně: HTML nese obsah, CSS mu dává formu. Pro začátek stačí textový editor a prohlížeč, žádný další software nepotřebujete.

Jakmile nastoupíš, neschovávej se za monitorem. Ptej se, ale nejdřív se snaž na problém přijít sám. Když se zasekneš déle než půl hodiny, je čas oslovit kolegu. Piš si poznámky, protože stejné věci se budou opakovat. Další častý omyl je snaha opravit všechno najednou. Místo toho se zaměř na to, aby tvoje změny byly malé a čitelné. Code review je běžná věc, ne útok na tvoje ego. Vnímej ho jako příležitost se učit a jednou budeš zase ty radit někomu mladšímu.

Na co se zaměřit při testování na reálných zařízeních Emulátory jsou užitečné pro rychlé ověření základní funkčnosti, ale nikdy nenahradí reálné zařízení. Problémy s pamětí, baterií nebo teplotou se na emulátoru neprojeví. Pokud testujete na fyzickém telefonu, zapněte si sledování výkonu a sledujte vytížení procesoru, paměti a síťovou aktivitu. Typická chyba je testovat aplikaci pouze na Wi-Fi. Přepněte se na mobilní data a vyzkoušejte, co se stane, když signál ztratíte nebo zeslábne uprostřed požadavku.

Testování mobilních aplikací se liší od testování webů hned v několika podstatných ohledech. Jiný výkon zařízení, různá velikost obrazovky, přerušení příchozím hovorem nebo změna připojení k síti. Pokud chcete aplikaci dodat v rozumném čase a bez zbytečných chyb, musíte mít jasnou představu, co a jak testovat. Nejčastější chybou je testovat pouze na jednom emulátoru a spoléhat na to, že všechno poběží stejně i na reálném zařízení. To ale nefunguje.

Při responzivním designu se vyhněte pevným hodnotám jako width: 300px. Místo toho používejte jednotky fr, %, auto, nebo minmax(). Například pro obsah s bočním panelem použijte grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)). Tím zajistíte, že se prvky samy přeskupí, když je obrazovka úzká. U Flexboxu zase hlídáte vlastnost flex-wrap. Pokud ji nenastavíte na wrap, prvky se budou zmenšovat, až se nevejdou. To je druhý nejčastější problém – prvky se mačkají místo toho, aby se posunuly do nového řádku.

Kritickým bodem je také správa paměti. Swift používá ARC, takže nemusíte ručně uvolňovat paměť, ale musíte dávat pozor na silné a slabé reference. Silné cykly mezi třídami můžou způsobit memory leak. Často se to stane při použití closures v kombinaci s self. Řešení je jednoduché – deklarujte self jako weak, pokud víte, že objekt může být uvolněn. Doporučuji si osvojit nástroj Instruments a pravidelně kontrolovat paměť vaší aplikace, zejména před vydáním nové verze.

Async akce testujete pomocí mockované funkce dispatch a mockovaného API klienta. Vytvořte si mock, který vrací předem definovaná data, a poté zavolejte async akci s tímto mockem. Následně ověřte, že dispatch byla volána s akcemi ve správném pořadí – nejprve akce pro start požadavku, pak akce pro úspěch s daty, případně akce pro chybu. Důležité je nezapomenout na to, že thunk vrací Promise, takže v testu počkáte na jeho vyřešení pomocí await.