记一个简单图书阅读器的制作过程

微澜 2018/9/27 qq:9611153

从有个想法,到到一个可用程序,断断续续几个月,花上不少的功夫,即便是简单的程序一个人写下来也是很难的。越写越是发现,想要做好一个东西,实在是没有尽头,匆匆打一个结,等到以后有时间了,有了足够多的时间和精力再去完善。

做程序,不管大小,在我看来,也无外乎:把想法变成计划,把计划变成框架,把框架变成成品,想变成商品还要宣传。

1、需求

从个人需求和角度出发,自己想要一个什么东西,获取别人也有类似的困惑和想法。

经常在网上看小说,有时候会觉得广告太多,运行太慢。无聊的时候看新闻,也会觉得不是很感兴趣的东西也会搜索到。于是想到了自己或许可以写个小程序,放一些自己感兴趣的东西。

总结下来,自己想要的东西无非就是两个:

1)、把自己感兴趣的书管理起来

2)、把感兴趣的新闻组管理起来

有时候,会觉得很简单,可是自己也是经历和很久,才知道自己到底想要什么。

2、计划

计划总是理想的东西,也算是目标,没有计划可能动力就会少很多。只有合理的计划,合理的目标才能一鼓作气完成。若是不切实际,不考虑自身条件和资源特质,想做一个好的东西,结果也只能像打水漂,一个个的飘过去,最后沉入水底。

不过我们都是人在职场,身不由己,不可能有完整的时间让你做自己的事情。

因此,自己使用了迭代的方法,不至于感觉到自己的想法太过渺茫。

1)、制定一个简单的框架

2)、建立后台查询webservice接口,能够查询数据列表,和文件位置。

3)、实现小文本书籍程序(一个唐诗三百首的简单程序)

4)、实现大文本书籍阅读(四大名著翻阅)

5)、实现新闻组阅读

6)、对几个小程序进行集成。

7)、后台使用sqlite数据库,支持基本数据存储。前台使用sqlite实现数据缓存支持离线阅读。

每一步都需要都需要在尽可能集中的时间尽快完成,不然就可能被打断。

3、构架

所谓麻雀虽小,五脏俱全,即便它很小,该有的总还是要有,只不过是缩减版。

做这个小程序,需要申请一个云服务器,最简单的那种,1元/天,作为学习和实验已经够用。不过所有的东西都要省着用,计算资源,网络资源依然是个负担,能不用尽量不用。有点像大城市的房子,如果只有巴掌大的地方,那么每个地方都要省着用。

如果从较大的视野看,这个程序算起来也实在是小,无外乎就是租用一个外部服务器,然后做一个webservice服务,然后在app上把数据展示出来。没有负载均衡,没有用大型数据库,没有文件服务器,没有复杂的业务逻辑,甚至也不敢采用未知的技术,然而就是这么说起来的一点点东西,那么实现其中的那么一点点,也是不容易的事情。

若是一定要说说框架,那就是:

  1. 软件采用webservice+app的结构,服务器采用spring+cxf通用构架,app采用mvp通用框架。
  2. 硬件从同单服务器+android设备
  3. 数据采用文件服务器+sqlite+数据缓存。

4、技术

受限于资源,不可能把程序做的很大,所用的技术也不用最新,深度难度深度不大,所求的不过是一个完整可用的程序。

这个程序没有使用H5,没有使用JNI,仅仅使用java去完成服务端和客户端的整个程序。

这个过程中依然遇到了一些通用的技术,比如:

服务器的搭建,tomcat的安装部署,spring+cxf服务搭建,日志部署,mybatis+sqlite的使用,json对象转换,MyBatisGeneratorTool表映射,数据查询,文本文件压缩加密分割等。

App框架选用,restful接口访问,分辨率自适应,程序升级,版本管理,阅读翻页,数据缓存,标签处理,greendao数据映射,数据列表拖动,以及各种各样的界面问题。

只要程序向前走总会遇到各种问题,而且一旦程序规模达到一定程序,那就不能随意的更改,只能是更加小心,实现备份,并且先进性适当的规划和预研才可以动手。

5、过程

软件开发的过程总是反反复复,想做的,设计的,实际完成的总会有很多的出入。今天想到的,明天可能有不同,实际做的时候,又发现因为其他的原因导致需要变通的去做。

从资源,时间和精力来说,在没有外力的情况下,一个人想把东西做好,可能性很小,那就存在适度的问题,到底做到何种程度才算结束,才算是一个里程碑。

我想基本上够用即可,不需要太多的功能,灵活的技巧,炫目的界面,自我认为可以了就结束了,毕竟这不是一个商业软件。

程序做到一定时间,或者环境和心理发生,或许暂时不适合继续做下去了,适当停一停。

预先想的索引,分类,黑夜模式,订阅处理,html缓存和截取,界面优化,添加评论,添加注解,更多配置,自定义添加文章,自定义插件,安全加固等等,都是没有做的。

6、总结

把这个小程序做一个结,虽然还有大量的想法没有实现,但没有关系了,以后有时间再说。

有时候坚持了,未必能够实现什么,若是能够实现什么,哪怕并不好,其实也没什么。做软件这一行,有时候感觉还不如卖包子,毕竟好与不好,都会有人去买,满足了别人的肚子也算是对世界的贡献。而我们呢,有时候做了很久也是对世界没什么贡献的。

