1. WWDC2015 - Interface Builder技巧(IB 技巧)

    这篇文章可能对于IB控的童鞋了来说可能是一个福音,而其中的技巧都是相当有用的。如果觉得好的童鞋可以进行留言点个赞什么的,要不然实在佩服的情况下可以跪下唱征服进行膜拜朕,朕会在将来整理更多的好东西给大家。关于IB的技巧,这里就说说在WWDC15上提到的几个技巧吧,可能在以前有些技巧也是被大家所知道的,可是这里主要是给大家整理一下。方便大家在使用IB的时候加快布局的速度。如果对于英文还不错的童鞋可以去查看视频: https://developer.apple.com/videos/play/wwdc2015-407/ 废话不多说,直接开始那个技巧吧。 技能点一:多使用Stack View 关于iOS9中新添加的API,Stack View是iOS9布局方面非常重要的一个工具。对于布局来说是非常有帮助的。他能快速的帮你布局,并且维护你的布局。而在IB中,关于StackView也提供了非常好用的快捷键。具体如下: 具体分为两个步骤: * 1. 选择需要所有需要添加到Stack View的视图 * 2. 点击IB右下方最左边的按钮即可将所选的视图添加到Stack View中 而如果对Stack View不熟的同学可以通过查看博主上一篇文章解开AutoLayout的面纱中找寻答案。 而在WWDC15中建议多使用Stack View,主要是Stack View方便IB进行维护和扩展。 而在github上也有童鞋已经写了FDStackView用来保证在低版本的情况下也能使用StackView,有兴趣的同学可以去研究一下。 技能点二:善用Pin中的Constrain To…

    on iOS AutoLayout Layout

  2. WWDC 2015 - 揭开AutoLayout的神秘面纱(Mysteries Of Auto Layout)

    在WWDC 2015上关于AutoLayout这堂课上为程序员提供了一些福利般的新特性,并且对于一些技巧性的使用技能,对于程序猿在开发工作中的布局以及布局的调试打了许多鸡血啊,碰巧博主最近的项目也赶上了UI的替换,搞得博主都想现在就在项目中大展手脚的感觉。想想还有点小激动呢。 在WWDC 2015大会上,讲述了12个关于Auto Layout的技能点。如果英文不错的童鞋可以去查看WWDC上的视频: * Mysteries Of Auto Layout Part1 * Mysteries Of Auto Layout Part2 各位童鞋,想知道这十二个技能点么?你特么来求我啊,来求我啊。求我我就告诉你。开始吧,跪下唱征服。 技能点一:Stack View(新) Stack View是在iOS 9中推出的一个新的视图,对于程序猿来说是大大滴福利啊,不仅能使xib的可维护性增加而且由于其是轻量级的控件,也能保证程序运行流畅。其实这个视图有点像是Android里面的线性布局,不过它比线性布局好用,主要表现在他的属性方面。其中最常用的属性有4个,具体如下图: * Axis(或Orientation在 OS X中):用于指明是水平线性布局还是垂直线性布局 * Alignment:…

    on WWDC WWDC2015 Layout iOS

  3. WWDC 2015 - 压缩App的大小(App Thining in Xcode)

    最近在研究WWDC2015,主要研究一下iOS 9和Xcode 7中的特性,方便之后学习,顺带可以装装逼。最近看了关于压缩App大小的视频,主要看苹果在这方面都做了哪些调整以及一些新的内容。 参考视频:App Thining in Xcode, 英文不错的童鞋或者想看原生资源的童鞋可以去看看。 下面开始讲述一下我学习到的内容。如果不想看理论内容的人可以直接查看程序员所关注的细节。 原理 关于App的内容 一般对于App来说就是分为两个部分 可运行代码 资源文件等 而其中的根据每个部分所占的比例可分为两种类型的,一种为可运行代码比例比较大的App,另一种为资源文件比例比较大的App。而对于大部分情况来说都是后者比较多,即如图所示: 而对于资源文件来说,可以根据不同的设备类型,不同的内存,不同的编译指令可以进行不同的分配不同的资源,通过对资源文件的分类可以使App在不同的设备上运行的更加流畅与完美。具体的分类条件可以根据下图进行分类: 而根据不同的设备可能会去加载不同的资源文件,如下图的例子: 对于iPad Mini的设备来说(如果添加了不同分类的资源的话),设备自动去加载armv7,1x iPad以及其他跟iPad Mini有关的配置相关的资源文件,从而使App在iPad Mini上运行的更加流畅与完美。 关于缩减的原理 而对于为了优化而言,即对App的资源文件进行优化,对于苹果服务器来说即根据不同的设备类型,让其下载带对应设备所需资源文件的ipa,而与该设备的无关的资源文件则不应让该设备下载,从而减小用户下载的ipa的大小。…

    on WWDC WWDC2015

  4. iOS9 - NSAppTransportSecurity

    App Transport Security(以下均称ATS)是iOS9提供的一个新特性,主要是保证app和web服务之间的安全。如果不想开启的话,可以关闭这个特性。 所有用到NSURLConnection、CFURL以及NSURLSessionAPI都会触发ATS(使用iOS9的SDK编译)验证, 所以在iOS9中需要符合一些配置才可以使ATS正常运行。 配置要求 关于App Transport Security 的一些进本配置要求: 服务器只要支持TLS协议1.2 加密算法也是有限制,需要在以下列表中 TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 TLS_ECDHE_ECDSA_WITH_…


  5. iOS 自动集成单元测试 - Jenkins与xctool整合

    我胡汉三又回来啦,继上次说完Jenkins和XCode的整合后,劳资又想把单元测试交给Jenkins了,于是乎又开始寻寻觅觅寻,好聪明的中国人,好优美的中国话,扁担宽 板凳长 扁担想绑在板凳上.....不好意思,忘记次药了,不知道为什么突然脑袋里面被人插入这段旋律了。 好了言归正传,关于这篇文章是建立在Jenkins集成好Xcode的基础上,因为如果没有集成的话,可能会有一些差别。如果不知道如何整合Xcode的话,可以看Jenkins整合XCode详解这篇文章,里面有惊喜哟。 关于xctool不了解的童鞋可以到xctool在Github上查看具体的文档,本文就不对其基础用法进行累述了。如果没有用上xctool的同学那就真的可惜了,那我们就真的没办法愉快的么么哒了,毕竟连工具都用的不一样还怎么谈恋爱。 好吧,先上两张效果图: 测试报告的结果趋势 每次构建后的报告(红线框部分) 好了,看完了效果图,接下来就开始说怎么做了,其实很简单的两步走 在Xcode构建后加一条Execute Shell的构建,在其中加入语句/usr/local/bin/xctool -workspace ***.xcworkspace -scheme schemeName -sdk iphonesimulator -reporter junit:report/****-report.…

    on Jenkins XCtool

  6. Jenkins整合XCode详解

    该文章主要是针对Jenkin配置完成并且希望通过Jenkins来进行集成XCode的童鞋。至于如何安装Jenkins大家可以通过百度谷歌一下会有很资料的,这里就不进行叙述了。 Jenkins整合XCode 关于Jenkins整合XCode最开始的配置项就行述说了。这里主要是针对XCode的配置项进行详细的叙述,帮助小伙伴们快速整合XCode进行编译和打包。先上一个结果的图,没图说个JB(不对,我是一个小清新,不能这么说话!) 首先关于xcodeproj和xcworkspace 由于我们是多人开发而为了解决xcworkspace和xcodeproj多人开发会导致冲突的情况,我们在上传到SVN(或Git)都是不上传这两个后缀名的文件。(不知道小伙伴们关于这个冲突的问题是怎么解决的,如果有什么更好的方法麻烦通过发邮件告诉我。) 所以在我Jenkins的构建项中第一个就是一个Shell脚本,目的是将配置项拷贝到Jenkins的目录下: 然后就开始了XCode的配置 1.General Build Setting Target:就是我们在项目中建立的Target 如果不清楚有哪些Target的情况下可以到xcodeproj或xcworkspace的目录下运行如下命令 xcodebuild -list 即可看到Targets,其中是所有可以用的target。 Clean before build?:这个是在编译前是否clean一次,一般是选择YES。 Configuration: 对应的是xcodebuild命令里的-configuration的参数,可选项为[Debug、Release],一般都填Debug,这样就可以将打包后的ipa交付给测试人员测试 Pack application and build .ipa?…

    on XCode Jenkins

  7. Object 转 Json (针对父类和数组)

    该文章是针对那些不想用第三方框架,却想做到OC转Json的朋友的文章。 关于普通的OC转Json的资料已经非常多了,可是对于其中的转换还是存在一些缺陷,关于其中的缺陷也会在接下来的文章中提到。不过首先我们先看看网络上经常看到的实现方法和实现,并且针对其中的缺陷进行逐一的填补。 首先先看看网络上的实现方法 刚开始做项目的时候暂时还不想用第三方框架,于是就去搜索了如何OC转Json的资料,刚开始哪来用的时候主要是通过以下这些方法来实现 首先第一个方法是下面这个方法。该方法是用于遍历对象中的属性,将其转换为NSDictionary。 + (NSDictionary*)getObjectData:(id)obj { NSMutableDictionary *dic = [NSMutableDictionary dictionary]; unsigned int propsCount; objc_property_t *props = class_copyPropertyList([obj class], &propsCount); for(int i = 0;i < propsCount; i++) { objc_property_t prop = props[i]; NSString…

    on Objective-C Json