美文网首页
2022年安卓发展趋势

2022年安卓发展趋势

作者: 蜗牛是不是牛 | 来源:发表于2022-08-10 14:01 被阅读0次

    Jetpack Compose、Hilt、Kotlin Flow 和 Coroutines——Android 开发者必备技能

    作为移动开发人员,我们的首要任务之一是保持最新状态并查看最新公告,即使这意味着要走出我们的舒适区。去年,Android 世界发生了一些有趣的事情,但是,我将重点关注其中最重要的一些,我们应该在 2022 年开始使用它们。

    1、Jetpack Compose

    肯定是去年最大的公告。影响很多开发领域的东西,即使它只是针对 UI 层。这是在 Android 上创建视图的全新方式。我们最终可能会放弃 XML 并用声明式代替命令式思维方式。Android 终于以现代风格创建用户界面赶上了其他平台。

    Jetpack Compose 是围绕 Kotlin 编写的,它得到了 Google 的大力支持,即使它在创建真正高级的视图时仍然存在一些限制。但是,您会发现对新导航、保存状态和主题的支持。还有很多带有教程的文章和视频,所以已经值得尝试了。尤其是即将推出对 Material You 的支持——这是 2021 年的另一个重大新闻。

    @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 < currentStep  -> Checkmark(accentColor)
            it == currentStep -> Step(it, accentColor)
            else              -> Step(it, inactiveColor)
          }
    
          if (it < numberOfSteps) {
            val color = if (it < currentStep) accentColor else inactiveColor
            Line(color)
          }
        }
      }
    }
    
    

    此外,如果您开始使用 Jetpack Compose,请务必熟悉Accompanist — Compose 的支持库。

    2、Hilt

    Hilt 是一个新的依赖注入工具,建立在最流行的工具 - Dagger 之上。它专为 Android 构建,支持视图模型、活动、片段,甚至已经提到的 Jetpack Compose。对比 Dagger,配置真的很简单,错误也更清楚,所以即使对于依赖注入经验较少的人来说,也应该是可以理解的。

    @AndroidEntryPoint
    class MainActivity : AppCompatActivity() {
    
      private val viewModel by viewModels<MainViewModel>()
    }
    
    @HiltViewModel
    class MainViewModel @Inject constructor() : ViewModel() 
    
    @Module
    @InstallIn(SingletonComponent::class)
    class AppModule
    
    

    可以看到,Hilt 包含了很多 Android 开发的便利。对我来说,这似乎是我们发展的未来,所以如果你还没有尝试过,是时候去看看了。

    3、Kotlin Flow

    几年前,Kotlin 被宣布为官方编程语言。Kotlin Coroutines 前段时间已经普及。现在,是时候进行下一步了——Kotlin Flow,它是 RxJava 的轻量级替代品。

    Kotlin Flow 是一种我们可以返回多个异步计算值的方式。最流行的选项可能是 StateFlow,或者它的可变对应物,它公开了一个当前值。之后,您可以熟悉 SharedFlow 和 Flow 构建器。

    它有很多类似于 RxJava 的运算符,但它试图保持一个非常简单的设计。如果你使用 Kotlin Coroutines,它应该是你的首选。它甚至支持 LiveData,然而,Android 的开发正朝着放弃 LiveData 的方向发展,转而支持 Flow。

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

    如果您想了解有关 Kotlin Flow 的更多信息,JetBrains 创建了一个非常棒的文档。

    概括

    看起来只有 3 个主题,但它们可以完全改变您编写 Android 应用程序的方式,因为它们涉及代码库的所有层。

    更重要的是,我认为这 3 个工具应该一起使用,有助于创建更好、更健壮、更易于测试的代码库。这些是最新的 Android 趋势,花一些时间学习这些工具肯定会有所回报。

    链接:https://kerollosragaie.hashnode.dev/android-development-trends-for-2022

    相关文章

      网友评论

          本文标题:2022年安卓发展趋势

          本文链接:https://www.haomeiwen.com/subject/ipcawrtx.html