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。
除此以外,還使用了