-
偷得浮生半月闲
还有三天就正好是到日本两周年整的日子了。最近忙完了包括写书和为 iOS 8 更新 app 在内的一摊子事儿,今天又从 Kayac 办妥了离职手续,所以正式进入无业状态,也算是和这一段时期的忙碌道别了。之后会在下个月中旬入职 Line,中间有半个月时间可以用来陪陪父母到处走走,以及看书充电,也算是忙里偷闲。近期的爱好两年时间说长不长,说短也不短。现在回头回顾和总结这两年的生活,可以说是充实而丰满的。两年前自己在人生十字路口的选择看来还算明智,和老婆一起在这个国度里可以很专心地生活,这样就很好...…
-
WWDC 2014 Session笔记 - iOS 通知中心扩展制作入门
本文是我的 WWDC 2014 笔记 中的一篇,涉及的 Session 有 Creating Extensions for iOS and OS X, Part 1 Creating Extensions for iOS and OS X, Part 2总览扩展 (Extension) 是 iOS 8 和 OSX 10.10 加入的一个非常大的功能点,开发者可以通过系统提供给我们的扩展接入点 (Extension point) 来为系统特定的服务提供某些附加的功能。对于 iOS 来说,...…
-
WWDC 2014 Session笔记 - iOS界面开发的大一统
本文是我的 WWDC 2014 笔记 中的一篇,涉及的 Session 有 What’s New in Cocoa Touch Building Adaptive Apps with UIKit What’s New in Interface Builder View Controller Advancements in iOS 8 A Look Inside Presentation ControllersiOS 8 和 OS X 10.10 中一个被强调了多次的主题就是大一统...…
-
开发者所需要知道的 iOS8 SDK 新特性
WWDC 2014 已经过去一个多月。最激动人心的莫过于 Swift 这门新语言的发布,我在之前已经写了一些关于这么语言的第一印象和一些初步的探索。在写这篇文章的时候,Swift 随着 beta 3 得到了重大的更新,而这门语言现在也还在剧烈的变化之中。对于 Swift,现在大家的探索才刚刚上路,很多背后的机制还并不是非常清楚,或者有可能发生巨大的变化,因此在这里和之后的几篇文章,直到稳定的 1.0 版本出现,我不再打算继续深入针对 Swift 写什么文章。这基本出于对未来可能的变化会容易...…
-
行走于 Swift 的世界中
2014 年 7 月 13 日更新:根据 beta 3 的情况修正了文中过时的部分从周一 Swift 正式公布,到现在周五,这几天其实基本一直在关注和摸索 Swift 了。对于一门新语言来说,开荒阶段的探索自然是激动人心的,但是很多时候资料的缺失和细节的隐藏也让人着实苦恼。这一周,特别是最近几天的感受是,Swift 并不像我上一篇表达自己初步看法的文章里所说的那样,相对于 objc 来说有更好的学习曲线。甚至可以说 objc 在除了语法上比较特别以外,其概念还是比较容易的。而 Swif...…
-
关于 Swift 的一点初步看法
虽然四点半就起床去排队等入场,结果还是只能坐在了蛮后面的位置看着大屏幕参加了今年的 Keynote。其实今年 OS X 和 iOS 的更新亮点都不少,但是显然风头和光芒都让横空出世的 Swift 给抢走了。这部分内容因为不是 NDA,所以可以提前说一说。Swift 是 Apple 自创的一门专门为 Cocoa 和 CocoaTouch 设计的语言,意在用来替代 objc。早上发布的时候有很多朋友说其实他们已经写了很久的 Swift,而且还给了一个网站,在这里首先需要说明的是,这个网站的 S...…
-
近期随想和 WWDC 的计划
最近的博文总是写技术,本来其实是打算将这里建设成技术成长与人文关怀并重的博客的,但是现在看来思考不足。在刚被每周七天每天 18 小时的魔鬼般的封闭开发连续虐待了三周之后,我基本达到了看一眼代码就想吐的地步。每天让我坚持下来的动力可能只剩 “过完这周就可以参加的 WWDC” 这一件事情了。于是觉得,现在是时候可以写一点技术无关的博文来舒缓舒缓心情了。其实在封闭开发期间发生了不少事情,整理在一起看来,还是颇为值得思考的。首先是经历了一件很不幸的事情,我的一个非常优秀的大学同学,也是家内从高中开...…
-
Kiwi 使用进阶 Mock, Stub, 参数捕获和异步测试
Kiwi 是 iOS 的一个行为驱动开发 (Behavior Driven Development, BDD) 的测试框架,我们在上一篇入门介绍中简单了解了一些 iOS 中测试的概念以及 Kiwi 的基本用法。其实 Kiwi 的强大远不止如此,它不仅包含了基本的期望和断言,也集成了一些相对高级的测试方法。在本篇中我们将在之前的基础上,来看看 Kiwi 的这些相对高级的用法,包括模拟对象 (mock),桩程序 (stub),参数捕获和异步测试等内容。这些方法都是在测试中会经常用到的,用来减少...…
-
苹果应用描述中不能使用特殊字符的对应方法
该文章内容在iOS7中已经失效,请乖乖遵循苹果的规则写吧虽然很早Apple就说过从5月1日开始就不再允许UDID以及没有对iPhone5优化的应用上架,但是这次iTunes Connect的对于描述字符的限制还是让很多开发者措手不及。毕竟事先完全没有和大家打过招呼,Apple想要统一应用市场的风格和体验的心态可以理解,但是在开发者难得还有一点自由发挥的应用描述的地方突然作出这样的限制,确实不太厚道。相关的新闻报道可以参看这里但是,难道我们真的没法使用更漂亮的描述了么?答案是,有办法!解决办...…
-
常见的后台实践
题外objc.io 是一个非常棒的iOS进阶学习的网站,上面有很多超赞的学习资源和例子。最近我和 @方一雄,@answer-huang 和社区的另外几名小伙伴在主持做一个 objc.io 的译文整理汇总和后续翻译跟进的项目,我暂时略自我狂妄地把它叫做 objc中国(objccn.io) 项目,希望它能给现在已经很红火的中国objc社区锦上添花。现在上面已经有一些文章,您可以时不时地访问我们的首页来查看新的动态。如果有兴趣,也可以考虑加入我们,来为中国objc社区的发展贡献一点力量。对obj...…
-
TDD的iOS开发初步以及Kiwi使用入门
测试驱动开发(Test Driven Development,以下简称TDD)是保证代码质量的不二法则,也是先进程序开发的共识。Apple一直致力于在iOS开发中集成更加方便和可用的测试,在Xcode 5中,新的IDE和SDK引入了XCTest来替代原来的SenTestingKit,并且取消了新建工程时的“包括单元测试”的可选项(同样待遇的还有使用ARC的可选项)。新工程将自动包含测试的target,并且相关框架也搭建完毕,可以说测试终于摆脱了iOS开发中“二等公民”的地位,现在已经变得和...…
-
宏定义的黑魔法 - 宏菜鸟起飞手册
宏定义在C系开发中可以说占有举足轻重的作用。底层框架自不必说,为了编译优化和方便,以及跨平台能力,宏被大量使用,可以说底层开发离开define将寸步难行。而在更高层级进行开发时,我们会将更多的重心放在业务逻辑上,似乎对宏的使用和依赖并不多。但是使用宏定义的好处是不言自明的,在节省工作量的同时,代码可读性大大增加。如果想成为一个能写出漂亮优雅代码的开发者,宏定义绝对是必不可少的技能(虽然宏本身可能并不漂亮优雅XD)。但是因为宏定义对于很多人来说,并不像业务逻辑那样是每天会接触的东西。即使是能...…
-
代码手写UI,xib和StoryBoard间的博弈,以及Interface Builder的一些小技巧
最近接触了几个刚入门的iOS学习者,他们之中存在一个普遍和困惑和疑问,就是应该如何制作UI界面。iOS应用是非常重视用户体验的,可以说绝大多数的应用成功与否与交互设计以及UI是否漂亮易用有着非常大的关系。而随着iOS开发发展至今,可以说在UI制作上大家逐渐分化为了三种主要流派:使用代码手写UI及布局;使用单个xib文件组织viewController或者view;使用StoryBoard来通过单个或很少的几个(关于这点稍后会进行展开)文件构建全部UI。应该使用哪种方式来制作UI已经是iOS...…
-
iOS内购实现及测试Check List
免费+应用内购买的模式已经被证明了是最有效的盈利模式,所以实现内购功能可能是很多开发者必做的工作和必备的技能了。但是鉴于内购这块坑不算少,另外因为sandbox测试所需要特定的配置也很多,所以对于经验不太多的开发者来说很容易就遇到各种问题,并且测试时出错Apple给出的也只有“Can not connect iTunes Store”或者”Invalid Product IDs”之类毫无价值的错误提示,并没有详细的错误说明,因此调试起来往往没有方向。有老前辈在这里整理过一个相对完整的che...…
-
WWDC 2013 Session笔记 - iOS7中的ViewController切换
这是我的WWDC2013系列笔记中的一篇,完整的笔记列表请参看这篇总览。本文仅作为个人记录使用,也欢迎在许可协议范围内转载或使用,但是还烦请保留原文链接,谢谢您的理解合作。如果您觉得本站对您能有帮助,您可以使用RSS或邮件方式订阅本站,这样您将能在第一时间获取本站信息。本文涉及到的WWDC2013 Session有 Session 201 Building User Interfaces for iOS 7 Session 218 Custom Transitions Using Vi...…
-
WWDC 2013 Session笔记 - iOS7中弹簧式列表的制作
这是我的WWDC2013系列笔记中的一篇,完整的笔记列表请参看这篇总览。本文仅作为个人记录使用,也欢迎在许可协议范围内转载或使用,但是还烦请保留原文链接,谢谢您的理解合作。如果您觉得本站对您能有帮助,您可以使用RSS或邮件方式订阅本站,这样您将能在第一时间获取本站信息。本文涉及到的WWDC2013 Session有 Session 206 Getting Started with UIKit Dynamics Session 217 Exploring Scroll Views in ...…
-
猫都能学会的Unity3D Shader入门指南(二)
关于本系列这是Unity3D Shader入门指南系列的第二篇,本系列面向的对象是新接触Shader开发的Unity3D使用者,因为我本身自己也是Shader初学者,因此可能会存在错误或者疏漏,如果您在Shader开发上有所心得,很欢迎并恳请您指出文中纰漏,我会尽快改正。在之前的开篇中介绍了一些Shader的基本知识,包括ShaderLab的基本结构和语法,以及简单逐句地讲解了一个基本的shader。在具有这些基础知识后,阅读简单的shader应该不会有太大问题,在继续教程之前简单阅读一下...…
-
WWDC 2013 Session笔记 - iOS7中的多任务
这是我的WWDC2013系列笔记中的一篇,完整的笔记列表请参看这篇总览。本文仅作为个人记录使用,也欢迎在许可协议范围内转载或使用,但是还烦请保留原文链接,谢谢您的理解合作。如果您觉得本站对您能有帮助,您可以使用RSS或邮件方式订阅本站,这样您将能在第一时间获取本站信息。本文涉及到的WWDC2013 Session有 Session 204 What’s New with Multitasking Session 705 What’s New in Foundation Networki...…
-
猫都能学会的Unity3D Shader入门指南(一)
动机自己使用Unity3D也有一段时间了,但是很多时候是流于表面,更多地是把这个引擎简单地用作脚本控制,而对更深入一些的层次几乎没有了解。虽然说Unity引擎设计的初衷就是创建简单的不需要开发者操心的谁都能用的3D引擎,但是只是肤浅的使用,可能是无法达到随心所欲的境地的,因此,这种状况必须改变!从哪里开始呢,貌似有句话叫做会写Shader的都是高手,于是,想大概看看从Shader开始能不能使自己到达的层次能再深入一些吧,再于是,有了这个系列(希望我能坚持写完它,虽然应该会拖个半年左右)。U...…
-
近期做的两三事
夏日炎炎,无心睡眠。虽然已经有一段时间没有更新博客了,但是我确实是一直在努力干活儿的。这一个月以来大部分视线都在WWDC上,也写了几篇博文介绍个人觉得iOS7中需要深入挖掘和研究的API。但是因为NDA加上现在人在国外的缘故,还是不太好肆无忌惮地发出来。等到iOS7和Xcode5的NDA结束的时候(大概是9月中旬吧),我会一并把写的WWDC2013的笔记发出来,到时候还要请大家多多捧场。另外在工作之外,也自己做了一些小项目,基本都是一些个人兴趣所致。虽然不值一提,但是还是想写下来主要作为记...…