V2EX社区客户端:V2EX-android
V2EX-android 即 V2EX社区客户端。
支持功能
-
话题查看
-
节点查看和按字母搜索
-
用户资料查看
-
话题回复
-
话题创建
-
未读提醒查看
其他功能
-
实现了节点、话题、用户三个Scheme,通过话题、节点、用户链接直接打开客户端进行相关信息浏览
-
对用户已经浏览过的话题作记忆处理并在界面上进行展示
-
话题、帖子等采用了卡片式布局
绝大部分数据是通过调用V2EX的Json API解析得到的,少部分涉及到用户个人信息则是通过Http模拟浏览器请求页面。但是Json API调用有严格的调用次数和时间限制,为了避免这个问题,我将数据缓存到文件系统中,如果用户不手动刷新,则会直接从缓存中读取的,当然这并不能解决根 本问题,每个小时180次请求的警戒线还是很容易就突破,这时候服务器返回403禁止访问,会很大的影响用户体验。我在后续版本中会考虑绕过Json API用模拟浏览器访问来代替。
开发相关
开发用的是 Android Studio,除了编译速度感觉略慢一点点,就没有什么其它的大问题了,而且智能提示更智能,此外用 gradle 做库依赖确实方便,真的可以甩 eclipse 几条大街了。
V2EX客户端里面的列表用到了Android兼容库
compile 'com.android.support:cardview-v7:21.0.3' compile 'com.android.support:recyclerview-v7:21.0.3'
刚开始对于V2EX的主题列表和回帖列表,我都是用ListView实现的。不过后来发现总存在一些问题,在Nexus 5上没什么问题,但是在其他手机上列表会出现一些锯齿。于是我用RecyclerView来重新实现了一遍。CardView则对每个话题Item进行卡 片式布局。
这是V2EX-Android中用到的第三方库:
compile 'com.astuetz:pagerslidingtabstrip:1.0.1'
compile 'com.loopj.android:android-async-http:1.4.6'
compile 'com.github.mrengineer13:snackbar:1.1.0'
compile 'com.melnykov:floatingactionbutton:1.3.0'
-
android-async-http
封装了 http 请求,直接支持 json,gzip 压缩,相当省事。
-
universal-image-loader
异步图像加载,缓存和显示,如果你想要在界面上显示网络图片,那么赶紧使用它吧。
-
pagerslidingtabstrip
交互式页面指示器控件,完美配合ViewPager控件。
-
floatingactionbutton
浮动Action Button控件,完美配合ListView、RecyleView。
-
snackbar
Snackbar 是 Material Design 下的一个组件,这是模仿Snackbar的效果实现了一款兼容5.0系统以下的Snackbar。
除此以外,还使用了