Kotlin + MVVM + LCE 版玩安卓,暗黑模式横竖屏无网弱网无数据加载失败等等各种情况,协程RoomHiltDataStoreLiveDataRetrofit屏幕适配

Posted Wei_Leng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kotlin + MVVM + LCE 版玩安卓,暗黑模式横竖屏无网弱网无数据加载失败等等各种情况,协程RoomHiltDataStoreLiveDataRetrofit屏幕适配相关的知识,希望对你有一定的参考价值。

Playandroid

项目地址:zhujiang521/PlayAndroid 

简介: 🔥🔥🔥 Kotlin + MVVM + LCE 版玩安卓,暗黑模式、横竖屏、无网、弱网、无数据、加载失败等等各种情况,协程、Room、Hilt、DataStore、LiveData、Retrofit、屏幕适配、本地缓存、多语言切换、多 lib,你想要的我都有!!!

更多:作者   提 Bug   

标签:

项目新增了 Compose 版本,大家如果想体验的话下载代码直接切换为 main 或 compose 分支即可,有问题直接提 issues。

我的新书

大家可以购买我的新书《Jetpack Compose:Android 全新 UI 编程》进行阅读,里面有完整的 Compose 框架供大家学习。

京东购买地址

当当购买地址

呸呸呸,太不要脸了,又在推荐自己的新书。。。

如果对你有帮助的话,别忘记点个 Star,感激不尽。

公众号

如果想关注我的话可以关注我的公众号:《江江安卓》,里面会不定期更新有关安卓的知识及个人见解。

体验

如果想要下载尝试下的话可以直接点击链接进行下载,或者扫描下面的二维码进行下载。

Play Android

如果上面的下载次数用完的话可以点击下面链接:https://github.com/zhujiang521/PlayAndroid/raw/master/apk/app-release_7zip_aligned_signed.apk

玩安卓 MVVM 版截图

首先来看下之前已经实现的大概样式吧:

初始样式

看着样式还好,但之前只是简单做了下,实现了最基本的功能,切换成横屏之后基本没办法看,更不要说分屏、夜间模式、本地缓存、无网弱网情况、无数据情况等等了,接下来看一下现在新增的适配页面吧。

夜间模式

横屏适配

无网、无数据适配

实现过程

项目用到了很多技术,基本上都是现在安卓 app 的最新标配,比如:MVVM、JetPack(LiveData、Room、ViewModel)、Retrofit、协程、Glide 等等。

其实在优化这个 Demo 的时候觉得做了好多事,但是真的让我写的时候就有点懵逼了,因为用到的东西比较多,随便拎出一个来都能单独写一篇文章;

比如在 apk 大小的优化,这个 apk 最后被我优化到只剩 3.3MB,现在随便一个 apk 都得几十 MB 吧。apk 优化的挺多,比如代码混淆、资源文件的混淆、不需要的语言删除、图片转 webp 等等,如果想深入了解 apk 压缩的话,可以去看我之前写的这篇文章:玩安卓必须要掌握的性能优化之 APK 极限压缩

又比如新增的浏览历史功能中用到了Room,没有Room的时候基本都在使用原生或者使用LitePalGreenDAO等来实现,虽然LitePalGreenDAO也是ORM的方式来实现的数据库操作,但是总体来说还是没有Room好用,Room写好实现的 DAO 接口文件即可,在你编译的时候会直接生成对应的实现类,真的很香。

类似上面的还有很多,如果代码哪块写的不好或者有优化的地方欢迎大家告诉我或者给我提 issues。

使用到的库

banner

bugly

SmartRefreshLayout

utilCode

glide

retrofit

dataStore

coroutines

room

License

Copyright (c) 2020 朱江

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

以上是关于Kotlin + MVVM + LCE 版玩安卓,暗黑模式横竖屏无网弱网无数据加载失败等等各种情况,协程RoomHiltDataStoreLiveDataRetrofit屏幕适配的主要内容,如果未能解决你的问题,请参考以下文章

从Kotlin到Flutter,嗯,还是MVVM更香!

Android面试题——kotlin相关面试题

纯kotlin+ViewModel+LiveData+协程MVVM

Android : Kotlin : MVVM : 为啥 viewModel.onButtonClicked() 会导致应用程序崩溃?

用 kotlin 学习 Android MVVM 架构组件

通俗易懂的 Android 架构开发学习手册,安卓官方架构指南