Nejčastější chyby při práci s Xcode a Swiftem Jednou z nejčastějších chyb je ignorování verzování. Hned od začátku používejte Git, ať už v Xcode nebo v terminálu. Bez něj můžete snadno přijít o práci, když se něco pokazí. Také si zvykněte na pravidelné spouštění testů – i jednoduchý test, který ověří, že se aplikace spustí, vám ušetří hodiny hledání chyb později. Dále pozor na práci s hlavním vláknem: všechny změny uživatelského rozhraní musí probíhat na hlavním vlákně, jinak se aplikace může neočekávaně ukončit. Pokud voláte asynchronní funkci, ujistěte se, že se UI aktualizuje pomocí GCD nebo async/await.<br>
<br>
<br>
<br>
Na závěr si zvykněte testy psát průběžně, ne až na konci projektu. Začněte s jednoduchou funkcí a postupně přidávejte další. Pokud narazíte na chybu, napište nejdříve test, který ji reprodukuje, a teprve poté opravujte kód. Tento postup vám ušetří spoustu času a zajistí, že se chyba už nevrátí. Až si osvojíte základy, podívejte se na pokročilejší funkce pytestu, jako jsou fixture s rozsahem, conftest.py nebo pluginy – ale to už je jiný příběh.<br>
<br>
<br>
<br>
<img src="https://freestocks.org/fs/wp-content/uploads/2016/08/two_men_discussing-1024x683.jpg" style="max-width:400px;float:left;padding:10px 10px 10px 0px;border:0px;">Když testy začnete spouštět častěji, oceníte výběr testů podle názvu nebo značky. Pytest umožňuje spouštět jen vybrané soubory, funkce nebo celé adresáře. Lze také vynechat pomalé testy pomocí značek a spouštět je zvlášť. To se hodí, když máte testy, které vyžadují databázi nebo externí služby – ty pak nemusíte pouštět při každé změně kódu, ale jen před nasazením.<br>
<br>
<br>
<br>
Na závěr si osvojte práci s konzolí. Kromě běžného console.log, console.warn a console.error využijte také console.table pro zobrazení polí a objektů v přehledné tabulce, což je mnohem čitelnější než dlouhý výpis. Pomocí console.time a console.timeEnd změříte dobu provádění úseku kódu, což je užitečné při hledání výkonnostních problémů. Nezapomínejte ani na možnost kopírovat objekt z konzole do schránky pomocí příkazu copy(), který se hodí při testování nebo posílání dat kolegům. Tyto zdánlivé drobnosti výrazně urychlí vaše každodenní ladění a pomohou vám rychleji najít i ty nejzákeřnější chyby.<br>
<br>
<br>
<br>
<span style="font-weight: 800;">Pokročilé techniky, které</span> vám ušetří čas Kromě klasických breakpointů vyzkoušejte podmíněné breakpointy – stačí kliknout pravým tlačítkem na číslo řádku a zvolit možnost přidat podmínku. Breakpoint se pak aktivuje pouze tehdy, když je splněna vámi zadaná podmínka, například když proměnná dosáhne určité hodnoty. To je neocenitelné při ladění cyklů nebo častých funkcí. Dalším užitečným nástrojem je watch expression – v panelu Watch si můžete přidat libovolný výraz, jehož hodnota se průběžně aktualizuje při každém kroku. Tím sledujete klíčové hodnoty bez nutnosti vypisovat je do konzole.<br>
<br>
<br>
<br>
Komentáře používejte střídmě. Dobrý kód se komentuje sám, pokud jsou názvy výstižné a logika přehledná. Komentář by měl vysvětlovat „proč", ne „co". Například „provedeme kontrolu, protože starší prohlížeče nepodporují fetch" je užitečné, ale „přičteme 1" není. Pokud zjistíte, že potřebujete komentář k objasnění složitého výrazu, raději výraz rozdělte do proměnných s názvy, které popisují jednotlivé kroky.<br>
<br>
<br>
<br>
<span style="font-weight: 900;">Častou chybou</span> začátečníků je testování privátních metod nebo vnitřních detailů implementace. Testy by měly ověřovat veřejné rozhraní třídy, ne jejich vnitřní fungování. Pokud narazíte na potřebu testovat soukromou metodu, znamená to obvykle, že je špatně navržená. Zkuste ji přesunout do samostatné třídy nebo ji udělat vnitřní a použít InternalsVisibleTo. Také se vyhněte testům, které závisí na konkrétním čase, náhodě nebo prostředí – takové testy jsou nestabilní a selhávají bez zjevného důvodu.<br>
<br>
<br>
<br>
Praktický postup začíná nastavením testovacího prostředí – stačí vám testovací běžec (např. Vitest nebo Jest) a knihovna pro testování redux logiky, pokud chcete mít po ruce helpery. Pro async akce si připravte mock funkce pro dispatch, která zaznamenává všechny volání do pole. Poté voláte async akci, počkáte na dokončení a porovnáte očekávané akce. Tento přístup nevyžaduje žádné integrační prostředí, protože nepotřebujete renderovat komponenty ani komunikovat se skutečným backendem. Vyhnete se tak nestabilitě testů a zrychlíte jejich běh.<br>
<br>
<br>
<br>
Při vývoji pro iOS je klíčové myslet na různé velikosti obrazovek a orientace zařízení. Používejte Auto Layout nebo SwiftUI rozložení, které se automaticky přizpůsobí, a vyhněte se pevným rozměrům. Také testujte na simulátoru i na reálném zařízení – simulátor neodhalí problémy s výkonem ani s baterií. Další častou chybou je zapomínat na oprávnění, jako je přístup ke kameře nebo fotkám – bez nich se aplikace na reálném zařízení chová jinak. Vždy si přečtěte dokumentaci a implementujte ochranu soukromí, i když to ze začátku vypadá jako zbytečná práce.