我的程序员之路(11)——离职3
北京第三次离职,合同终止于2016年12月9日,12日上午11点多从工作了将近四年的公司匆忙离职,中午之前到达新公司。
2013年1月5日入职这家公司,将近四年做过应用开发,也做过SDK开发,甚至做过游戏开发 ,涉及Unity引擎和cocos2d-x引擎。
刚入职时,一个人做iOS应用开发半年多。其中一个项目是应用排行榜,由于苹果对排行榜的限制,后改为游戏资讯类。另一个是电子书城,umd格式的电子书解析器基本上没有,只好照着格式说明自己写解析器,分享在了github上,https://github.com/yjh4866/UMDReader。2015年两个人一起做应用开发,开发了一元夺宝类应用,和新闻阅读类应用。比较郁闷的是,两周左右一个版本催得很急,没有项目经理,完全由我们客户端推动,缺UI自己去催UI,缺服务器自己去催服务器,而服务器同学同时参与多个项目,不能按时完成问责客户端。而后那个同事离职,我转SDK开发,再也不想插手应用开发。
参与广告平台开发是2013年后半年的事。两个人一起做PunchBox广告平台iOS版SDK。原PunchBox只是内部开发者使用,8月份左右才给普通开发者开放注册。十月份开始整个广告平台重新架构设计,每种广告类型自成一个模块以减少广告类型间的耦合。做SDK开发主要的收获算是多Target开发,脚本打包。多Target开发的好处是一套代码发布多个包时分别定义各Target的宏即可控制代码编译,不需要改动代码,也可以设定参与编译的文件,可以指定生成的头文件。脚本打包一方面是省去了多个包的频繁编译操作,另一方面省去了模拟器包与真机包的合并操作,执行脚本即可。不再支持iOS5以下版本后不再使用JSONKit直接使用苹果官方解析器即可。学习AFNetworking源码后精简升级了网络层,github上分享了源码SimplifiedAFN,也以此初步学习并会使用GCD了。
2016年对自家广告平台进行了多方面升级,同时开发聚合SDK,对多家广告平台的适配和时间段分配有了深入理解。
自学过Unity引擎,2014年年底维护公司游戏《疯狂攀岩家》。这款游戏之前上过榜,自然下载量还不错,但在iOS8上游戏无法正常运行,通过打印log的方式多次打包到设备上运行缩小crash(Unity级别的crash,游戏本身不会闪退)范围才最终锁定bug,发现是缓存目录生成方案错误,因为iOS8之前app安装在沙盒目录下。2D画面是EZGUI引擎,Unity引擎已升级到4.x,按钮居然无法点击,后来发现是EZGUI只支持3.x,把EZGUI关于Unity引擎版本适配部分的代码强行改为适配4.x才解决这个问题。适配iOS8,接入自家广告。
有C++基础,也学习过cocos2d-x引擎,维护过公司另一款2dx引擎的游戏,并接入自家广告。
自己学习方面,2013年Unity3D免费,学习了一下Unity3D引擎,拼凑设计并上架了5款小游戏,其中有一款是小鸟。也学习了cocos2d-x引擎并发布了两款游戏,其中一款是俄罗斯方块的游戏,人机对战版本(AI部分是自己实现的,分享在Cocos并因分享数和阅读数获得了机械键盘)。后来学习CocosStudio并最终更新了九宫格拼图的游戏,UI方面终于上了一个台阶。CocosStudio最终被触控放弃了,出了款新的游戏编辑器CocosCreator,看上去很爽,像是照搬Unity的设计,很想学习一下。2016年后半年用苹果的游戏引擎SpriteKit简单实现了一款游戏。
UI方面,终于下决心学习了一下Sketch,做了一款聊天的应用。不需要服务器,用户跟机器人聊天即可,机器人是第三方SDK,哈哈。意外接触到SketchUp,是做3D模型的软件,看视频学习了一下,准备把用户量比较大的那款游戏的3D模型用SketchUp设计一下更新个版本,相信用户量留存率会提高些。
最新四年进步还是比较大的,iOS方面SDK开发经验比较丰富了,应用开发也有不小的进步。我想最大的进步应该是游戏方面,初步学会了Unity3D,Cocos2d-x,SpriteKit。会了些CocosStudio,不过没什么意义,这款编辑器已经被触控废弃了,得学会CocosCreator才行。UI方面有了进步,基本学会了Sketch。SketchUp也学会了,以后做3D游戏可以不用拼凑3D模型了。相信自学的这些对以后会很有益处。