Skip to content

cymok/WanAndroid

Repository files navigation

WanAndroid, View System + Compose

效果图

项目架构

MVVM 架构, 基于 Kotlin + JetPack 组件: Lifecycle + LiveData + ViewModel + Paging

功能及技术点

  • 网络, OkHttp3 + Retrofit2 + Coroutine, PersistentCookieJar

  • 图片, Glide

  • 消息, LiveEventBus

  • 权限, PermissionX

  • 首页导航, 使用 TabLayout + ViewPager2 + Fragment, 自定义 TabItem, 再次点击 Tab 刷新页面

  • DrawerLayout 侧滑导航

  • 状态栏沉浸, ImmersionBar

  • Banner, banner

  • 列表加载, Paging 组件

  • 列表刷新, SmartRefreshLayout 原生

  • 深色模式, 跟随系统 + 手动模式

  • Splash 页面适配, 仿 bilibili, 无缝衔接

  • 首页, 调整为一个列表, Banner + Other接口 + Paging 的列表聚合

  • 可拖拽悬浮按钮 可自动贴边

  • APP 跳转

    • 邮件 Scheme 跳转。发送邮件时,使用指定邮件应用列表过滤掉其它应用(只是处理了邮件 Scheme 但不是邮件应用)
      • (网易邮箱有个 Bug,反馈了也一直不改,无法识别 EXTRA_EMAIL,其它邮件应用都能正常识别)
    • 微信协议 weixin Scheme 跳转微信 APP
    • 浏览器 Scheme 跳转。打开浏览器时,使用自定义浏览器列表,包含系统浏览器列表之外的一些浏览器(而且不会出现什么 天猫、京东、微博、WPS 这些阿猫阿狗都来冒充浏览器的情况)
      • (系统浏览器列表规则是,当用户在系统设置了默认浏览器应用, 之后只能调起这一个默认浏览器)
      • (微信的方案似乎是,获取了可解析 http/https Scheme 的所有应用列表,然后自定义浏览器应用列表界面和App自己的默认浏览器逻辑)
      • (另外,小米 MIUI 12 有个 Bug,魔改它自己的默认浏览器到推荐位置后导致后面其他方式的索引差了一位,其他系统没有这个问题)
    • 应用商店 Scheme 跳转
    • http/https Scheme 处理
    • 自定义 wanandroid Scheme 处理
  • 自定义管理空间页面, 参考 Chrome, 具体路径: 应用详情 -> 清除数据 -> 管理空间 -> 自定义页面

  • 集成 Compose, 将个人项目 WanCompose 整合到 WanAndroid, 目前已整合依赖和基础页面, 可正常进行 Compose 页面开发

  • 查看/删除 本地浏览历史, Compose UI, 基于 DataStore 本地数据存取

  • 本地书签, 因接口收藏功能依赖于文章 ID, 不是所有网页都可进行收藏; 而这个本地书签功能只是依赖 URL, 可以将任意网页保存为书签

  • 其它 工具类 便捷库