写sdk的心得

背景:由于公司需求,需要把公司各部门做到互联互通,于是作为支付部门的我们便被推到了风口浪尖之上,需要把我们的收银台sdk嵌入其他部门的app中;除了给自己公司部门,还为别的公司提供了支付这提服务。

编写:sdk的编写一般都是以一个单例 manger 来提供服务接口,然后不同的功能设置不同的类,以组合关系的模式互相调用完成交互。如下图:

简单的草图

典型的例子可以参考afnetworking。上图是涉及到架构层面的,架构的能力需要考虑到应用场景,以及拥有丰富的经验才能设计的妥当。我也只是班门弄斧了,多阅读源码,体会那些成熟框架,从大到分析它的架构,细到分析一次调用的数据流向,数据就像是血液,流经每一个节点,每一个节点或是对其进行封装,或是对其的处理进行回调。前辈们的代码有些稳扎稳打,有些也却是点睛之笔。站在巨人的肩膀上成长,才会成长的更快。

sdk应该注意的点:

1 . 千万注意类命名,作为sdk首要保证的是不要与人家的库有类名冲突,每次看到 duplicate  class 这个就头疼,因为我们的sdk代码是从app里扒出来的,这也是没办法的事,毕竟没给那时间去重新写,sdk还是提供UI界面的,在这第三方横行的iOS 应用中,重复的概率太高了。所以记得要给引用的第三方类库加个用不会冲突的前缀。

2.  类冲突 还是算小事,毕竟导入app中编译都过不去,最怕的是 分类(category),iOS分类是个语言特性,在编译的时候分类中的方法是要被编译到类的方法列表中的。想起恶心的来了。。。  marsory 这个库是很多写UI的人都要用的,其中可以通过两个宏 来控制属性和方法简写.mas_top ----->.top,刚好还是UIView的分类里,sdk里刚好有一个 UIView的分类,为了方便fram的设置,也加入了top bottom  width 等属性,然后就出现了方法冲突。当app调用top的时候,会从UIView的方法列中查找该方法,调用查到的第一个实现。

3.当涉及到UI界面的sdk的时候,像是导航栏字体  按钮风格 (颜色,圆角)这些都要去从plis中读取会不较好,因为这样 第三方调用就可以根据自己app的风格去配置。

4. 还有第三方的使用。。。这绝对是所有写sdk人最愁的问题,像网络请求 json处理等几乎都像是约定好了的都是 AFNetworking JSONKit。人家app里几乎都会用到,所以 sdk最好是在这里的每个类之前加一个前缀,所以 sdk最好是在这里的每个类之前加一个前缀,所以 sdk最好是在这里的每个类之前加一个前缀,这将是一个浩大的工程。。。。这也是由于objective-c语言特性决定的,没有命名空间这一说法。

还有一个 最后的办法,但是也不推荐,毕竟sdk不是只为一家而做。在上一篇文章最后有提到。。传送门

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,830评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,992评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,875评论 0 331
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,837评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,734评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,091评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,550评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,217评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,368评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,298评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,350评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,027评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,623评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,706评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,940评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,349评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,936评论 2 341

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,270评论 25 707
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 11,982评论 4 60
  • 日精进 每日任务: 每日感悟: 解决问题要跳出自己的层次,站在对手的角度找漏洞 笔杆子,学习写字系统,培养核心竞争...
    17d29357f903阅读 167评论 0 0
  • 他打了我的茉莉, 它慌张 它逃跑, 误入黑色的公路, 货车从它的身上碾过, 风滚着它抛到草丛。 它没有骨头, 身...
    锄风少年阅读 330评论 4 3
  • 最近对学习英语颇有兴趣,就像某一天看了篇公众号推送文章后,义无反顾地加了薄荷英语百词斩的队伍。虽然仅仅付了费报了名...
    落音吹羽阅读 1,905评论 0 3