Skip to content
/ BaseKit Public template

Mainly for my own use, to reduce writing repetitive code,主要供我自己使用,减少编写重复代码

License

Notifications You must be signed in to change notification settings

SheTieJun/BaseKit

Repository files navigation

BaseKit

为减少写重复代码

把简单的事情程序化 把复杂的事情程序化 把重复的事情程序化 一切为了效率(偷懒)


框架

  • MVC/MVP/MVVM

MVVM = (ViewBinding/DataBinding)+ViewModel+LiveData

Libraries

  1. Retrofit- REST API Call
  2. Glide - Image Loading and caching.
  3. koin - Dependency Injection
  4. gson - json serialization/deserialization
  5. Android Jetpack
  6. Material Design Components - Google's latest Material Components.

使用 Android SDK 升级助理

Android SDK 升级助理是 Android Studio 中的一款工具,可帮助您升级 targetSdkVersion(即应用的目标 API 级别)。请务必及时更新您的 targetSdkVersion,以便使用该平台的最新功能。Android Studio Giraffe 及更高版本中提供了 Android SDK 升级助理。 https://developer.android.com/build/sdk-upgrade-assistant?hl=zh-cn


文章


分支


应用场景记录

  • 使用Navigation代替ARouter
  • start_up代替Application中初始化
    • 隐私政策,可以分阶段初始化,比如登录后才初始化
  • 拦截网页的请求,或者动态添加vConsole
  • 注解+ASM

模块类型

  • 应用模块
  • 数据模块
  • 功能模块
  • 通用模块
    • 界面模块
    • 网络模块
    • 辅助模块
  • 通信模块(中介模块):用于模块间的通信


界面层相关记录

  1. 展开界面元素(界面逻辑)和界面操作元素(业务逻辑)
  2. 定义UIState,例如:TracksUIState,TrackItemUIState

数据层相关记录

  1. DataStore 非常适合存储键值对,例如用户设置,具体示例可能包括时间格式、通知偏好设置,以及是显示还是隐藏用户已阅读的新闻报道。DataStore 还可以使用协议缓冲区来存储类型化对象。
  2. 借助 WorkManager,可以轻松调度异步的可靠工作,并可以负责管理约束条件。我们建议使用该库执行持久性工作。为了执行上面定义的任务,我们创建了一个 Worker 类:RefreshLatestNewsWorker。此类以 NewsRepository 作为依赖项,以便获取最新新闻并将其缓存到磁盘中。
  3. 为了保护来自不同线程的读取和写入操作,我们使用了 Mutex。
  4. async 用于在外部作用域内启动协程。await 在新的协程上调用,以便在网络请求返回结果并且结果保存到缓存中之前,一直保持挂起状态。如果届时用户仍位于屏幕上,就会看到最新新闻;如果用户已离开屏幕,await 将被取消,但 async 内部的逻辑将继续执行。luanch适用于“发射并忘记”,而async适用于“异步并等待结果”
  5. 数据和文件存储:room /DataStore/ File

协程最佳实践

  1. 将 Dispatcher 注入到类中,易于测试,因为您可以轻松替换它们进行单元测试和仪器测试。
  2. ViewModel/Presenter层应该创建自己的协程,方便取消
  3. ViewModel/Presenter 层下面的层应该公开挂起函数和 Flows
  4. 对于不应该取消的操作,请在 Application 类中创建您自己的作用域,并在由它启动的协程中调用不想被ViewModel/Presenter取消的代码。

代码检测

  1. detekt:Detekt 是一种静态代码分析工具,用于检测 Kotlin 代码中的潜在问题和不规范的编码实践。它是为 Kotlin 语言开发的,并且可以帮助开发者发现可能导致错误、性能问题或代码可维护性下降的代码片段。
  2. spotless:Spotless 是一个开源的代码格式化和风格检查工具,可以帮助开发团队维持一致的代码风格和格式。

About

Mainly for my own use, to reduce writing repetitive code,主要供我自己使用,减少编写重复代码

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published