致Zr.孜然阅读器的开发过程(纪念)

致Zr.孜然阅读器的开发过程


主要原因

 第一时间想知道最新的主题订阅资讯
 迫切想证实自己是否具备独立开发能力
 一种对已知技术知识汇总后的结晶
 不想故步自封,屹立在原地,随着时间的推进,而逐渐被后退

主要目标

 对于应用开发流程更深入思考其存在的前后关系,存在与否的取舍。
 对于技术知识系统化的积累与沉淀
 理解对于项目整体研发历程的心理变化

1、 物质的稀缺与精神世界的匮乏,迫使我们需要做出一些东西来证明自己,这种想法在心底隐隐发作

最初的想法就是想做一款应用,没有被各个大厂垄断的,某个领域没有独角兽,又具备功能内容丰富,最核心的就是具有一定的固有价值,不轻浮,不浮躁,也不盲从,就像自己的性格一样,像石头希望坚实而又笃定。
这里写图片描述
一场变故,原本平稳的生活突然之间陷入了无穷无尽的折磨与痛苦之中,迫切的促使要时刻知道关于发生这一切的源头,搜寻一切与之相关的资讯新闻,因为自己的预估与判断这种事情将会随时间而土崩瓦解。就是在这种背景下,我找到了一个词RSS,就是这个词一个由陌生到熟悉的一个词出现在我的视野内,对于一个普通技术人员来说这个词还是很陌生的,虽有耳闻却不知其意为何。后来有一定的理解以后发现,通过rss阅读器可以更好的个性化订阅自己感兴趣的资讯、博客、甚至视频内容都可以,仿佛一切都可以聚合在这么一个小小的应用内,而且可以省去打开门户网站浏览资讯多余的步骤,滤去杂质,醉心阅读。通过进一步的深入了解发现像鲜果、虾米这样的划时代产品,却在2014年google reader宣布关闭后,逐渐的被时代跨过去了,有人惊叹到一个时代的终结,以致他们将这种优质的服务体验或者传统继续延续或传承着,或只为保持最初的那一抹平实而又可贵的品质;也有人惊叹到一个新时代的开启,他们走在时代前沿,将PC时代的辉煌成就转移到智能移动设备上,以致我们今天看到的今日头条、即刻、一点资讯为代表的移动互联网时代明星产品。其实我们仔细观察当今时代流行的这类产品说是颠覆、智能推介、场景推荐,始终离不开内容的生产者与内容消费者的关系,回退2014年前看,其实也是这样一种关系,需要认识到真正的生产者与消费者依然还是那一群人,或许有一天内容生产者由人变成了人工智能,或许这种打破原有的关系后会变成真正意义上的颠覆。回归原点,伟大需要真实,弱小也需要尊重,无论身在何处,需要发出我们自己的心声,坚守本心。

2、当工作进入到一定的阶段时,人的内心其实是极其空乏与悲观的

这种状态在我们这种不温不火的工作节奏中,现实收入与理想收入有巨大的差距,你也明白你也自知,原因就扔在那里,看你是否正视并解除束缚,可能会是有气无力的工作消磨了我们拼搏的意志,其实仔细想想何尝又不是我们懒惰无力的意志消磨了一份极具潜质的工作呢。我们停下来时,节奏放慢时,不知觉间感觉时间也跟随我们在放慢脚步,左右漫步,眺望远方,低头徘徊,孤影随行,何尝又不是寂寥空乏呢,看不到豁达,总是错过日出,与夕阳勇行,失意与无助,走不出困境,却依然拼命的倔强。
这里写图片描述
当有一天你想明白了,只要你不再错过日出,告别夕阳,与星辰做伴,重塑重构一切都会注入新的活力,换个姿势再活一次。
在开发过程中也是会遇到很多问题,技术上难免会引用到一些优秀的开源项目,如解析rss协议的rome开源框架,支持多种rss标准解析 [RSS(0.90、0.91、 0.92、0.93、0.94、1.0、2.0)、(Atom 0.3 、 Atom 1.0)],同时通过属性配置文件可以处理日期格式无法解析的问题,通过参考别人的项目也能帮助你解决如有关白色状态栏文字反色的实现,还有通过系统自带的Api实现夜间模式的切换,并不是一味地复制,而是理解到怎么用的,看看官方文档,甚至阅读源码来帮助解决问题。知识就是这样一点一点的积攒,等待集中投入实践到下一个应用。当你能理解到一定程度后,就可以开始探究其所以然了。

3、流淌在骨子里那种坚韧不屈的生命力,一款产品从0到1的心理过程

