Middle+
Beszélj az Android fejlesztésében előforduló antipattern-okról.
sobes.tech MI
Válasz az MI-től
- Az
AsyncTaskhaszná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 vagyFragment-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 (
ConstraintLayoutvagyLinearLayoutsú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
SharedPreferenceshelytelen használata nagy objektumok vagy bizalmas adatok tárolására. - Kivételkezelés hiánya vagy helytelen megvalósítása (pl. üres
catchblokkok). - 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>