本文将向大家介绍2020年Android发展趋势的预测。
作者 | Maciej Kozłowski
译者 | 弯月,责编 | 郭芮
出品 | CSDN(ID:CSDNnews)
以下为译文:
如果你是移动开发人员,那么首先要跟上技术的最新发展趋势,并时刻关注新事物,即使有时你甚至需要质疑自己的信仰。
应用开发人员一方面一直在努力想办法简化和缩短开发过程,另一方面也在努力构建最佳的设计和用户体验。每年我们都可以看到移动应用开发不断涌现出先进的新技术和工具。在本文中,我将介绍2020年的新趋势,帮助你更好地了解最尖端的技术。
Kotlin协程
如果你还没使用过 Kotlin 协程,那么我建立你现在就可以开始尝试,这是执行异步任务的最佳方法之一。自从 Google 宣布推出 Kotlin First 以来,协程的使用变成了很自然的事情。这个工具不仅可以创建同步任务,而且还拥有其他高级功能,例如:
通道(Channel)
流(Flow)
Continuation
除此之外,还有一些非常实用的 ViewModel 和 LiveData 扩展:
val userListLiveData: LiveData> =
liveData(viewModelScope.coroutineContext + Dispatchers.IO) {
emit(repository.getUserList())
}
fun getUserList() {
viewModelScope.launch {
usersLiveData.value = withContext(Dispatchers.IO) { repository.getUserList() }
}
}
协程与RxJava2
我不打算在本文中深入介绍二者的差异。简单来说,主要区别在于 RxJava2 是一个非常强大的工具,不仅适用于异步任务。如果你问我应该使用哪种解决方案,答案很简单,取决于你的需求,所以我建议你多多翻阅有关这两个工具的文档,做出慎重的决定。
主题
自 Android 10 起,Google 正式支持暗色主题。这意味着我们可以通过系统设置,将我们的应用调整为系统主题。多主题的支持已添加到许多应用中,例如 Instagram、Chrome 以及 Medium。你还可以使用1.1.0版中的 Material Components Styles 来支持 Android Q 中的暗色主题功能。不过,这个功能仍处于beta版。更多信息请点击这里(https://material.io/develop/android/theming/dark/)。
Jetpack安全
在过去几年中,为了提高 Android 设备的安全性,Google 付出了巨大的努力。虽然并非每个应用都需要高级的解决方案,但是我想特别指出 Google 的这个安全库。
Jetpack 安全是一种在 Shared Preferences 中安全地存储数据的方法。最重要的是,这个库使用了Android Keystore System——最近发布了alpha版(https://developer.android.com/topic/security/data.md)。
导航组件
2018年,Google 在 Google IO上推出了导航组件(Navigation Component),并于一年后的2019年3月推出了稳定版本。
这是一种全新的设计 Android 应用导航图的方式。这个解决方案类似于 iOS 中的 Story Board。我们可以在导航编辑器中实现导航图,或编辑XML文件。导航组件支持片段事务、深层链接、SafeArgs以及视图模型范围等。
有关导航组件的更多信息,请点击这里(https://developer.android.com/guide/navigation/navigation-getting-started)。
ViewPager 2
View Pager 2 于2019年11月20日发布了稳定版本。
View Pager 2 为我们带来了很多改进:
结合 RecyclerView 一起使用;
支持垂直定向;
新的 PageChangeCallback —— 无需重新所有3个方法;
添加了不同的 Page Transformer。
class ViewPager2FragmentStateAdapter(
fragmentManager: FragmentManager,
lifecycle: Lifecycle,
private val texts: List
) : FragmentStateAdapter(fragmentManager, lifecycle) {
override fun getItemCount(): Int = texts.size
override fun createFragment(position: Int): Fragment {
return TextFragment.newInstance(texts[position])
}
}
如果你想了解更多有关View Pager 2的信息,请点击这里(https://medium.com/google-developer-experts/exploring-the-view-pager-2-86dbce06ff71)。
Saved State
这是一个库,可以帮助我们保存实例状态。如果 ViewModel 能够保留配置更改的话,为什么我们还需要 Saved State?因为除了配置更改之外, Android 开发人员还应该注意系统启动的进程终止。为此,我们应该将序列化的状态保存在磁盘空间中,而如今现在我们有了内置的 ViewModel。
ViewModel 的稳定版本于2019年9月发行,但RC-03版本中还有一个扩展库 ViewModel-SavedState。
class MainActivity : AppCompatActivity() {
private val viewModel by viewModels {
SavedStateViewModelFactory(
application,
this
)
}
}
class MainViewModel(private val savedStateHandle: SavedStateHandle) : ViewModel() {
fun saveUserId(userId: Int) {
savedStateHandle.set(EXTRA_USER_ID, userId)
}
fun getUserId(): LiveData {
return savedStateHandle.getLiveData(EXTRA_USER_ID)
}
}
Jetpack Compose
虽然我把 Jetpack Compose 放在了最后,但并不意味着它不重要。老实说,我对这个工具抱有很高的期望。这是一种全新的在 Android 中创建视图的方法。我们甚至应该为它的出现而欢呼。这个解决方案是一种交互式的创建UI的方式,而且是完全用Kotlin编写的!
如果你想尝试Jetpack Compose,那么可以参考这个教程(https://developer.android.com/jetpack/compose/tutorial)。
然而,Jetpack Compose 目前还处于预览阶段,甚至还没有Alpha版本。
总结
2019年,Android 的世界发生了很多大事。最令人期待的莫过于 Jetpack Compose,但距离它的稳定似乎还需要很长一段时间。也许2020年我们还看不到稳定版本上线,但是我们应该率先学习起来,因为这代表了在 Android 中构建视图的未来。
对于以上我的预测,你有何看法?如果你有不同的想法,请在下方留言。
原文:https://android.jlelse.eu/android-trends-in-2020-d6a2930596a
作者:Maciej Kozłowski,高级Android开发@Espeo Software。
本文为 CSDN 翻译,转载请注明来源出处。
热 文 推 荐
☞京东回应「被薅 7000 万、项目组全体开除」;微信朋友圈屏蔽支付宝集五福;MySQL 8.0.19 发布 | 极客头条
☞不再设立 Flag,马克·扎克伯格的新年寄语!
☞PHP 可能在未来十年内消失?
☞铁打的春晚,流水的互联网公司
☞达摩院 2020 预测:模块化降低芯片设计门槛 | 问底中国 IT 技术演进
☞千万不要和程序员一起合租!
☞在调查过基于模型的强化学习方法后,我们得到这些结论
☞漫话:如何给女朋友解释为什么一到年底,部分网站就会出现日期混乱的现象?
你点的每个“在看”,我都认真当成了喜欢