2022-yilda Androidda trendda bo’ladigan kutubxonalar

2022-yilda Androidda trendda bo’ladigan kutubxonalar

2022-yilda Androidda trendda bo’ladigan kutubxonalar

Jetpack Compose, Hilt, Kotlin Flow va Coroutines — Android dasturchilari uchun zarur boʻlgan koʻnikmalar.

Mobil dasturchilarning ustuvor vazifalaridan biri bu konfort zonamizdan chiqmasdan turib, yangi texnologiyalarni va so’nggi zamonaviy kutubxonalarni o’rganishdan iborat. O’tgan yili Android dunyosida bir nechta qiziqarli jarayonlar bo’ldi, ammo hozir biz 2022 yilda foydalanishni boshlashimiz kerak bo’lgan eng muhim kutubxonalarga qaratamiz.

Jetpack Compose

Albatta, o’tgan yilning eng katta e’loni bu Jetpack Compose. Rivojlanishning ko’plab sohalariga ta’sir qiladigan narsa, hatto u faqat UI qatlami uchun bo’lsa ham. Bu Androidda ko’rinishlarni yaratishning mutlaqo yangi usuli. Biz nihoyat XML-dan voz kechishimiz va imperativ fikrlash tarzini deklarativ bilan almashtirishimiz mumkin. Android nihoyat foydalanuvchi interfeysini yaratishning zamonaviy uslubiga ega boshqa platformalarni quvib yetdi.

Jetpack Compose Kotlin atrofida yozilgan va u haqiqatan ham rivojlangan ko’rinishlarni yaratishda ba’zi cheklovlarga ega bo’lsa ham, Google tomonidan katta yordamga ega. Biroq, siz yangi navigatsiya, saqlash holatlari va mavzular uchun yordam topasiz. Bundan tashqari, o’quv qo’llanmalari bo’lgan ko’plab maqolalar va videolar mavjud, shuning uchun allaqachon sinab ko’rishga arziydi. Ayniqsa, Material You-ni yaqinda qo’llab-quvvatlash bilan — 2021 yilda yana bir katta yangilik.

@Composable
private fun AppTheme.StepsView(
  modifier: Modifier,
  numberOfSteps: Int,
  currentStep: Int,
  accentColor: Color,
) {
  val inactiveColor = colors.textGray

  Row(
    modifier = modifier,
    horizontalArrangement = Arrangement.Center,
    verticalAlignment = Alignment.CenterVertically,
  ) {
    
    (1..numberOfSteps).forEach {
      when {
        it  Checkmark(accentColor)
        it == currentStep -> Step(it, accentColor)
        else              -> Step(it, inactiveColor)
      }

      if (it 

Bundan tashqari, agar siz Jetpack Compose-dan foydalanishni boshlasangiz, Compose-ni qo'llab-quvvatlash kutubxonasi — Accompanist bilan tanishib chiqing.

Hilt

Hilt — bu eng mashhur vosita — Dagger ustiga qurilgan yangi DI(dependency injection) vositasi. U Android uchun maxsus ishlab chiqilgan, view modellari, activitilar, fragmentlar va hatto yuqorida aytib o'tilgan Jetpack Compose-ni qo'llab-quvvatlaydi. Dagger bilan solishtiradigan bo'lsak, konfiguratsiya haqiqatan ham sodda va xatolar aniqroq, shuning uchun hatto dependency injection bilan kamroq tajribaga ega bo'lgan odamlar uchun ham bu juda tushunarli bo'lishi kerak.

@AndroidEntryPoint
class MainActivity : AppCompatActivity() {
  
  private val viewModel by viewModels()
}

@HiltViewModel
class MainViewModel @Inject constructor() : ViewModel() 

@Module
@InstallIn(SingletonComponent::class)
class AppModule

Ko'rib turganingizdek, Hilt Android-ni rivojlantirish uchun juda ko'p qulayliklarni o'z ichiga oladi. Men uchun bu bizning rivojlanishimizning kelajagi kabi ko'rinadi, shuning uchun agar siz buni sinab ko'rmagan bo'lsangiz, uni tekshirish vaqti keldi.

Kotlin Flow

Kotlin bir necha yil oldin rasmiy dasturlash tili sifatida e'lon qilingan edi. Kotlin Coroutines bir muncha vaqt oldin ommalashgan. Endi navbatdagi qadam — RxJava uchun yengil alternativ bo'lgan Kotlin Flow vaqti keldi.

Kotlin Flow — bu biz bir nechta asinxron hisoblangan qiymatlarni qanday qaytarishimiz mumkinligini ifodalab beradi. Eng mashhur varianti StateFlow bo'lib, joriy qiymatni ochib beradi. Shundan so'ng siz SharedFlow va Flow quruvchilari(Builders) bilan tanishishingiz mumkin.

Uning RxJava-ga o'xshash juda ko'p operatorlari bor, lekin u haqiqatan ham oddiy dizaynni saqlashga harakat qilmoqda. Agar siz Kotlin Coroutines-dan foydalansangiz, bu sizning birinchi tanlovingiz bo'lishi kerak. U hatto LiveData-ni ham qo'llab-quvvatlaydi, ammo Android-dagi rivojlanish Flow foydasiga LiveData-dan voz kechish yo'lida bormoqda.

class FavoritesListUseCase @Inject constructor() {

  private val _viewState = MutableStateFlow(FavoritesListViewState.Loading)
  val viewState: Flow = _viewState
  
  suspend fun refreshFavoritesViewState() {
    _viewState.value = FavoritesListViewState.Loading
    _viewState.value = requestFavorites()
}
  
@HiltViewModel
class FavoritesListViewModel @Inject constructor(
    private val useCase: FavoritesListUseCase,
) {
 
  val viewStateLiveData: LiveData = useCase.viewState.asLiveData()
  
  fun refreshFavoritesViewState() {
    viewModelScope.launch { requestFavoritesViewState() }
  }
}

Agar siz Kotlin Flow haqida ko'proq bilmoqchi bo'lsangiz, JetBrains tomonidan yaratilgan haqiqatan ham ajoyib hujjatlar mavjud.

Xulosa

Faqat 3 ta mavzu bordek tuyulishi mumkin, ammo ular Android ilovalarini dasturlash uslubingizni butunlay oʻzgartirishi mumkin, chunki ular kod bazasining barcha qatlamlariga ega.

Bundan tashqari, men ushbu 3 vositani birgalikda ishlatish kerak, deb o'ylayman, bu esa yaxshiroq, mustahkamroq va sinovdan o'tkazish oson kod bazasini yaratishga yordam beradi. Bular eng yangi Android tendentsiyalari va bu vositalarni o'rganish uchun biroz vaqt sarflash o'z samarasini berishi aniq.

Android Dasturlash
2022-yilda Androidda trendda bo’ladigan kutubxonalar