V2EX社区客户端。
绝大部分数据是通过调用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。
除此以外,还使用了
最后,欢迎大家pull request来为V2EX-Android(前往Github地址)添加新功能。
https://raw.github.com/greatyao/v2ex-ster/snapshots/latest.png
https://raw.github.com/greatyao/v2ex-android/master/snapshots/hot.png
https://raw.github.com/greatyao/v2ex-android/master/snapshots/nodes.png
https://raw.github.com/greatyao/v2ex-android/master/snapshots/favor.png
https://raw.github.com/greatyao/v2ex-android/master/snapshots/topic_details.png
https://raw.github.com/greatyao/v2ex-android/master/snapshots/user_details.png
https://raw.github.com/greatyao/v2ex-android/master/snapshots/topic_add.png
https://raw.github.com/greatyao/v2ex-android/master/snapshots/topic_reply.png
https://raw.github.com/greatyao/v2ex-android/master/snapshots/drawer.png
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.