摘要:地址最近抽了點時間開發(fā)了一個微博系統(tǒng)來練手,踩了不少坑,也積累了一些經(jīng)驗。字段登錄后存入,并緩存到登錄后自動刷新,舊的自動廢棄。
github地址
最近抽了點時間開發(fā)了一個Android微博系統(tǒng)來練手,踩了不少坑,也積累了一些經(jīng)驗。
因為之前沒有做過和服務器的交互。先用php+mysql+redis構建web后臺,通過json格式提供接口,
這里踩了Gson泛型的坑,不過我是通過對json協(xié)議做了特別設計繞過了坑,由Okhttp搭配Gson提供了統(tǒng)一
的服務接口,用起來還是比較順手,也沒有采用Retrofit之類的框架。
由于我是邊做邊設計架構,因此也走了不少彎路,添加數(shù)據(jù)庫表字段,然后又要修改對應的JavaBean,不過好在對架構影響不大,因此改動不大,拓展性良好。
個人覺得最重要的是設計好Json數(shù)據(jù)協(xié)議,利用PHP輸出Json數(shù)據(jù),采用Okhttp和Gson得到Java數(shù)據(jù)模型,Gson泛型的問題,將實體消息封裝到inner字段內(nèi),通過類繼承繞開泛型,code字段和msg字段交給BaseActivity,BaseFragment檢查處理。
Token字段登錄后存入MySQL,并緩存到Redis,登錄后自動刷新,舊的自動廢棄。
其余主要是一些常規(guī)的優(yōu)化,圖片的標簽防止錯位,縮略圖,LRU的緩存等
微博比較有意思的就是@功能,#話題#功能,通過正則表達式匹配來提取信息,生成提醒等批量插入MySQL,提高性能,#話題#功能有起始和終止#號,比較好匹配,而@功能由于沒有中止符號較為難辦,本項目支持兩種:@Java@Scala@Kotlin 或者@Java @Scala @Kotlin 即通過后面的@符號或者空格來界定,不知有無更好的設計。UI通過SpannableString顯示和響應點擊事件。
運行截圖
用了一些開源的工具庫,其中還有不少坑,不得不打補丁修補。不過界面的設計不停地修改,還是令人挺滿意的。
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/68812.html
摘要:地址最近抽了點時間開發(fā)了一個微博系統(tǒng)來練手,踩了不少坑,也積累了一些經(jīng)驗。字段登錄后存入,并緩存到登錄后自動刷新,舊的自動廢棄。 github地址 最近抽了點時間開發(fā)了一個Android微博系統(tǒng)來練手,踩了不少坑,也積累了一些經(jīng)驗。 因為之前沒有做過和服務器的交互。先用php+mysql+redis構建web后臺,通過json格式提供接口,這里踩了Gson泛型的坑,不過我是通過對jso...
閱讀 1264·2021-10-18 13:32
閱讀 2333·2021-09-24 09:47
閱讀 1323·2021-09-23 11:22
閱讀 2463·2019-08-30 14:06
閱讀 571·2019-08-30 12:48
閱讀 1997·2019-08-30 11:03
閱讀 535·2019-08-29 17:09
閱讀 2462·2019-08-29 14:10