做程序员这么久,反过来好像也没什么进步,如果他也能像个包子店,或许还是一件好事,但是它不是。如果自己的东西真的能够变成一个包子,其实倒也不错,也只能这么想了。

无厘头的说了这么多,也不见得会有人看,不过姑且作为对自己说的吧。井底之蛙让看官见笑了。

贴上apk网址,也许以后还会继续开发,有兴趣的朋友可以提点意见。

微澜电子书

https://pan.baidu.com/s/1VteoUBsas0XTlv4APiHcAA

前期两个铺垫

唐诗三百首

https://pan.baidu.com/s/1ey68_FjdwV2jr8txYGW80w

四大名著

https://pan.baidu.com/s/1teB1MODF5ntCW9_-miunsQ

记一个简单Android图书阅读器的制作过程相关推荐

  1. WCF+Silverlight一个简单的RSS阅读器(二)

    嘿嘿,坚持不懈,继续我的Silverlight之旅,创建了WCF服务,我们需要的是通过Silverlight能够应用这个服务, 比起2005,2008的服务引用做的好多了,上图: 通过右边的Disco ...

  2. 一个简单的Arm开发板的制作过程

    2019独角兽企业重金招聘Python工程师标准>>> http://www.linuxidc.com/Linux/2011-02/32771.htm 转载于:https://my. ...

  3. 新版超简单的PDF阅读器

    原文地址:http://blog.csdn.net/BingHongChaZuoAn/article/details/52213611 本PDF阅读器的开发是基于android23版本的,其他版本暂时 ...

  4. 如何使用aframe.js构建一个简单的VR播放器

    在当今这个信息化的时代,虚拟现实(VR)已经开始逐渐成为一种新的生活方式.作为一名前端开发工程师,在学习和探索VR技术方面,aframe.js是一个非常有趣和有用的工具.在本文中,我将介绍如何使用af ...

  5. Android开发做一个简单的音乐播放器

    Android开发如何做一个简单的音乐播放器,首先我们先要知道用到的知识点有哪些. 1.MediaPlayer:可以播放本地资源.sd卡内存资源以及网络uri资源,在这里我们播放sd卡上的音乐资源. ...

  6. Android小说阅读器

    这是早期做的一个 android小说阅读器项目,是本地阅读器,没有联网功能,目前只支持txt格式. 但项目功能是比较齐全的: 文件预览 导入书籍 创建分类 批量管理书架上的图书 小说阅读 查看书籍目录 ...

  7. Android 文本阅读器源代码 学习

    1 来源 http://www.apkbus.com/android-83021-1-1.html 从这个地方下载了一个android 文本阅读器,比较简单,稍微分析以下. 2 代码不是很难,记录以下 ...

  8. Android Rss阅读器

    前言 前几天去北京面试,题目是让我解析一下腾讯的Rss.之前虽然知道xml,但是自己从来没有去学习怎么解析,在网上查一些例子,但是就是没有解析出来.现在看看还蛮好笑的,因为我那时候是使用sax解析xm ...

  9. C#入门学习-----图书阅读器(WPF 用户控件技术)

    欢迎大家提出意见,一起讨论! 转载请标明是引用于 http://blog.csdn.net/chenyujing1234 需要源码请与我联系. 编译平台:VS2008 + .Net Framework ...

最新文章

  1. 对象存储HTML自定义属性,设置对象属性_对象存储服务 OBS_SDK参考_Node.js_上传对象_华为云...
  2. java 泛型反射_Java使用反射来获取泛型信息示例
  3. NMAP分布式扫描工具dnmap
  4. 安卓使用 HTTP 协议访问网络
  5. linux tar压缩包目录,如何在Linux上使用tar命令解压和压缩文件
  6. Docker手动构建 nginx+py3+uwsgi环境
  7. 论文浅尝 | 端到端神经视觉问答之上的显式推理
  8. 微软为Win11用户更新了剪贴工具、计算器以及邮件和日历应用
  9. 你与顶级架构师的差距,可能就在这个数据中台解决方案
  10. ettercap dns_spoof
  11. [渝粤教育] 泉州师范学院 弦管传奇 古乐南音 参考 资料
  12. 亏损208亿,滴滴橙心优选裁员关停!曾融资12亿,最高估值320亿
  13. 400电话查询php,PHP 匹配电话,手机,400号码 函数 及正则。很管用。
  14. 搭建一个开发Predix软件的Windows系统(1)准备工作
  15. 如何理解几何分布与指数分布的无记忆性?
  16. WIN2003 R2安装EPSON6200L打印机问题解决
  17. 数据挖掘并不遥远( 转载)
  18. SQL入门-连结(JOIN)
  19. CAD中遇到几个奇怪问题的解决
  20. TFT-lCD的常见接口介绍

热门文章

  1. js打印window.print()图片打印
  2. 它是三大历史文献之一,明明价值连城,却被当做一堆废纸
  3. 全球与中国多模连续光纤激光器市场现状及未来发展趋势
  4. densefusion代码
  5. Oracle从入门到精通(笔记)
  6. Linux自定义日志文件设置回滚(避免信息溢出)
  7. JSR303校验使用
  8. Android端+java后端+servlet+MySQL的型男塑造平台【前后端源代码+论文+答辩ppt】
  9. lambda分组集合中list和set区别
  10. 28岁功能测试被辞,最后结局令人感慨...