JetpackNote---基于Jetpack的学习笔记APP

code小生,一个专注大前端领域的技术平台
公众号回复 Android 加入我的技术群

作者:Hankkin
链接:https://juejin.im/post/5d761e2c6fb9a06b1e7f62a3
声明:本文已获Hankkin投稿发表,转发等请联系原作者授权

JetpackNote 是一款基于谷歌官方组件Jetpack开发的笔记项目,项目中包含了对各大组件的源码分析、Demo使用:Navigation、Lifecycles、Paging、LiveData、ViewModel等…
项目使用Kotlin语言进行编写,依赖库截止代码编写时为最新版本,的几篇源码分析我们分别对NavigationLifecyclesViewModelLiveData、进行了分析,也对JetPack有了更深入的了解。

如果你对Jetpack组件有了解或者想对源码有更深入的了解,请看我之前的几篇文章:

  1. Jetpack源码解析---看完你就知道Navigation是什么了?https://juejin.im/post/5d1202fc6fb9a07ef90ca7a1

  2. Jetpack源码解析---Navigation为什么切换Fragment会重绘?https://juejin.im/post/5d12cfea6fb9a07ed4411040

  3. Jetpack源码解析---用Lifecycles管理生命周期https://juejin.im/post/5d15bbb86fb9a07f03574e56

  4. Jetpack源码解析—LiveData的使用及工作原理https://juejin.im/post/5d247b036fb9a07eee5ef3df

  5. Jetpack源码解析---ViewModel基本使用及源码解https://juejin.im/post/5d2d4172e51d4510835e0346

  6. Jetpack---Paging你知道怎样上拉加载吗?https://juejin.im/user/55dea68160b291d79422c1bb

下载链接:

1. 背景

在我的Jetpack_Note系列中,对每一篇的分析都有相对应的代码片段及使用,我把它做成了一个APP,目前功能还不完善,代码我也上传到了GitHub上,参考了官方的Demo以及目前网上的一些文章,有兴趣的小伙伴可以看一下,别忘了给个Star。

https://github.com/Hankkin/JetPack_Note

我们先看一下效果吧:

2. JetpackNote是什么?

JetpackNote 是一款基于谷歌官方组件Jetpack开发的笔记项目,项目中包含了对各大组件的源码分析、Demo使用:Navigation、Lifecycles、Paging、LiveData、ViewModel等…项目使用Kotlin语言进行编写,依赖库截止代码编写时为最新版本。

Jetpack是什么想必大家对它都已经有了基本的了解了,官方介绍以及官方文档:

https://developer.android.com/jetpack

Jetpack 是一套库、工具和指南,可帮助开发者更轻松地编写优质应用。这些组件可帮助您遵循最佳做法、让您摆脱编写样板代码的工作并简化复杂任务,以便您将精力集中放在所需的代码上。

Jetpack 包含与平台 API 解除捆绑的 androidx.* 软件包库。这意味着,它可以提供向后兼容性,且比 Android 平台的更新频率更高,以此确保您始终可以获取最新且最好的 Jetpack 组件版本。

3. 为什么写JetpackNote?

说的简单些:就是为了记录自己的一个学习过程….

我为什么要学习Jetpack呢?想尝试一种新的架构方式,从我开始工作到现在,经历过了最初的MVC、MVP[MVP-todo、The-MVP…]以及各式各样的MVP]、MVVMClean等,当然我并没有所有的架构都用到过,每个项目基于自己的项目特点以及需求的迭代都会出现一套基于开发者所设计的架构模式,分层、组件化、模块化,我相信每一种设计都是基于项目所在的场景的。即使谷歌官方推荐使用todo-mvp使用契约类….,但终究那不能适合所有项目场景。但是Jetpack,它是一套组件、工具和指导;是谷歌正式推出的一整套用来构建APP开发的组件。

在Android Developers官网上,Jetpack作为一个Tab和Kotlin、Android Studio等一样的地位也同样占据了一个模块,Jetpack里目前包含的内容,未来想必也是谷歌大力维护和扩展的东西,所以我打算对Jetpack深入学习一番,其实Google Play商店中很多APP都已经开始使用Android Jetpack了,国内目前也有一些公司在使用了,虽然我很少听到,但是就目前关于Jetpack的一个帖子上面的内容经常会有人提到。这只是我对Jetpack学习的一些个人看法和想法啊,觉得有必要的你可以研究一下,反正到最后没有亏吃,是吧….

4. JetpackNote包含哪些内容

4.1 Navigation

1. Jetpack源码解析---看完你就知道Navigation是什么了?

2. Jetpack源码解析---Navigation为什么切换Fragment会重绘?

4.2 Lifecycles

3. Jetpack源码解析---用Lifecycles管理生命周期

在Lifecycles模块,我通过一个悬浮窗模拟控制台输出,来监听定位权限的日志….

