Sobes.tech
Middle+

Rozprávaj o antipatterns v vývoji Androidu.

sobes.tech AI

Odpoveď od AI

  • Použitie AsyncTask pre 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 Activity alebo Fragment pre 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 (ConstraintLayout alebo LinearLayout s 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 SharedPreferences na 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>