这个月应该是我做iOS的第一个年头。
从最早的java菜鸟,到如今在一家创业公司勉强算的上是iOS的负责人。写点东西去纪念一下。
去年因为个人原因在过年后离开了新疆,选择去重庆的原因仅仅是因为基友做android,于是入了iOS的大军。第一次去面试iOS开发,在这之前自己仅仅算的上写过一些demo,简单的tabbarApp,那时候自己搞不懂app架构,搞不懂MVC,去面试基本上称得上是糊里糊涂。
人品很好,当时有那么一个机会,月薪5k,这个数字在重庆个人感觉对于我当时的水平算可以了。唯一的要求是公司赶进度,需要加班赶进度。俗话说饿死胆小撑死胆大的。于是在重庆开始了自己没日没夜的加班。
对于独立开发而言,最忌讳的就是在自己不懂的时候还需要你去实现,可想而知那时候自己过得有多惨,记得很清楚的是tableview的重用机制,当时遇到的时候甚至不知道这个叫重用,只是单纯的很奇怪什么有些label上内容会重复显示。遇到一个问题最惨的不是你不知道这个问题的解决方法,而是你根本不知道这个问题是什么。。
应该差不多三个月吧,坚持了三个月。最后在离开公司的时候app却没有上线,不得不说是有点可惜。不过现在想想,那样的三个月某种程度上是自己成长最快的三个月。后来因为公司的原因选择离开,来了北京。
貌似每一个技术都离不开赶进度的命,同样的刚到一个城市,同样的加班到很晚。最开始的几个月里面一样到很晚。不过庆幸的是这时候去做东西会明显发现自己的进步。
自己是一个很能折腾的人,从公司app第一版刚上线一个礼拜,自己开始尝试的去学习如果更好的规划一个app开发,不敢说自己那时候是架构,那时候的自己只是尝试的去封装部分东西。现在看来当时封装的东西真的好shi。但是那时候自己在工作外额外的加班却是心甘情愿。
如果我没有记错的话,第一个app上线后两个月吧,严格来说三个版本。
一个是自己把网络层的东西做成离散型,不再是一个单例抛给controller去使用,而是每一个接口一个struct,然后统一的一个manager中间层,左边对应具体的网络库,右边抛出delegate。
一个是从oc转swift的完全重写。曾经纠结了很久的在swift的工程中如何实现某个oc文件调用工程中其他swift文件。。
最后一个是再把第一个离散型的东西干掉。原因是当时没想到如何解决一个问题,举例来说在A页面进行网络请求,请求中跳转至B页面。此时请求的delegate会给B而不是A,曾经粗暴的解决方式是遇到这种问题去让A强制持用manager的delegate。最后被自己干掉。
期间有件事情自己可能会记一辈子,早些时候的工程自己是创建了两个target去区分线上/线下环境,某次调试中改了正式环境的接口URL,后面悲剧的把这个提给了App Store。。引以为戒。
在这里po出一个我现在的觉得还不错的解决方式:
编译宏去区分是否为debuger
然后两个或者多个scheme去区分就好了
严格来说那个是自己第一次去按照自己的想法实现一些东西。最后却被自己亲手干掉--~
庆幸的是在今年看到了某位大神的一篇blog
iOS应用架构谈 网络层设计方案 - Casa Taloyum
里面的实现结果其实与我当时的某些想法不谋而合,在参考大神的思路后,在公司另一个新项目中,自己最终解决掉了上面说的那个问题。哈哈~
某种程度上说,选择做技术其实就是很享受这种实现了某个自己的想法后的成就感。
附一张自己公司新项目的gif图。有点类似日历排期表的东西。collectionview去实现的。同样也是自己去实现的。后面会找时间上传到git上面。
作为iOS菜鸟,实现出来蛮开心的。
创业公司有一个好玩的地方是你的角色不仅仅是一个开发者,很多时候你需要做的,思考的要远远多于一个开发者。
创业公司好玩的一点是作为一个开发者,你在公司扮演的角色却不仅仅是一个开发者,不论从某种程度上说的减少工作量来说,还是从认真负责工作来说,往往需要做的,想的要多的多
以上就是自己从事iOS一年的一些记录吧。也觉得慢慢的需要自己去记录一些东西,毕竟好记性不如烂笔头。