Twitter 项目总结
Summary:
1, 调研
1-1 twitter4j,信息没有有效的传递
1-2 api文档优先,先看文档,在看demo
2, 配合
2-1 讲清楚问题(with all colleagues)
2-2 讨论的发起
2-3 测试的介入()
3, 技术
3-1 代码结构(画出twitter代码结构的cmap图)
3-2 代码习惯(review bug,eg, if else )
3-3 代码经验(review bug,eg, process下 sharedpreference, 对asynctask的处理)
一, 调研
1-1 信息没有有效的传递,工作的承前启后。
Eg1:twitter4j
1-2 文档优先,源码优先
1-2-1, 整体结构,一些基本概念
Eg1:stream api是否支持多设备
1-2-2, 简化处理
Eg1:重连的逻辑
Eg2:异常的处理
二, 配合
2-1 讲清楚问题
Eg1:twitter的api
Eg2:twitter支持的消息分类,web的推荐分类
2-2 讨论的发起
Eg1:重连逻辑
2-3 测试的介入
独立功能的单元测试,daily build
三, 技术
3-1 代码的结构
3-2 bug总结
#3140 初始化SharedPreference
初始化SharedPreference时,默认值应该为一个常量。因为在不同的进程中,变量在不同的内存中,值没有关联。所以默认值的获取不应该是一个变量。
#3048 Webview的back事件不对(即没有回到相应的页面)
方法:在shouldOverrideUrl()中打出url,看是否执行相应的url
#3019 AsyncTask的使用
查看文档:
1, asynctask的使用场合
2, asyntask的串行还是并行执行
SharePreference的多进程处理,插件架构下:
附录1:Twitter4j的总结
在使用此api的时候,走了一些弯路。
1, 别着急使用api完成某个功能,先认真的看完文档
2, 对于关键的类,如果有源码,一定要认真的看一遍。
3, 一定要常使用log,认真的看里边的错误。
容易出现错误的地方有:
1, consumer key的初始化,只能初始化一次。
2, Twitter/TwitterStream对象,全局只能有一个,要使用getSingleTon()方法
附录2:Twitter调研报告
Twitter 调研报告
一,Sdk
1, 基本结构
参看cmap图
2, 具体分类
2-1 TimeLine
(1) 获得@授权用户的timeline
(2) 获得指定用户的timeline(username或id)
(3) 获得授权用户最新tweet或者retweet timeline
(4) 获得授权用户被retweet的tweet timeline
2-2 Tweets
(1) 获得指定tweet的前n条retweet。n小于100
(2) 获得指定tweet,通过id
(3) 删除指定tweet
(4) 发布tweet
(5) Retweet指定tweet
(6) 发布带有media的tweet。参看tweet的entity。
(7) 返回指定id的tweet的html代码,可直接使用在第三方
2-3 search
(1) 根据指定条件搜索tweet
2-4 stream
(1) 根据指定条件过滤tweet
(2) 获取随机的public status
(3) 返回所有的public status
(4) 获取单个用户的stream message,看cmap图 stream message
(5) 获取多个用户的stream message
2-5 direct message
(1) 获得至多20条发给授权用户的DM(direct message)
(2) 获得至多20条授权用户发出的DM
(3) 获得某指定id的DM
(4) 删除某指定id的DM
(5) 创建DM
2-6 friends &followings
(1) 获得授权用户不想接受retweet源的用户id列表
(2) 获得授权用户following的用户列表(即friends)
(3) 获得following授权用户的用户列表
(4) 获得授权用户和其他指定用户的关系(following follow)
(5) 获得pending request to follow授权用户的用户列表
(6) 获得授权用户发出的pending follow request
(7) 授权用户follow某用户
(8) 授权用户unfollow某用户
(9) 对指定用户做出限制(device-推送,retweet)
(10) 获得任意两个用户的关系
(11) 获得指定用户的following列表
(12) 获得指定用户的follow列表
2-7 users
(1) 获得授权用户的设置内容
(2) 获得授权用户的授权状态
(3) 更新设置
(4) 更新device状态(推送)
(5) 更新账户信息
(6) 更新账户背景图片
(7) 更新账户页面颜色
(8) 更新账户图片
(9) 获得授权用户block的用户列表
(10) block某用户
(11) unblock某用户
(12) 获得一组user的详细信息,最多100个
(13) 获得指定user的信息
(14) 根据条件搜索相关user
(15) 获得指定用户可以”contribute”用户列表
(16) 获得指定用户的”contributor”用户列表
(17) 获得account profile banner
(18) 更新account profile banner
(19) 移除account profile banner
2-8 suggested users
(1) 获得suggested user 指定category的用户表
(2) 获得suggested user的category
(3) 获得 suggested user指定category的members
2-9 favorite
(1) 获得favorite tweet列表
(2) Favorite 指定tweet
(3) Unfavorite 指定tweet
2-10 list
(1) 获得授权用户所有的list
(2) 获得指定list的tweet timeline
(3) 从指定list中移除某member
(4) 向指定list中增加某member
(5) 删除指定list
(6) 创建list
(7) 更新list
(8) 获得指定list的信息
(9) 返回某指定用户被加入的分组,最多20个
(10) 从指定分组,移除多个member
2-11 saved search
(1) 获得saved search 列表
(2) 显示指定id的saved search
(3) 创建saved search
(4) 删除指定id的saved search
2-12 places & geo
(1) 返回指定id的place的所有信息
(2) 根据经纬度,获得城市信息,最多20个
(3) 根据相关信息,搜索place
(4) 获得给定坐标附近的城市
(5) 创建一个新的place
2-13 trends
(1) 获得指定WOEID的top 10 trend topics
For more: http://developer.yahoo.com/geo/geoplanet/
(2) 获得twitter发布trend的location
(3) 获得距离指定location最近的trend
2-14 spam reporting
(1) 报告指定用户为spam account
2-15 授权
2-16 帮助
二,同类产品
1, go launcher twitter widget
基本的展示。授权用户的关注timeline展示,mention展示,message展示。
单击某tweet,会有相应的回应,但是感觉比较混乱。
2, plume
功能比较强大,基本涵盖了所有功能。设计风格和官方客户端不同。Plume的交互设计和facebook客户端类似。左侧边栏有各个功能区。使用起来还是很方便的。
3, 待补充,将主要涉及notification的处理类应用
4, Chrome twitter Notification
三,开源code
1, Droidtwit updated 2011年1月
1-1 Source:http://code.google.com/p/droidtwit/
1-2 基本功能:
(1) 关注的timeline
(2) 发布tweet
(3) 设置刷新的间隔
(4) 移除账户
2, Twidere updated 2013.1
https://github.com/mariotaku/twidere
google play:
下载量1w-5w,评论过千,如果要做通用的twitter client,这个比较有价值。
https://play.google.com/store/apps/details?id=org.mariotaku.twidere&hl=en
四,问题
1, Twitter的notification
1-1 支持的notification类型,可以根据follow关系筛选(mention,retweet,favorites),如果有以下event发生,将会有对应的通知(mentions对应mentions,retweet对应retweet,favorite对应favorite,etc)。
1-2 特殊情况(reply)
User B在桌面版点击User A tweet的reply,然后删除tweet自动加的@A,相当于B 发了一条新tweet,不会通知A。只有当有@A时,才会通知A有人mentions了它。
1-3 上图notification中的tweet选项,待验证。可能跟网络有关系。***良好状况下,官方微博无法刷出tweets timeline。
五,产品
定义:
登陆/登出
消息通知的展示。
内容的展示通过网页。
发送twitter