开发一个Android微博客户端+Web后台

这里是Github地址,供大家学习交流 Github

个人觉得最重要的是设计好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显示和响应点击事件。

本项目没有实现转发微博,特别是针对多人连续转发,本人也考虑了两种方案,一种是每条微博保存被转发的微博id(如果多次转发,只保留最近的一条),显示时只显示对当前和最近的一条微博,这样查询起来比较快。另外一种是数据库冗余设计,即保存最原始的微博ID,并且保存所有中间转发的内容,所有中间妆发内容包括转发人统统转化成字符串存储,这样刷微博时可以显示全部转发内容和转发人,不知道新浪微博是怎么设计的。


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,786评论 25 709
  • 前言 人生苦多,快来 Kotlin ,快速学习Kotlin! 什么是Kotlin? Kotlin 是种静态类型编程...
    任半生嚣狂阅读 26,295评论 9 118
  • 第二次版本更新,在xcode上 然后就可以打包了。 然后回到iTunes connect ,点击+版本或平台,写你...
    Daimer阅读 542评论 0 2
  • 今夜 皓月清冷 空旷静谧 那对与圆月相伴的星 还在去年的位置 凝眸我绵长的思念吗 还记得吗? 那年那月那日 我牵手...
    甲波布初阅读 199评论 0 0
  • 听力:头保持看对方不要动,特别是不要低头,保持上身的直立 胳膊与身体(胳肢窝)的夹角不要动,肘部不要在身体以后,要...
    日出东方天刚晓阅读 300评论 0 0