Sobes.tech
Middle+

Beszélj az Android fejlesztésében előforduló antipattern-okról.

sobes.tech MI

Válasz az MI-től

  • Az AsyncTask használata hosszú műveletekhez (jobb Kotlin Coroutines vagy RxJava használata).
  • View/Context átadása a ViewModel-nek (memóriaszivárgást okoz).
  • Alaplogika esetén közvetlen öröklés Activity-ből vagy Fragment-ből (jobb komponálást alkalmazni).
  • Szilárdan kódolt szövegek, számok, színek használata erőforrások helyett.
  • A fő szál (MainThread) blokkolása hosszú szinkron műveletekkel.
  • Statikus változók használata az életciklust igénylő adatok tárolására.
  • Túlzottan beágyazott layoutok, amelyek teljesítményproblémákat okoznak (ConstraintLayout vagy LinearLayout súllyal jobb).
  • Konfigurációs változások (képernyőforgatás, nyelvváltoztatás) kezelése hiányzik.
  • Közvetlen hozzáférés adatbázisokhoz vagy hálózati műveletekhez UI szálról.
  • A SharedPreferences helytelen használata nagy objektumok vagy bizalmas adatok tárolására.
  • Kivételkezelés hiánya vagy helytelen megvalósítása (pl. üres catch blokkok).
  • Implicit intentek használata megfelelő aktivitások ellenőrzése nélkül (resolveActivity).
  • Hibás feliratkozáskezelés (pl. RxJava), ami szivárgásokhoz vezet.

Túlzott layout beágyazás példája:

<!-- Rossz -->
<LinearLayout>
    <LinearLayout>
        <TextView/>
    </LinearLayout>
</LinearLayout>

<!-- Jó -->
<LinearLayout>
    <TextView/>
</LinearLayout>