4.3 LiveData

在LiveData模块,通过生命周期观察LiveData的值,并将它打印在控制台中,点击 开始观察数据 按钮,通过演示生命周期函数,返回桌面或者进入后台,查看LiveData对象的值。
Map转换则演示通过转换存储在LiveData对象中的值,并向下传递转换后的数据。在此Demo中通过点击Map按钮增加UserId,驱动LiveDataViewModel中的userBean来改变,最后展示在TextView中

4. Jetpack源码解析—LiveData的使用及工作原理

4.4 ViewModel

在ViewModel模块,屏幕中央为一个计时器,通过使用ViewModel存储计时器的值,将屏幕方向发生改变后,数据仍然存在不会销毁。
通过点击 查看Fragment共享Demo 可以查看两个Fragment共享了同一个ViewModel中的SeekBar的值。

5. Jetpack源码解析---ViewModel基本使用及源码解析

4.5 Paging

6. Jetpack---Paging你知道怎样上拉加载吗?

其他还有Room、WorkManager也基本有用到,但是还没有详细进行分析….这就是关于JetpackNote的整体内容,如果不当地方还请指正….

5. 结尾

Github
https://github.com/Hankkin/JetPack_Note

下载链接:

相关推荐
6. Jetpack---Paging你知道怎样上拉加载吗?
Jetpack 源码解析—LiveData的使用及工作原理

扫一扫 关注我的公众号
(0)

相关推荐

  • 谷歌宣布Android Jetpack Compose现已开启Beta测试

    谷歌刚刚通过 Android 开发者博客,宣布了 Jetpack Compose 框架已开启 Beta 测试.在此之前,已有不少开发者通过 Canary 通道的 Android Studio 集成开发 ...

  • Android Jetpack

    文章目录 一丶背景介绍 二丶什么是Jetpack? 三丶特点 四丶Jetpack 优点和缺点 五丶Jetpack的组成 六丶Jetpack具体描述 首先要声明一下,这篇文章是借用下面两位优秀的博主博客 ...

  • 学习笔记|吴勇《基于语文要素的单元习作训练课程》

    听完这一讲,我脑海中浮现出两个不同行业的人说的话,完美地契合了我现在的感受. 一个是张咏梅老师,重庆教科院初教所所长.她说:统编教材把大家放在一条线上,谁最敏锐,谁最愿意钻研,谁就能走在前列. 一个是 ...

  • .NetCore学习笔记:二、基于Dapper的泛型Repository

    为减少代码量,这里实现一个基于Dapper的泛型Repository. 这里需要引用Dapper.dll和Dapper.Contrib.dll. 接口定义: 1 /// <summary> ...

  • .NetCore学习笔记:三、基于AspectCore的AOP事务管理

    AOP(面向切面编程),通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术.AOP是OOP的延续,是函数式编程的一种衍生范型.利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑 ...

  • 重要【STM32学习笔记】STM32 BOOTLOADER配置以及APP跳转

      大家好,今天给大家介绍的是STM32的BootLoader以及它如何跳转运行到APP应用程序的例程.   首先我先给大家科普一下什么是BootLoader. 什么是BootLoader? Boot ...

  • 【学用系列】巧用解铃笔记app实现纸笔互动个性化学习辅导

    国庆长假期间,不少教师小伙伴仍然心中牵挂着学生的学业指导.通过微信.qq传图.传语音固然不错,可是缺乏纸笔互动的真实感受,往往给人带来一份遗憾.不过,今天或许我们将不再留有遗憾,胖胖老师今天将为大家介 ...

  • iPad无纸化学习!5款让人爱不释手的高效笔记APP推荐

    无纸化学习的学习早已广泛流传,不知不觉咱的iPad也入手了三个月,最近我发现了5个高效的笔记APP,每个笔记APP功能都非常强大,各有各的优势,以至于我都给我的iPad安利上了! Notability ...

  • 学习笔记|基于课标的内容研制策略

    从今天进入<为言语智能而教>的第二个板块:组块教学策略. 首先是第一章,基于课标的内容研制策略. 关于课标,一直以来在一线老师的手中都存在着剥离状况.使用统编版教材之后,有所好转.这不是因 ...

  • 学习笔记|基于文本的读写结合策略

    读这一章,直读得头涔涔而泪潸潸.因为,薛老师这一章所讲,全是我在工作中觉得自己做了,却做得很不好的. 这一章主要讲基于阅读教学的作文训练.这个训练有别于专项的作文教学,一般"侧重于引导学生在 ...

  • 搭建学习型iPad!10个超强大好用的笔记APP分享

    iPad学习型笔记APP大分享~ 你的iPad是买前生产力,买后爱奇艺呢?从现在开始跟我一起提高生产力吧! iPad生产力的前提,当然要配备一些好用的学习笔记APP啦,这不我来给大家安利了么,以下给你 ...