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

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

微澜 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

  

  • 10
    点赞
  • 30
    收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论 1

打赏作者

微澜-

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值