Baxtli Android manbalari uchun eng yaxshi amaliyotlar

Android uchun me'moriy munozaralar - bu g'azab, ammo odamlar Android resurs tizimi bo'lgan aqlsiz qahramonga e'tibor bermayotganday tuyuladi. Unga muhabbat bilan munosabatda bo'ling, shunda u sizning hayotingizni kamalakka to'ldiradi - bunga ahamiyat bermang va siz o'zingizning ilovangizni xafa, qari va xiralashtiradigan texnologiya va dizayn qarziga egasiz. Bu sizning yirtqichni yengil qilishga yordam beradigan va sizning kod bazangizni porloq toza bo'lishiga yordam beradigan bir nechta takliflar ro'yxati

Mavzular va uslublar

  • Barcha uslublar ota-onalarga ega bo'lishi kerak. Bu sizga mavzu atributida uslubni ishlatishingiz kerak bo'lgan holatlarga yordam beradi. Keyin siz ushbu mavzuning barcha vidjetlari uchun standart uslub sifatida xavfsiz foydalanishingiz mumkin (masalan? Android: textViewStyle), Android taqdim etadigan asl holatini yo'qotmasdan.
  • Orqaga mosligini ta'minlash uchun tizim uslublari o'rniga AppCompat-dan meros qilib olishni afzal ko'ring.
  • Faqat bir marta ishlatiladigan uslublarni yaratmang.
  • Atributlar guruhlari uchun xuddi shunday bo'lishi mumkin bo'lgan uslublarni yaratmang. (masalan, 16-chap chap plad).
  • O'zingizning uslubingiz bo'yicha ota-onaning nomini belgilashga rioya qiling. Tizim / AppCompat nomlarini mos kelganda ularni topish osonroq bo'ladi (masalan, )
  • Iloji bo'lsa, yashirin merosdan foydalaning. Navigatsiya qilish biroz osonroq va sizni tuzilish uslublarini yaxshiroq nomlashga va tuzishga majbur qiladi.
  • Guruh vidjet uslublari ular uchun mo'ljallangan vidjet asosida. Shunga qaramay, topish osonroq.
  • Uslublarda layout_ * atributlarini belgilamang. Bular o'ziga xos maket va har bir tartib uchun takrorlanishi kerak, hatto ular bir xil bo'lsa ham.
  • Shu nuqtada, takroriy maket_ * atributlari uchun o'lchovlardan foydalanish, inflyatsiya usuli qo'llanilganligi sababli, xavf qiymatlari e'tiborga olinmasdan ko'rinishini bir xil tutishini ta'minlash uchun etarli bo'lishi kerak.
  • Malakali manbalar sizning do'stingiz. Qattiq kodlangan o'lchamlari / chizmalariga ega bo'lgan va konfiguratsiyaga asoslangan bir nechta uslublarni belgilashning o'rniga, faqat bitta uslubni belgilang va har bir konfiguratsiya uchun boshqa manbaga ishora qiladigan resurs o'zgaruvchilarini aniqlang. Shu tarzda katta uslubdagi kutubxonangiz imkon qadar ixcham (va boshqariladigan) tarzda saqlanadi.

