Middle+
Pověz o antipatterns v vývoji Androidu.
sobes.tech AI
Odpověď od AI
- Použití
AsyncTaskpro 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
ActivityneboFragmentpro 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 (
ConstraintLayoutneboLinearLayouts 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í
SharedPreferencespro 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>