缘起

很久没写项目了,所以单纯的想练练手,正好看到有问答机器人的接口,想到之前也做过聊天项目,为什么不实验一下呢。当然也是简单调用接口的项目,并没有真正的完成问答的算法等等。业余项目,功能不齐全,只实现了简单的问答部分,至于聊天界面等等我懒得把之前的项目代码复制一份,因此忽略了。

研究

首先,我用的问答机器人的接口仍然还是聚合数据开放的免费接口,网址是:https://www.juhe.cn/docs/api/id/112,大家可以从这个网址里获得更多的接口信息,我项目只用了简单的调用。

在项目架构上,我用的仍然是MVP模式,使Android项目层次分明,代码结构简单,复用性高。具体采用的是Beam框架,参考作者的Beam

聊天的界面的信息排列采用的是jude的EasyRecyclerView,因为这个控件不是基于RecyclerView的改造,我感觉在本项目中的使用中并不是很好用。本项目对列表展示比较简单,RecyclerView和ListView应该就能胜任。

总体来说,项目开发一帆风水,一晚上就开发玩了,今天下午我用改了下bug,写写文档,总结下项目。

经验

项目里边,有一个小卡克记录一下。机器人接口返回的信息被我包装成了Answer类,但是,真正项目的List展示的时候用到的是ChatBean,因此,这两者是不同的结构,不能弄混。

另外在会话列表的MVP中,Fragment控制的是List,Presenter控制的是数据的请求和响应,ViewHolder控制的是数据的具体展示,因此逻辑比较清晰了,想要控制哪个部分的控件要明白在哪个里面去改。具体的看下这个项目的里边robot包里面的三个类代码。

App截图

问答的截图:

应用市场

下载地址:
- 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.

【Android开发】问答机器人,聊天类App的开发制作过程记录的更多相关文章

  1. 【视频】零基础学Android开发:蓝牙聊天室APP(四)

    零基础学Android开发:蓝牙聊天室APP第四讲 4.1 ListView控件的使用 4.2 BaseAdapter具体解释 4.3 ListView分布与滚动事件 4.4 ListView事件监听 ...

  2. 【视频】零基础学Android开发:蓝牙聊天室APP(二)

    零基础学Android开发:蓝牙聊天室APP第二讲 2.1 课程内容应用场景 2.2 Android UI设计 2.3 组件布局:LinearLayout和RelativeLayout 2.4 Tex ...

  3. 【视频】零基础学Android开发:蓝牙聊天室APP(三)

    零基础学Android开发:蓝牙聊天室APP第三讲 3.1 ImageView.ImageButton控件具体解释 3.2 GridView控件具体解释 3.3 SimpleAdapter适配器具体解 ...

  4. 【视频】零基础学Android开发:蓝牙聊天室APP(一)

    零基础学Android开发:蓝牙聊天室APP第一讲 1. Android介绍与环境搭建:史上最高效Android入门学习 1.1 Google的大小战略 1.2 物联网与云计算 1.3 智能XX设备 ...

  5. 为什么那么多人想开发一元夺宝类app?

    别拿你的无知和愚蠢,来证明主观的判断! 国人对一切事物具有怀疑的本性是好的, 但是若不建立于科学的分析方法, 那就是愚昧! 身边有朋友玩夺宝投入较多,产出较少,于是向我求助.想从数据分析的角度知道到底 ...

  6. 利用问答机器人API开发制作聊天类App

    缘起 很久没写项目了,所以单纯的想练练手,正好看到有问答机器人的接口,想到之前也做过聊天项目,为什么不实验一下呢.当然也是简单调用接口的项目,并没有真正的完成问答的算法等等.业余项目,功能不齐全,只实 ...

  7. Android 智能问答机器人的实现

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38498353 ,本文出自:[张鸿洋的博客] 今天看到一个ios写的图灵机器人,直 ...

  8. 聊天类APP功能测试总结

    做聊天类的APP 测试已经有一段时间了,也许哪天就不做了,趁今天轻松点,记录下来. 聊天类的APP都差不多,不管是微信,还是米聊,还是QQ,如果抓住了共性,测试的点都差不太多. 我用编程的术语来比方功 ...

  9. iOS开发之常用资讯类App的分类展示与编辑的完整案例实现(Swift版)

    上篇博客我们聊了<资讯类App常用分类控件的封装与实现(CollectionView+Swift3.0)>,今天的这篇博客就在上篇博客的基础上做些东西.做一个完整的资讯类App中的分类展示 ...

随机推荐

  1. R数据科学-1

    R数据科学(R for Data Science) Part 1:探索 by: PJX for 查漏补缺 exercise: https://jrnold.github.io/r4ds-exercis ...

  2. Excel-满足指定条件并且包含数字的单元格数目,DCOUNT()

    DCOUNT函数 函数名称:DCOUNT 主要功能:返回数据库或列表的列中满足指定条件并且包含数字的单元格数目. 使用格式:DCOUNT(database,field,criteria) 参数说明:D ...

  3. 12 — springboot集成JPA — 更新完毕

    1.什么是jpa? 一堆不想整在这博客里面的理论知识.这些理论玩意儿就应该自行领悟到自己脑海里 1).JPA & Spring Data JPA 1.1).JPA JPA是Java Persi ...

  4. 这份github上被14万人点赞的Java教程太强了

    前几天有个小伙伴加我之后问了下面的这个问题.我看到后是一脸懵逼的状态,jcombobox?实话说,我已经完全忘了在Java中还有这么个东西. 在网上一番搜索后,才发现原来它是 swing 中的下拉列表 ...

  5. 生产调优3 HDFS-多目录配置

    目录 HDFS-多目录配置 NameNode多目录配置 1.修改hdfs-site.xml 2.格式化NameNode DataNode多目录配置(重要) 1.修改hdfs-site.xml 2.测试 ...

  6. 学习java 7.23

    学习内容: 前面讲解了如果构建GUI界面,其实就是把一些GUI的组件,按照一定的布局放入到容器中展示就可以了.在实际开发中,除了主界面,还有一类比较重要的内容就是菜单相关组件,可以通过菜单相关组件很方 ...

  7. linux允许直接以root身份ssh登录

    1. sudo su - 2. vim /etc/ssh/sshd_config 3. let "PermitRootLogin" equal yes 4. :wq 5. serv ...

  8. ORACLE 数据块PCTFREE和PCTUSED

    PCTFREE表示一个数据块可用空间小于PCTFREE时,该数据块不在被记录在FREELIST中,即不能插入新数据. PCTUSED表示一个数据块已经用空间如果小于PCTUSED时,该数据块才会被重新 ...

  9. linux查询健康状态,如何直观的判断你的Linux系统是否健康

    一提到对于查看系统运行的健康状况,可能大多数朋友考虑到的就是查看进程或者打开任务管理器,但是对于应用在真实生产环境中服务器的linux系统来说,以上两种方式都不是***效的查看方式,那么今天就给大家推 ...

  10. springboot整合jetty

    1.jetty介绍 通常我们进行Java Web项目开发,必须要选择一种服务器来部署并运行Java应用程序,Tomcat和Jetty作为目前全球范围内最著名的两款开源servlet容器,该怎么选呢. ...