移动端(iOS)SDK开发注意点

SDK开发相关的知识网上没有太细致的总结,下面根据自己的经验总结一下:

SDK开发怎么做到更专业?

不管内部代码多么混乱、没有层次、不专业,但是提交给他人的sdk(头文件+库)要保证足够的专业性,简单来说就是一句话:

sdk开发就是在保证sdk源代码不外露的情况,给开发者一个可方便快速接入的,兼容多个iOS系统、真机模拟器调试、可以上线AppStore的库。
这一句话包含的信息量甚多,最大前提就是没有bug我就不说了(尽量做到吧)......
下面根据过程详细分解下:

一. 代码阶段:
这一阶段保证我们的代码首先是好看、专业( 接口设计合理 )、其实一定要保证独一无二( 命名规范 ,如果做不好命名的规范,将会导致跟开发者(使用你的sdk的人)的代码造成冲突(duplicate...类似的错误)

1. 接口设计合理,参考:http://blog.csdn.net/weiwenhp/article/details/8676211

2. 根据自己sdk性质或者公司性质启用一个通用前缀,这个前缀要用在 宏定义、类名、category等地方;

3. 第三方库的独一无二:
关于第三方库是否放在sdk中有两种声音,同意放在sdk中是考虑不需要开发者再去找第三方库,不同意的是考虑第三方库可能冲突,可能包含bug....  我的想法是放在sdk中,方便开发者,那就需要减少冲突的可能,避免bug。为了避免冲突需要修改第三方库的类名及其中的宏定义等名字,加上固定不易混淆的前缀。

4. 完备的参数校验: 对使用sdk开发的开发者的各种使用case、各种输入参数都有足够的错误反馈,让开发者及时知道错在哪,怎么改,这样才能提高接入sdk的效率。

二. 编译阶段:
SDK开发产物有两类,一类是头文件+.a库,一类是framework, 其实framework也就是头文件+库文件的组合。

1. 首先修改编译选项 mach-o,保证编译产物是静态库。
.a文件就是静态库但是framework又分静态库和动态库,apple规定上线AppStore的ipa包含的第三方库,只有系统库允许是动态库(例如libxml.dylib),其余必须是静态库。

2.. 架构支持,支持各个架构armv7、armv7s、arm64(没有这个架构不能上线)、i386,并且要模拟器真机合并;

3. sdk支持的ios系统版本支持需要尽量小,如ios7、ios6。 
尽管ios7以前的使用者不足5%,但是开发者的产品难免要考虑覆盖率,所以sdk要做好准备。

4. 做好头文件的暴露,内部文件不要暴露。 通常只让开发者看到他们会用到的头文件及方法,内部使用的所有属性、方法、头文件都不要暴露。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值