缘起
很久没写项目了,所以单纯的想练练手,正好看到有问答机器人的接口,想到之前也做过聊天项目,为什么不实验一下呢。当然也是简单调用接口的项目,并没有真正的完成问答的算法等等。业余项目,功能不齐全,只实现了简单的问答部分,至于聊天界面等等我懒得把之前的项目代码复制一份,因此忽略了。
研究
首先,我用的问答机器人的接口仍然还是聚合数据开放的免费接口,网址是:https://www.juhe.cn/docs/api/id/112,大家可以从这个网址里获得更多的接口信息,我项目只用了简单的调用。
在项目架构上,我用的仍然是MVP模式,使Android项目层次分明,代码结构简单,复用性高。具体采用的是Beam框架。
聊天的界面的信息排列采用的是jude的EasyRecyclerView,因为这个控件不是基于RecyclerView的改造,我感觉在本项目中的使用中并不是很好用。本项目对列表展示比较简单,RecyclerView和ListView应该就能胜任。
总体来说,项目开发一帆风水,一晚上就开发玩了,今天下午我用改了下bug,写写文档,总结下项目。
经验
项目里边,有一个小卡克记录一下。机器人接口返回的信息被我包装成了Answer类,但是,真正项目的List展示的时候用到的是ChatBean,因此,这两者是不同的结构,不能弄混。
另外在会话列表的MVP中,Fragment控制的是List,Presenter控制的是数据的请求和响应,ViewHolder控制的是数据的具体展示,因此逻辑比较清晰了,想要控制哪个部分的控件要明白在哪个里面去改。具体的看下这个项目的里边robot包里面的三个类代码。
App截图
问答的截图:
应用市场
下载地址:
- Fir.im:https://fir.im/qarobot
结语
这个项目基本都是基于找乐和微信精选两个App改的,我觉得开发速度很快,这两个项目的架构也很好。希望大家互相交流学习。
找乐:http://blog.csdn.net/fuxuemingzhu/article/details/50911245
微信精选:http://blog.csdn.net/fuxuemingzhu/article/details/50933767
本问答机器人项目已经完全开源,代码在:https://github.com/fuxuemingzhu/QARobot,欢迎Star和Fork.