摘要:地址最近抽了点时间开发了一个微博系统来练手,踩了不少坑,也积累了一些经验。字段登录后存入,并缓存到登录后自动刷新,旧的自动废弃。
github地址
最近抽了点时间开发了一个Android微博系统来练手,踩了不少坑,也积累了一些经验。
因为之前没有做过和服务器的交互。先用php+mysql+redis构建web后台,通过json格式提供接口,
这里踩了Gson泛型的坑,不过我是通过对json协议做了特别设计绕过了坑,由Okhttp搭配Gson提供了统一
的服务接口,用起来还是比较顺手,也没有采用Retrofit之类的框架。
由于我是边做边设计架构,因此也走了不少弯路,添加数据库表字段,然后又要修改对应的JavaBean,不过好在对架构影响不大,因此改动不大,拓展性良好。
个人觉得最重要的是设计好Json数据协议,利用PHP输出Json数据,采用Okhttp和Gson得到Java数据模型,Gson泛型的问题,将实体消息封装到inner字段内,通过类继承绕开泛型,code字段和msg字段交给BaseActivity,BaseFragment检查处理。
Token字段登录后存入MySQL,并缓存到Redis,登录后自动刷新,旧的自动废弃。
其余主要是一些常规的优化,图片的标签防止错位,缩略图,LRU的缓存等
微博比较有意思的就是@功能,#话题#功能,通过正则表达式匹配来提取信息,生成提醒等批量插入MySQL,提高性能,#话题#功能有起始和终止#号,比较好匹配,而@功能由于没有中止符号较为难办,本项目支持两种:@Java@Scala@Kotlin 或者@Java @Scala @Kotlin 即通过后面的@符号或者空格来界定,不知有无更好的设计。UI通过SpannableString显示和响应点击事件。
运行截图
用了一些开源的工具库,其中还有不少坑,不得不打补丁修补。不过界面的设计不停地修改,还是令人挺满意的。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/68812.html
摘要:地址最近抽了点时间开发了一个微博系统来练手,踩了不少坑,也积累了一些经验。字段登录后存入,并缓存到登录后自动刷新,旧的自动废弃。 github地址 最近抽了点时间开发了一个Android微博系统来练手,踩了不少坑,也积累了一些经验。 因为之前没有做过和服务器的交互。先用php+mysql+redis构建web后台,通过json格式提供接口,这里踩了Gson泛型的坑,不过我是通过对jso...
阅读 1264·2021-10-18 13:32
阅读 2332·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