Sobes.tech
Middle+

Ispričaj o antipatterns u razvoju Androida.

sobes.tech АИ

Одговор од АИ

  • Korišćenje AsyncTask za duge operacije (bolje koristiti Kotlin Coroutines ili RxJava).
  • Prenos View/Context u ViewModel (uzrokuje curenje memorije).
  • Nasleđivanje direktno od Activity ili Fragment za osnovnu logiku (bolje koristiti kompoziciju).
  • Čvrsto kodiranje stringova, brojeva, boja umesto korišćenja resursa.
  • Zaključavanje glavnog thread-a (MainThread) dugim sinhronim operacijama.
  • Korišćenje statičkih promenljivih za skladištenje podataka koji zahtevaju životni ciklus.
  • Prekomerna upotreba ugnježdenih layout-a, što dovodi do problema sa performansama (ConstraintLayout ili LinearLayout sa težinom je bolje).
  • Nedostatak obrade promena konfiguracije (rotacija ekrana, promena jezika).
  • Direktan pristup bazama podataka ili mrežnim operacijama iz UI niti.
  • Pogrešna upotreba SharedPreferences za skladištenje velikih objekata ili poverljivih podataka.
  • Nedostatak obrade izuzetaka ili loša implementacija (npr. prazni catch blokovi).
  • Korišćenje nejasnih intentova bez provere dostupnosti odgovarajućih aktivnosti (resolveActivity).
  • Pogrešno upravljanje pretplatama (npr. u RxJava), što dovodi do curenja.

Primer prekomernog ugnježdenja layout-a:

<!-- Loše -->
<LinearLayout>
    <LinearLayout>
        <TextView/>
    </LinearLayout>
</LinearLayout>

<!-- Dobro -->
<LinearLayout>
    <TextView/>
</LinearLayout>