Sobes.tech
Middle+

Pověz o antipatterns v vývoji Androidu.

sobes.tech AI

Odpověď od AI

  • Použití AsyncTask pro dlouhé operace (je lepší používat Kotlin Coroutines nebo RxJava).
  • Přenos View/Context do ViewModelu (způsobuje úniky paměti).
  • Dědění přímo od Activity nebo Fragment pro základní logiku (je lepší použít kompozici).
  • Pevné kódování řetězců, čísel, barev místo použití zdrojů.
  • Zablokování hlavního vlákna (MainThread) dlouhými synchronními operacemi.
  • Použití statických proměnných pro ukládání dat, která vyžadují životní cyklus.
  • Nadměrné používání vnořených layoutů, což způsobuje problémy s výkonem (ConstraintLayout nebo LinearLayout s váhou je lepší).
  • Chybí zpracování změn konfigurace (otočení obrazovky, změna jazyka).
  • Přímý přístup k databázím nebo síťovým operacím z UI vlákna.
  • Nesprávné použití SharedPreferences pro ukládání velkých objektů nebo důvěrných dat.
  • Chybí zpracování výjimek nebo je špatná implementace (například prázdné bloky catch).
  • Použití neexplicitních záměrů bez kontroly dostupnosti vhodných aktivit (resolveActivity).
  • Nesprávné řízení odběrů (například v RxJava), což vede k únikům.

Příklad nadměrného vnoření layoutů:

<!-- Špatně -->
<LinearLayout>
    <LinearLayout>
        <TextView/>
    </LinearLayout>
</LinearLayout>

<!-- Dobře -->
<LinearLayout>
    <TextView/>
</LinearLayout>