关于jetpack:Jetpack-寻英贴发起寻找-50-名-Jetpack-爱好者

40次阅读

共计 2001 个字符,预计需要花费 6 分钟才能阅读完成。

Jetpack 寻英贴

背景

1. Jetpack 的呈现原因和价值

相熟 Jetpack 的开发者都晓得,Jetpack 是 Google 为了解决咱们在 Android 日常开发中遇到的一些痛点而推出的一套组件。比方:

  1. 为了解决因为屏幕旋转等配置变动引起 Activity 销毁重建而引发的数据失落或解体问题,推出了 Lifecycle 组件。
  2. 为了解决依赖注入 Dagger 框架应用技术门槛高的问题,推出了 Hilt。
  3. 为了解决后台任务治理的问题,推出了 WorkManager。
  4. 为了解决 SQLite 数据库应用便利性和门槛的问题,推出了 ORM 框架 Room,代替 GreenDao。
  5. 为了解决 Fragment 之间导航的问题,推出了 Navigation。
  6. 为了解决传统 MVC、MVP 模式下 UI 更新和数据源之间的同步问题,推出了 Databinding+Viewmodel+Livedata 的 MVVM 架构模式,能够很不便的实现双向绑定和动静更新。
  7. Kotlin 协程与架构组件一起应用,进一步简化了咱们异步工作的解决。

Jetpack 呈现的次要意义有两个:

  1. 简化 Android 开发者的工作,让开发者更不便、老本更低的构建利用。
  2. 通过一些举荐的、标准化的做法,便于构建优质的利用。

为了介绍和推广 Jetpack 的应用,Google 官网还推出了将这些架构组件组合在一起应用的 Demo 利用 Sunflower,Jetpack 相干的官网技术文档当初也比较完善了。比方官网举荐的利用架构如下图:

2. 那咱们还有必要做什么吗?

然而,有一点比拟有意思的是,「通常官网的货色在理论的工程实际中,都会有一些特定的需要没法很好的满足」。

为了解决这些痛点,有些开发者就会去造一些很好用的轮子开源进去,而后 Google 缓缓排汇一些好的设计,融进本人的体系中,推出官网的解决方案。这也很失常,也算软件开发中常见的状况。比方 okhttp、ButterKnife、GreenDao、Dagger,都是这么过去的,Google 也在一直的迭代和优化。

那这次的 Jetpack 也一样,最近我在我的项目中应用 Room 和 WorkManager 的时候就遇到了一些问题和一些纳闷。也是间接导致这篇文章和这个流动产生的起因。

3. 我和 Jetpack 的结缘

我开始晓得 Jetpack 和 Kotlin 还算是比拟早的,前几年也加入过几次深圳线下官网推广 Jetpack 和 Kotlin 的技术论坛,有幸见到了 Kotlin 语言的技术布道师 Hadi Hariri,有过短暂的交换。然而始终也没有很深的钻研,更多处于理解和关注它的演进的层面。

因为各种历史起因,咱们的我的项目也没有应用 Kotlin 来写,直到去年底才重形成 Kotlin 版本。做技术的敌人都晓得,理解实践和真正在我的项目中用过,了解层面的深度差别还是挺大的。

最近新开了个我的项目,齐全用规范的 MVVM、Kotlin、Jetpack 来构建,我才真正失去了一些很好的锤炼,也引发了一些思考和更深刻的摸索。

4. 我目前碰到的问题

  • 1) 我在应用 Room 中遇到的问题

然而,Room 也有很多先进的设计,比方不能在主线程执行操作,在主线程执行操作运行时会解体;还有写 SQL 语句时如果写的不对编译时就能报错。应用 Room 的确比间接用 SQLite 高效多了,须要写的代码也少了很多。

  • 2)我在应用 WorkManager 和看官网文档时遇到的一些纳闷和问题

咱们想做些什么?

很显然,Google 官网的计划也不是全能的,它可能是从各个渠道收集来的一些痛点而后推出解决方案,但也不可能全都能笼罩,它也须要去迭代和优化。在工程实际中,面对简单的需要场景,还是可能会有一些痛点没有失去很好地满足的。

兴许是他们都没有想到或遇到过的场景,比方咱们国家的互联网规模比拟大,有好几个用户群体比拟大的超级 APP,面临的场景和技术挑战兴许是目前其余国家都没有遇到过的,这些过程中积淀进去的技术计划兴许是有领导价值的。

比方咱们在跟 Android 零碎限度斗智斗勇过程中积淀进去的插件化技术,这个气氛要比国外的要好一些,也是一些需要场景推动下的产物。中国软件行业倒退到明天,咱们有一些畛域是能够平等交换的了,也是能够进行一些技术输入的。

基于以上的起因,咱们次要想探讨:

  1. Jetpack 组件的最佳实际,有什么优缺点,什么场景该用它,什么场景不能用它。(解决应用上的问题)
  1. 探索 Jetpack 的原理以及实践和工程实际之间的差距,有什么中央是设计得还不够敌对的,或者是不能很好的满足需要场景的,是还能够优化的(解决优化的问题)

通过以上的摸索,咱们想积淀出一些更有实用价值的最佳实际。

另外,一个人学技术是干燥、低效、无限的,找一群气味相投的人一起学习,大家互相学习,所长互补,也是一件幸事。

如果能因缘际会帮忙到更多遇到同类问题的人,那也挺好的。

最初,对 Jetpack 感兴趣也满足招募条件的 Android 开发者,欢送分割我交换。(请备注明:Jetpack)

正文完
 0