Middle+
Ispričaj o antipatterns u razvoju Androida.
sobes.tech АИ
Одговор од АИ
- Korišćenje
AsyncTaskza duge operacije (bolje koristiti Kotlin Coroutines ili RxJava). - Prenos View/Context u ViewModel (uzrokuje curenje memorije).
- Nasleđivanje direktno od
ActivityiliFragmentza 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 (
ConstraintLayoutiliLinearLayoutsa 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
SharedPreferencesza skladištenje velikih objekata ili poverljivih podataka. - Nedostatak obrade izuzetaka ili loša implementacija (npr. prazni
catchblokovi). - 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>