Matn ko'rinishi

  • TextAppearance oddiy vidjet uslubi emas. TextAppearance faqat boshqaradi:
  1. textColor, textColorHighlight, textColorHint, matnColorLink
  2. textSize
  3. textStyle
  4. textAllCaps
  5. tipografiya
  6. shriftFamily
  7. Soya (shadowColor, shadowDx, shadowDy, shadowRadius)
  8. oqlanganTextHeight
  9. harflar oralig'i
  10. shriftFeatureSettings
  • TextAppearance-dan foydalangan holda uslublar yordamida o'rnatilgan atributlar bekor qilinadi. Qatlamda o'rnatilgan sifatlar hamma narsani bekor qiladi.
  • TextAppearance kutubxonasini aniqlang (hatto u faqat AppCompat tomonidan ta'minlanganlarning to'g'ridan-to'g'ri to'plami bo'lsa ham) va bundan faqat o'zingizning mavzularingiz va tartiblaringizda foydalaning. Bu kelajakda ilova va OS uchun mustaqil ko'rinishga ega bo'lib, 2 daqiqali o'zgarishlarni his qiladi. Qo'shimcha fikrlar uchun uni styles_textappearance.xml kabi alohida faylda aniqlang va uni dizaynerlaringiz bilan baham ko'ring. Ular sizni yaxshi ko'rishlariga aminlar.
  • Ko'proq ball olish uchun ranglar uchun tematik manbalardan va shriftlaringiz uchun simli manbalardan foydalaning. Unutmang .Otki variantlar!
  • Matn ko'rinishi izchil ko'rinishini ta'minlash uchun TextAppearance atributlarini odatiy uslubda aniqlamang, lekin har doim TextAppearance-ni o'zingizning kutubxonangizning android: textAppearance maydoniga o'rnating.

Ranglar

  • Ismlarni izchil davom ettiring. Shaffoflik ranglari quyidagicha nomlanadi: _XXpc, bu erda%% sifatida ifodalangan alfa qiymati. Masalan, qora_60pc - # 80000000.
  • Ranglarni guruhlangan holda saqlash aniq yordam beradi. Ularni guruhlashning yaxshi usuli bu quyidagilarning alohida bo'lishidir, chunki ular o'zlarida etarlicha katta guruh bo'lishi mumkin: kul ranglar, oq variantlar, qora variantlar, barcha brendlar palitrasi ranglari, so'ngra ularning xususiyatlariga ko'ra guruhlangan barcha havolalar. Shunday qilib, haqiqiy rang ta'riflari kamdan-kam hollarda o'zgartiriladi va sizning maketingiz va uslubingizga ular tegmasa kerak. YMMV, shuning uchun ranglar ro'yxatiga qarab qaror qiling.
  • Agar boshqa konfiguratsiyada rangni o'zgartirmoqchi bo'lsangiz, refs.xml-dan foydalaning. Bunga misol sifatida API darajasiga asoslangan holatlar paneli rangini bitta kulrang rangdan boshqasiga almashtirish mumkin. color.xml bu kabi tafsilotlarni bilmasligi kerak, bu faqat kutubxona.
  • Ushbu ranglar ro'yxati ham sizning dizaynerlar guruhingiz bilan baham ko'rilishi mumkin, shunda ular har bir yangi ekran uchun yangi ranglar bilan to'ldirilmaydi va eski ekranlar ilova va xml-ni to'g'ri va izchil saqlaydi.

Atributlar (attrs.xml)

  • Tizimga mos kelishini ta'minlash uchun, atributlar nomlari camelCase-dan foydalanishi kerak.
  • Agar tizim atributi sizning ehtiyojlaringizga mos bo'lsa, uni yangisini yaratish o'rniga foydalaning. Misollar fon, old tomoni, rangi va hokazo. Siz ularni teglari va tartibiga ularni aniqlamasdan kiritishingiz mumkin. Faqat androiddan foydalaning: ismdan oldin - formatni ko'rsatishga hojat yo'q. Shu tarzda har bir kishi qanday qadriyatlar kutilganligini va ko'rinishga qanday ta'sir qilishini biladi.

Resurslar

  • Chiziladigan nomlar quyidagicha ko'rinishi kerak: _ _ (_ ) .xml
  • Masalan bg_button_primary.xml birlamchi rang tugmasi fonida.
  • Umumiy tortiladigan prefikslar: ic_ (piktogramma), bg_ (orqa fon), div_ (bo'linuvchi).
  • Rejalashtirish uchun bir xil: faoliyat_, fragment_, ko'rinish_ va element_ oddiy qo'shimchalar.

Umumiy eslatmalar

  • Margin - bu joylashuvning atributidir va ota-ona bo'sh qoldirgan ko'rinishni boshqarish. Padding - bu ko'rinish atributidir va ko'rinishda bo'sh qolgan ichki bo'shliqni boshqaradi. Ular deyarli hech qachon almashtirilmaydi va agar ishonch bo'lmasa, marjadan foydalaning. Margin joylashishni aniqlash uchun ishlatilishi kerak, to'ldirish esa ko'rinishni bosish va chertish maydonini ko'paytirish kabi ko'rinishning ichki tashvishlari uchun ishlatilishi kerak.
  • Tugmalar uchun shunchaki fon o'rniga stildan foydalaning. Shunday qilib, bepul narsalarni olish kerak (masalan: android: stateListAnimator) va shuning uchun UI va UX yaxshiroq.
  • XML juda tez o'qib bo'lmaydigan qilib olinishi mumkin. Java-da bo'lgani kabi, har doim atributlar / uslublar / mavzularni ularning turiga va tashqi ko'rinishiga qarab birlashtirishga harakat qiling.

Shazam-dagi ushbu ko'rsatmalarga rioya qilingan holda, shilimshiq va izchil tartib yaratildi. Resurslarimizni shu tarzda tuzish bizning qayta loyihalash harakatlarimizga juda katta yordam berdi, chunki toza ajratilgan manbalar ularni topish, ko'chirish, o'zgartirish va yo'q qilishni ancha osonlashtiradi.

O'zingizning shaxsiy ilovalaringizda ishlatadigan fikrlaringiz yoki maslahatlaringizni eshitishni xohlaymiz, shuning uchun ularni sharhlarda baham ko'ring!