linpeng blog iOS Engineer

简介

热爱运动,热爱编码,对网络技术充满兴趣,闲暇喜欢抓包,逆向ipa,程序注入(给一些app额外加点小功能)等等,这些小玩意能给我带来许多乐趣与成就感

ipa逆向

最近突然对ipa逆向十分感兴趣,通过MoneyDev,Class-dump,Reveal,来简单的揭开知名App的面纱,有的App看图层就能大概知道是一个新手瞎做的, 图层混乱,抓包查看接口也都是明文传输,但是有的App不管是接口,还是本社App搭建还是很不错的,命名也很规范(很容易就知道按钮事件/页面跳转),简单的注入一些代码还是挺有意思的, 但是要深入,需要花大量的精力去学习编译器原理汇编等知识,逆向了人家ipa之后,也得反思一下自己做的App是否有安全考虑。

组件化思考

随着公司业务的不断发展,项目的功能越来越复杂,各个业务代码耦合也越来越多,代码量也是急剧增加, 传统的MVC或者MVVM架构已经无法高效的管理工程代码,因此需要用一种技术来更好地管理工程, 而组件化(也可称为模块化)是一种能够解决代码耦合的技术。项目经过组件化的拆分,不仅可以解决代码耦合的问题, 还可以增强代码的复用性,工程的易管理性等等。
方案一、url-block, 方案二、protocol-class, 方案三、target-action, 组件化是项目架构层面的技术,不是所有项目都适合组件化,组件化一般针对的是大中型的项目,并且是多人开发。如果,项目比较小,开发人员比较少,确实不太适合组件化,因为这时的组件化可能带来的不是便捷,而是增加了开发的工作量。另外,组件化过程也要考虑团队的情况,总之,根据目前项目的情况作出最合适的技术选型。没有最好的技术,只有最合适的技术

mvc,mvvm选型

MVC的设计模式也并非是病入膏肓,无药可救的架构,最起码目前MVC设计模式仍旧是iOS开发的主流框架,存在即合理。针对文章所述的弊端,我们依旧有许多可行的方法去避免和解决,从而打造一个轻量级的ViewController。 MVVM是MVC的升级版,完全兼容当前的MVC架构,MVVM虽然促进了UI 代码与业务逻辑的分离,一定程度上减轻了ViewController的臃肿度,但是View和ViewModel之间的数据绑定使得 MVVM变得复杂和难用了,如果我们不能更好的驾驭两者之间的数据绑定,同样会造成Controller 代码过于复杂,代码逻辑不易维护的问题。 一个轻量级的ViewController是基于MVC和MVVM模式进行代码职责的分离而打造的。MVC和MVVM有优点也有缺点,但缺点在他们所带来的好处面前时不值一提的。他们的低耦合性,封装性,可测试性,可维护性和多人协作便利大大提高了开法效率。 同时,我们需要保持的是一个拥抱变化的心,以及理性分析的态度。在新技术的面前,不盲从,也不守旧,一切的决策都应该建立在认真分析的基础上,这样才能应对技术的变化。

ios设计模式

最近小组要轮流做分享,不知道要讲主题,所以找了这个主题,23中设计模式的ios实现具体在简书上,以及开发中场景的场景 简书