V2EX社区客户端:V2EX-android

dgy7 9年前

V2EX-android 即 V2EX社区客户端。

支持功能

  • 话题查看

  • 节点查看和按字母搜索

  • 用户资料查看

  • 话题回复

  • 话题创建

  • 未读提醒查看

其他功能

  • 实现了节点、话题、用户三个Scheme,通过话题、节点、用户链接直接打开客户端进行相关信息浏览

  • 对用户已经浏览过的话题作记忆处理并在界面上进行展示

  • 话题、帖子等采用了卡片式布局

绝大部分数据是通过调用V2EX的Json API解析得到的,少部分涉及到用户个人信息则是通过Http模拟浏览器请求页面。但是Json API调用有严格的调用次数和时间限制,为了避免这个问题,我将数据缓存到文件系统中,如果用户不手动刷新,则会直接从缓存中读取的,当然这并不能解决根 本问题,每个小时180次请求的警戒线还是很容易就突破,这时候服务器返回403禁止访问,会很大的影响用户体验。我在后续版本中会考虑绕过Json API用模拟浏览器访问来代替。

V2EX社区客户端:V2EX-android  V2EX社区客户端:V2EX-android  V2EX社区客户端:V2EX-android  V2EX社区客户端:V2EX-android  V2EX社区客户端:V2EX-android  V2EX社区客户端:V2EX-android  V2EX社区客户端:V2EX-android  V2EX社区客户端:V2EX-android  V2EX社区客户端:V2EX-android

开发相关

开发用的是 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。

除此以外,还使用了

  • 友盟的SDK作统计分析和自动更新

  • BadgeView作数字提醒

  • Pinyin4J 将汉字转化为对应的拼音字母

项目主页:http://www.open-open.com/lib/view/home/1432193691114