12个月开发12个APP挑战V2.0 总结
时间确如白驹过隙,年轻的时候总是不理解,这一年我却是实实在在的感觉到了。
沉醉于小棉袄的降生,记录她日新月异(字面意义)的变化,等我发现已经到了本次挑战时限的时候,甚至怀疑自己电脑的本地时间乱掉了。
我这么说只是客观的表述一下自己对时光匆匆的讶异,并无任何找借口的意思,实际上,本次挑战要比V1成功得多。
在V1.0的挑战中,整整一年我并未开发任何新的APP,仅仅是补全了标日中级的内容,从规则来看,我是挂了个零蛋的,而在过去的一年,我则是完成了两个新的APP。
标日高级iOS(目前更新了两个单元)
ProgressDash Mac版(目前被苹果审核打回了,我需要补全一下隐私政策之类的policy link,不过既然程序已经完成了,我就把它算在V2的成果中也无不妥)
实际上,这一年真正的成果并不是这两个APP,而是一系列的突破。
首先,ProgressDash不止是新推出了Mac版,iOS版也进行了一个大的升级(因为隐私政策的原因,目前也在打回重改中)。而比起这些业务代码上的完善,第一次真正从零开始完成一个Mac应用才是真正的收获。因为中文互联网上关于Mac开发的资料实在是乏善可陈,导致我一度非常抗拒对这个平台进行支持,但内心中我其实对桌面版app抱有非常大的期望,毕竟与手机端相比,自然流量的竞争会小得多。索性这次借着产假的机会(我们公司男女产假相同,不得不说老牌资本主义还是有可其取之处的,当然我本人是坚定的社会主义拥趸,并且真心希望有一天我们国家也有能做到如此的公司,最好那个公司还是我开的),靠着三脚猫的文档阅读能力+科学上网魔法,终于是完成了对Mac开发零的突破,为以后其他APP的拓展做好了铺垫。同时也尝试第一次用swiftUI来完成自己的产品(iOS版还是用的UIKit,历史遗留问题)。
第二个突破是对HTML Canvas的使用,在V1挑战的时候我曾经提过一嘴,希望在自己的APP中增加对思维导图的支持,当时的想法是利用成品的源码进行定制化的魔改。但实际装配的时候感觉并非良策,首先我千挑万选出的源码,最后制成的思维导图并不是纯canvas的,里面的每个节点仍是html组件,这就有了一个隐患,如果客户建了很大的一个导图,渲染时的开销会非常可观。其次是代码阅读实在是让人头疼,这里不是修辞,我在阅读的时候真的诱发了两次偏头痛。前端的代码文件很少,往往一个js文件里面有上千行,而且命名方式极其血腥,我本身并不是前端的专家,但是我下载的源码基本都是如此,如果这真是前端开发的最佳实践,不得不说我是十分敬佩的。废话到此为止,总之我最后的结论是不如自己从头写一个来的省心,于是再次从头学习,目前做出了一点眉目,但我话不能说的太死,往往我太过得意忘形时结果总是不尽如人意,那么我这里还是不犯口业的好。
第三个突破是在android方面的,一般来说标日笔记的iOS和Android总是同一时间出的,因为基础架构已经完成,只要导入内容就好,但是这次V2的挑战中为什么只有iOS版呢,是因为我不喜欢吗?是的。我不喜欢。Android一直以来无论收益还是用户量都远低于iOS,但为此我要花同样的精力来维护一套代码,这本身是非常低效的,但为了更全面的推广,全平台似乎又是不可或缺的。那么不如趁着现在Android还没有真正的收益,拿这个项目来多多练习,才是更聪明的做法。基于此想法,我决定把标日笔记的Android版全部用compose来重写。目前也是写了一些,但就像我前文提到的,我不能把话说的太死。
总结到这里,基本已经没什么好说的了,但我还想说点题外话。用compose来重写Android,本身并不是技术上的追求,而是因为同为声明式UI框架,我希望它跟swiftUI有一种类似java与C#那样的近亲关系,不出五服最好,我必然狂喜至癫。可惜的是,理念相近,写法却各有千秋。
这也是我说这次重写并不是技术上的追求的原因。长久以来,码农们总是被迫热爱学习,热爱技术,似乎技术更新换代快,不终身学习就要被淘汰反而是一种可以拿来沾沾自喜的表彰。我是很不以为然的。这些所谓的技术,若真能解放生产力,我肯定是没什么抱怨的。但更多的情况,只是大厂的内部API罢了。就比如compose与swiftUI,java与C#,又或者是前端层出不穷的“框架”。上面的神仙们追求着影响力,或是自身业务的垄断力,推出各种新的语言,框架。如果只是这样也就罢了,还要放弃对旧内容的支持,逼迫着我们这些“平民”熬心熬力的追着他们的屁股跑,吃了一嘴的沙子和臭屁。如果这时候出一个秦始皇一样的人物,搞个大一统,肯定也能写进历史书的,只不过在网络时代,注定是不可能的了。
有些“平民”是很开心的,觉得这样就有了行业壁垒,虽然跑的辛苦,也算是个稳定的生计。我倒觉得壁垒应该是靠深度堆积的,而不是数量。何况数量也不多,每次流行的东西就那么几样,你说古往今来你学了很多,有什么用,人家早不支持了!新来的人,学了流行的几样,一样能写点东西出来,至于好不好,练练总会好的。所以说来说去,软件开发作为完全有人类从零创造出来的“科学”,注定无法真正的严谨明确,作为从业者,我认为,早点认识到自己所做的是“工程”而不是“艺术”,所追求的是“实用”而不是“真理”比较好。
当然我本身水平实在低微,可能说的也全是放屁,上学的时候就没有好好学习,毕业了混了几年公司就觉得自己明悟了实在不自量力。所以上面所说,全是我的自省。
希望接下来的V3.0挑战,我能多做几个实用的产品,少被人逼迫着吃一些臭屁就好了。
V3.0挑战的规则与V2.0相同,就不再赘述了。