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