Diycode 社区 Android 客户端 (v0.1.0)

Android · sloop · 于 发布 · 最后由 baby1234555回复 · 6291 次阅读
1644

Diycode 社区 Android 客户端。

简介

Diycode 社区客户端,可以更方便的在手机上查看社区信息。应用采用了数据多级缓存,并且实现了离线浏览(访问过一次的页面会被缓存下来,没有网络也可查看),相比于网页版,在一定程度上可以减少在手机上访问的流量消耗。由于目前功能尚未完善,还存在一些已知或未知的bug,所以当前版本仅为beta测试版。

本客户端开发过程是完全开放的,你可以 到这里查看源代码, 如果你想要改进客户端,或者发现了问题,可以到 这里提交 Issues 。当然了,你也可以基于该代码修改并开发出属于自己的客户端。

如果你有兴趣亲自开发一个 diycode 客户端的话,可以试试看 diycode-sdk,它可以让你方便的拿到 diycode 社区的数据以及与 diycode 服务器交互,所有信息都会立即同步到社区上。

预览

下载

【点击下载应用】

【查看源代码】

【查看SDK】

或者扫描下面二维码在手机上下载。

访问下载页面

更新说明:

  1. 修复首页数据过多时加载数据卡顿问题。
  2. 首页界面调整
  3. 添加分类查看,点击节点名称可以查看该节点下所有话题(Topic)
  4. 使用 CromeCustomTabs 替换 WebView
  5. Sites 页面支持手动刷新。
  6. 通知、我的帖子、我的收藏 均支持下拉刷新和分页加载。
  7. 重构 RecyclerView 相关代码,使下拉刷新和上拉加载代码更加简洁
  8. 将部分 Activity 内容转移到 Fragment

历史版本

diycode-v0.0.6 (2017-03-31)

  1. 修正重复打开链接导致程序异常退出

diycode-v0.0.5 (2017-03-31)

  1. 修复 News 链接打开方式
  2. 调整 Sites 页面条目间距和点击区域大小
  3. 修正评论区图片大小

diycode-v0.0.3 (2017-03-31)

  1. 修复首页滑动卡顿问题
  2. 修复登录页面崩溃问题
  3. 移除顶部菜单快速返回按钮
  4. 添加点击FAB快速返回顶部
  5. 添加双击Actionbar(Toolbar)快速返回顶部

diycode-v0.0.1 (2017-03-29)

  1. 查看 topic 列表、详情、评论
  2. 回复 topic 评论
  3. 查看 news
  4. 查看 sites
  5. 登录后根据用户设置获取个人 topic 列表
  6. 查看用户创建的 topic
  7. 查看用户收藏的 topic
  8. 查看通知
  9. 文章链接打开方式可选(默认使用内置浏览器)
  10. topic 缓存,可离线查看。
  11. 缓存默认为 1 周,过期自动清除,也可手动清除。
本帖已被设为精华帖!
共收到 30 条回复
96

赞并持续关注

2
jixiaohua · #2 ·

太赞了!!我重新拿起了我的 Android 手机!

96
troy · #3 ·

首页Tab滑动略有卡顿

96

首页Tab滑动略有卡顿+1

1644
sloop · #5 ·

#3楼 @troy
#4楼 @hayukleung
首页卡顿问题已经添加到已知bug。

96

支持,下载下来看看

96

大神,1楼赞的表情图片在APP上显示有问题,快占2/3的屏幕大小了

1644
sloop · #8 ·

#7楼 @hellforgate 新版本已经修正

1644
sloop · #9 ·

第一个稳定版发布

96

赞(≧▽≦)🎉

2571 1491357330
plusend · #11 ·

体验下

96
mrko0630 · #12 ·

很不错。有群么

13楼 Deleted
1644
sloop · #14 ·

#12楼 @mrko0630 有的 612310796(魔法师协会)

96
onebit · #15 ·

测试一下

1644
sloop · #16 ·

#11楼 @plusend 借鉴了不少你写的内容。(⊙ω⊙)

96
plusend · #17 ·

#16楼 @sloop 有人瞧得上眼,太开心了。

96

能问一下为什么要在 RecyclerView 外面包一层 NestedScrollView 吗,这样会减弱 RecyclerView 的 fling 效果,造成滑动卡顿。

1644
sloop · #19 ·

#18楼 @chowaikong 主要是为了添加一些不适合放在 RecyclerView 的内容。
例如 topic 详情页,上面是一个 WebView,如果使用 RecyclerView 使用 multiType,作为第一个条目也是可以的,但是呢当它滑动过去后会被销毁,而 WebView 销毁和重建是非常耗时的,滑动到底部再滑动回来会闪一下。包括底部的 Footer 状态显示,个人觉得只为了添加一个 Footer 使用 MultiType 太不划算了。

如果不进行设置的话,的确会因为滑动冲突会造成比较明显的卡顿,但是如果把 RecyclerView 的滑动直接交给 NestedScrollView 处理,对滑动效果影响并不大。

另外一个好处就是可以更方便的保存状态,如果将滚动直接交给 RecyclerView 处理,那么记录 RecyclerView 状态的时候需要记录两个数值,一个是条目,另一个是条目距离顶部的距离。交给 NestedScrollView 后只用记录 NestedScrollView 的滚动位置就行了。

1644
sloop · #20 ·

关于 RecyclerView 外面包裹 NestedScrollView 问题。

在一开始的时候为了省事使用了这种方案,其实这种方案是存在缺点的,不适合内容过多的情况下添加或者删除内容,否则UI会卡顿,这也是有小伙伴反馈,我测试后才发现的。
我猜测 RecyclerView 有自己的优化布局方案,在默认的情况下,如果数据更新了,只对显示部分重新测量即可,其余部分可以在滚动时在测量加载,但是,如果外面包裹了 NestedScrollView 时,添加或删除数据则需要对 RecyclerView 中所有内容都重新测量,以获取 RecyclerView 的真实高度。
当数据不多时,重新测量一次耗费的时间很多,不容易察觉,但是当数据有很多时,重新测量一次就需要耗费很长的时间,很容易引起 ANR 异常。

所以在新版本中移除了 NestedScrollView 的嵌套,并使用了 HeaderFooterAdapter 来为底部添加状态条。

96
awey · #21 ·

用api创建了一个新的News,也返回了id等数据,但我在获取News列表里和社区里都没看到创建的,News 的id是2252和2253,社区我的主页打开分享是报“服务访问异常”的

96
pdog · #22 ·

colorPrimaryDark 颜色设置成白色, 主页看不见状态栏其他字体了

96
zack · #23 ·

华为mata8闪退哦

96
run · #24 ·

楼主帮我看下? https://www.diycode.cc/topics/907

96
marcello · #26 ·

会开放注册的API吗

96
marcello · #27 ·

我想用iOS 写一个

5404 1502159094

谁知道这个服务器用户登陆token是怎么设计的?

29楼 Deleted
5733 1506307741

学习中学习中

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册