应用开发初期还是按照自己的一套逻辑,拟定一份精简的需求提纲逐步的填充内容,这个过程需要反复的思考rss阅读器的本质是什么?信息源聚合,个性化订阅,缩短读者与资讯的距离,对优质干净内容的要求,符合个人意志。同时还需要去了解去体验同类产品解决了什么样的问题,突出点在什么地方,有哪些原始需求,这些都是为你写出符合实际需求而埋下的最重要的两个伏笔。
需求出来后需要着力的做一个符合需求的功能思维导图,也是按照设定界面的主要的功能菜单,然后根据菜单一级极细化子菜单,越详细越好,基本上就是确定整个应用的龙骨,也是后面的行动指南,通过反复的修正直至趋于想要的样子。
这里写图片描述
着手开发时会按照这个龙骨搭建主体骨架,早期我是想做三个底部菜单,后来发现实际搭建出demo后很难接受的就是顶部左右两个界面元素对应下面三个奇数菜单,总感觉两边无法对齐,视觉就像三角形上面套了个帽子,所以就改了,改成四个菜单,接入[发现]菜单推荐一些常用的源主题,同时也为首页内容的出现有了第一手的数据支撑,否则首页凭空出现内容就会感觉太过刻意强加给用户。
最困难的就是ui这块,我尽量的避免用太多的图去装饰和修饰,而是采用阴影和卡片圆角,系统主题集中配置了白天和黑夜两套,采用Materail design推荐的一些基本规则对齐边距16dp与间距10dp及阴影宽度圆角4dp,字体按照偶数倍进行配置。这样下来用到图的地方还是难免会存在,最后通过阿里的图标素材库,解决了基础图标问题。剩下logo 和引导页图,设计logo时按照圆角,文字,背景属性,字体几种元素叠加出了现在的样子。很多东西没有办法非常完美,创造时只有靠模仿套路学习,最后差强人意。

这里写图片描述 这里写图片描述这里写图片描述
这里写图片描述
这里写图片描述
最后要说到源码实现,最开始采用最新的框架retorfit+RxJava结合mvp架构感觉这是最好的组合,不用担心网络访问层这块的代码,结合mvp架构模式更好的组织代码层次。
retorfit+RxJava只是网络请求这块结合调用,未有用到极致,现有的逻辑业务也没到达那个程度,不过有点心得的就是对于mvp的理解有加深,在m层间接的被retorfit+RxJava接替,真正意义上的是p层和v层,在p层尽量将所有涉及到的参数提供接口调用逻辑与回调,并进行合理的组织,所有涉及到操作ui的操作全部通过iview里面的接口进行传递到v层,这样尽可能的与ui元素的操作隔离开,保持其独立性。

刚开始每次开发完一个功能,例如集成二维码,都会分享给好友体验,刚开始还是能收到一些反馈,后面接二连三新出的功能给好友体验时,慢慢的这种反馈越来越弱越来越久。后来我终于明白了,人的好奇感面对越来越清晰的事物时,会形成一种推测后的模样,逐渐的这种新创造所带来的未知越来越少,知道的越来越多,这种探索的过程将会逐渐褪去最初的那份纯真,也叫一种欣赏能力的成熟,一切又开始回归到一种更高阶平静的状态,接下来的就是一个人的独立奋战,自我实现,自我体验,回馈自己,列出必要修改项,修复,测试,再列出必要修改项,再修复,测试如此循环几个来回,发现提交已经快上300了,时间就是这样,也是你自己终于对自己说我终于做完了,然后一阵沉默,着手接下来打包部署的后续事情。
整个项目启动到结束耗时7个月,利用业余时间独立完成,包括后端、采集端、app三部分。

4、每一次创造都是一次对于未知的探索
这里写图片描述
你不知道接下来将要被创造出来的东西会是什么样子,当一点点做出来的时候你才逐渐开始感知到它的存在与特别。
这种深刻的体会很难诉诸文字,它并不是复刻品,而是一种诞生,你的雕琢粉饰决定了它的外在,源码架构为其注入了灵魂,就像是上帝的杰作,把它带到了这个世界上。

5、认识局限,不孤注一掷

朋友异样的眼光,甚至言语的不屑反击,都那么刺痛着你那颗充满斗志的小心脏。
重复着这么一个古老的东西,这件事做下去是否真有其做下去的意义,或许一点意义也没有,也许正是因为一点意义也没有这才是其最有意义的一面。
当我刻意寻找rss这种订阅模式的缺点时,确实发现了它的一些致命缺陷,这也使我后来做了swat分析,把它的优缺点都整理了一遍。

有时候搜索引擎真的很奇妙,当我们要搜索它的缺点时总会搜到很多缺点,同时我们搜索优点时又会发现搜索出很多优点,这时候优缺点同时出现了,可能会犹豫,这属正常,犹豫后能坚定一个想法就对了,要不然这个坚定也就没有任何支撑的理由了。当我们知道局限后,不孤注一掷就可以啦,你的初衷就是为了解决你最初的那个原始需求,同时做出来后你发现还可以方便其他人,挺好的助人助己,应用的价值就这样自然而然的被发挥出来。

6、名字的由来

英文名 Zr ,中文名 孜然阅读器 ,Zr取孜然首字母组合而来,意为:孜孜不倦,阅读时的一种自然状态。

酷安下载地址:去下载
240827更新,重写为纯离线版本,彻底摆脱了对服务器的依赖:
GooglePlay下载地址:去下载

微信公众号一粒尘埃的漫旅
里面有很多想对大家说的话,就像和朋友聊聊天。
写代码,做设计,聊生活,聊工作,聊职场。
我见到的世界是什么样子的?
搜索关注我吧。
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值