Middle+
Rozprávaj o antipatterns v vývoji Androidu.
sobes.tech AI
Odpoveď od AI
- Použitie
AsyncTaskpre dlhých operácií (je lepšie použiť Kotlin Coroutines alebo RxJava). - Prenos View/Context do ViewModelu (spôsobuje úniky pamäte).
- Priama dedičnosť od
ActivityaleboFragmentpre základnú logiku (je lepšie použiť kompozíciu). - Pevné kódovanie reťazcov, čísel, farieb namiesto používania zdrojov.
- Zablokovanie hlavného vlákna (
MainThread) dlhými synchronnými operáciami. - Použitie statických premenných na uloženie dát, ktoré vyžadujú životný cyklus.
- Nadmerné používanie vnorených layoutov, čo spôsobuje problémy s výkonom (
ConstraintLayoutaleboLinearLayouts váhou je lepšie). - Chýba spracovanie zmien konfigurácie (otočenie obrazovky, zmena jazyka).
- Priamy prístup k databázam alebo sieťovým operáciám z UI vlákna.
- Nesprávne použitie
SharedPreferencesna uloženie veľkých objektov alebo dôverných dát. - Chýba spracovanie výnimiek alebo jej nesprávna implementácia (napríklad prázdne bloky
catch). - Použitie nepriameho intentu bez kontroly dostupnosti vhodných aktivít (
resolveActivity). - Nesprávne riadenie odberov (napríklad v RxJava), čo vedie k únikom.
Príklad nadmerného vnoženia layoutov:
<!-- Zlé -->
<LinearLayout>
<LinearLayout>
<TextView/>
</LinearLayout>
</LinearLayout>
<!-- Dobré -->
<LinearLayout>
<TextView/>
</LinearLayout>