使用Xcode创建framework的一些使用笔记
2016-03-24 11:10
288 查看
最近由于业务的拓展,准备开始开发Mac上产品,之前为IOS版本的产品设计过一套framework[创建你自己的Framework](http://www.cocoachina.com/ios/20150127/11022.html) 所以现在需要原先IOS上使用到的核心SDK进行升级移植。于是开始对原先代码繁琐的重构和移植工作,深切感受到一个良好的设计对一个项目的重要性。
一、平台无关性
对于一些核心的业务功能、如与后台服务器交互、认证的流程的设计需要考虑到普适性,比如针对IOS开发的SDK/framework,最初的目的只是为了IOS开发的便利,使用到了一些IOS平台的特性或第三方库,可到了需要移植到Mac上时,原先的代码的使用价值就变低,需要进行大量的代码重构工作。将核心业务去平台化。
二、UI与业务分离
拿到IOS版本的SDK后,简单查看发现最初的开发只是为了实现功能,将所有的业务交织在viewController中,与界面UI深度耦合,坏处显而易见:viewController臃肿不堪、大量代码冗余(不同UI界面相同的业务流程又是一遍重写)、调试bug困难重重。
对于目前发现的问题开始对原先的业务进行重新设计开发,首先将核心业务功能进行封装,其次使用封装的核心业务对SDK中的UI交互进行二次开发和封装。将核心业务功能分离封装,去平台化,方便业务的移植,不同系统下只需要对UI交互进行针对性开发即可。
三、framework开发与demo验证的实时同步
framework/SDK开发时,直接将SDK的xcode项目丢入demo的xcode项目中进行开发与验证,但是对于UI交互开发就存在一些不便,需要及时将SDK中修改过的资源文件(打包在bundle中)及时更换到demo下,才能看到最新的设计效果,但有时候难免忘记。昨天就出现一次,修改过了SDK一个xib界面,重新运行demo却看不到预想的效果,花了2、3个小时去找问题,查看了各个环节,才最后发现是bundle未及时更新。于是想到了以前看过一个郭冬临的小品,用勺子尝汤的咸淡,喝着同一勺子里的汤,却一直觉得汤不够味道,不断往汤里加盐。
其实这是一个简单的问题,但是有时候却恰恰容易被忽略,需要写了一段见到sh命令,实时更新bundle资源:1.将原先的bundle删除;2.将最新编译出的bundle文件拷贝到demo路径下
rm -rf ../xxxFramerowkDemo/xxxFramerowk/xxxBundle.bundle cp -r "$TARGET_BUILD_DIR/xxxBundle.bundle" "${SRCROOT}/xxxBundle.bundle" mv xxxBundle.bundle ../xxxFramerowkDemo/xxxFramerowk
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- Android ADT 23.0.0无法更新到23.0.2问题解决方案
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- SDKMAN:轻松管理多个软件开发套件 (SDK) 的命令行工具
- 插件管理框架 for Delphi(一)
- 使用CSS框架布局的缺点和优点小结
- Parse正式发布开源PHP SDK
- 列举PHP的Yii 2框架的开发优势
- Windows窗体的.Net框架绘图技术实现方法
- 浅谈JavaScript 框架分类
- 轻量级javascript 框架Backbone使用指南
- javascript实现框架高度随内容改变的方法
- JS刷新框架外页面七种实现代码
- 超赞的动手创建JavaScript框架的详细教程
- 深入探讨前端框架react