Sobes.tech
Middle+

გააზიარე Android-ის განვითარების ანტიპატერნებზე.

sobes.tech AI

პასუხი AI-სგან

  • გრძელვადიანი ოპერაციებისათვის AsyncTask-ის გამოყენება (კარგია Kotlin Coroutines ან RxJava-ს გამოყენება).
  • View/Context-ის გადაცემა ViewModel-ში (მოგვიანებით მეხსიერების ნაკადს გამოიწვევს).
  • ძირითადი ლოგიკისთვის პირდაპირ Activity ან Fragment-დან მემკვიდრეობა (კარგია კომპოზიცია გამოყენება).
  • სტრინგების, ნომრების, ფერების მკაცრი კოდირება რესურსების გამოყენების ნაცვლად.
  • მთავარი ნაკადის (MainThread) დაბლოკვა გრძელვადიანი სინქრონული ოპერაციებით.
  • სტატიკური ცვლადების გამოყენება მონაცემების შენახვისთვის, რომლებიც სიცოცხლის ციკლს მოითხოვს.
  • გადაჭარბებული შიგნიდან განლაგებების გამოყენება, რაც გავლენას ახდენს შესრულებაზე (ConstraintLayout ან LinearLayout with weight უკეთესია).
  • კონფიგურაციის ცვლილებების (ეკრანის ბრუნვა, ენის შეცვლა) გაუმკლავება.
  • UI ნაკადიდან პირდაპირ მონაცემთა ბაზებს ან ქსელურ ოპერაციებს წვდომა.
  • SharedPreferences-ის არასწორი გამოყენება დიდი ობიექტების ან კონფიდენციალურ მონაცემთა შენახვისთვის.
  • გამონაკლისების მართვის ან მისი არასწორი განხორციელება (მაგალითად, ცარიელი catch ბლოკები).
  • არაპირდაპირი ინტენციების გამოყენება შესაბამისი აქტივობების არსებობის შემოწმების გარეშე (resolveActivity).
  • გამოწერების არასწორი მართვა (მაგალითად, RxJava-ში), რაც სითხის წარმოქმნას იწვევს.

მეტწილად შიგნიდან განლაგების მაგალითი:

<!-- ცუდი -->
<LinearLayout>
    <LinearLayout>
        <TextView/>
    </LinearLayout>
</LinearLayout>

<!-- კარგი -->
<LinearLayout>
    <TextView/>
</LinearLayout>