iOS项目安装包瘦身—OpenShare从三方登录,分享,支付开始
前言
系统瘦身是老生常谈的问题,以笔者自己公司的app为例子,功能和业务逻辑病不复杂,但是在没有瘦身之前,引入微信和支付宝官方的SDK,项目增加了60M多,更不要说还没有引入的微博,QQ等其他主流的分享了. 因此,项目打包之后的.ipa文件到了神奇的58M,售后部门在下载的时候颇多抱怨. 我想开发者看到这种情形,自己也不好意思.
那么,项目瘦身,势在必行了.
从哪些方面瘦身
之前看到给朋友安特我的一篇文章《iOS安装包瘦身指南》,这篇文章列举了iOS项目可以瘦身的地方,文章最后,指出了引入第三方完成一些功能所要实现的代价.尤其是这句话,值得我们重视:
引入第三方库要慎重评估是否值得,有时候为了一个功能引入了一个很大的第三库,造成ipa size的显著增加,但是其实你只用到了其中一小部分功能,这个时候可以考虑自己实现其功能,而不是引入该库。
这篇文章就是从引入第三方的角度,给大家推荐一个开源项目.
OpenShare
先上项目地址:OpenShare
简单的介绍下,OpenShare是作者因为上述原因,所以专门调试了一下各个平台的SDK,研究了各个厂商实现的应用程序间通信的规则,在不使用官方SDK的基础上,对官方SDK提供的
- 登录
- 分享
- 支付
三个核心功能的封装. 其设计思路,在作者的项目介绍和相关文章中提供了详细的说明.我这里就不赘述了.
但是OpenShare并没有对界面进行,另外相对我们自己的项目,它其实也还是第三方,所以,我依然对其进行了简单的封装,并且模仿即刻的分享界面增加了分享界面.
关于使用方面,作者的Demo中使用其实已经足够简单,我这里只是以微信分享为例子,进行了封装,其余的平台,大家可以自行在其上边扩展.
封装
分享注意点
关于分享的各个注意点和可能出现的问题,我之前也写过《shareSDK的 Demo 和社会化分享小结》 和示例代码LLShareSDKTool,关于这一部分,大家可以移步看这里.注册分享参数
关于分享参数的注册,并没有放到Appdelegate文件中,尽可能的减少对程序启动的干扰,什么时候用到什么调用.
另外,在之前的LLShareSDKTool
中和Miss唐的友盟分享
中,点击分享之后再注册,会有1~2秒的卡顿,不知道是不是这两个三方分享集成平台自身对官方SDK处理不合理的问题.
重点来了,在OpenShare则不会出现这种问题.
分享,分享回调.
根据分享的内容,调用具体的分享方法,分享完毕后,获取分享的回调.调用分享界面
注册分享参数完成之后,直接调用分享界面就可以执行分享了.
所以整个使用代码就是
//1. 注册分享参数
[LLOpenShareTool sharedInstance] registerShareWeChatWithAppID:@xxx" sinaWithAppKey:@"xxx" QQWithAppKey:@"xxx"];
//2. 调用分享方法,这里以分享链接为例子
[[LLOpenShareTool sharedInstance] WeChatShareURLWithTitle:@"分享链接" shareURL:@"www.lilongcnc.cc" urlImage:[UIImage imageNamed:@"test"] successFromChat:^{
NSLog(@"分享链接成功");
} failureFromChat:^(NSString *failureInfo) {
NSLog(@"分享链接失败:%@",failureInfo);
} successFromFriend:^{
NSLog(@"分享链接成功");
} failureFromFriend:^(NSString *failureInfo) {
NSLog(@"分享链接失败:%@",failureInfo);
}];
//3. 调用分享界面
[[LLOpenShareTool sharedInstance] show];
项目的完整地址: LLOpenShareTool
交流
希望能和大家交流技术
GitHub:https://github.com/lilongcnc
Blog:http://www.lilongcnc.cc