YYKit — iOS 工具代码库

注意:这篇文章已经过期。

代码在:Github, 文档在:YYKit.

做开发有时需要一些常见的功能,通常随手写一个工具类或是Category就扔到工程里了。次数多了总是想整理出一份常用的代码库。本着“如果有别人洗好的类裤那就直接拿来用”的原则,我还是首先到Github转了一转。sstoolkit无疑是和我的想法最接近的了,但是既然是别人的内裤(雾),穿着总是不太舒服,又闲fork太麻烦,所以到底还是自己搞了一套。

我希望尽量提供和iOS系统风格类似的API,所以代码尽量加到了Category里面并且没有prefix保护。这样,如果把YYKit.framework放到pch文件里面,代码中的方法配色就会变得和系统API一样~~ 坏处就是Category太多了,会占用内存、影响启动速度的(虽然是微乎其微)。 另外不加prefix的话,有可能和系统或者其他第三方库中的同名方法冲突,造成不确定性。。

目前放进去的功能大概有下面这些:

(更多…)

用 appledoc 生成文档

接触过 java 的童鞋们一定知道 javadoc 这种东西,写好代码、码上注释,然后用 javadoc 一跑,一包 html 的文档就生成好了,和 Sun(甲骨文)的官方文档一个调调。在用 eclipse 的时候,代码的自动提示就能显示注释了,html 文档用处不大(对我来说)。但是用 Xcode 开发如果没有文档,确实不太方便。这里就介绍一下 iOS 开发生成文档的方法吧。

(更多…)

NSArray 丢失的 firstObject 方法

NSArray有一个 lastObject方法用于取到最后一个元素,但是翻翻看头文件,并没有firstObject方法。

如果强制发送firstObject,并且无视xcode警告的话,代码是不会出错的。。用下面方法测试返一下,返回的是YES。

很明显苹果有实现这个方法(查资料说是iOS4起就已经有实现了),只是没有放到头文件来。

写一个Category来实现它吧~

由于本身苹果有这个实现,那implementation部分不写也OK。
然后。。NSMutableArray有个removeLastObject,如果是强迫症想要平衡的话,写个removeFirstObject也行。。

嗯。。问题是。。苹果为什么这么做呢?
(更多…)

搬家的节奏。。

有时总想说点什么,但又不太想让周围的朋友知道,偶尔会找个地方写点博客,期望远方能有什么陌生的人偶然看到。。所以一直以来我都认为写博客是件很私人的事情,希望它能像日记本那样能捧在自己的手中,小心地选择着博客的窝。

能记得最开始下决心做个窝是在Google的GAE。那时候GAE还没被墙,语言也只支持python。当时很顺利的用Micolog造了一个窝~心情好或者心情不好的时候吐上两句嘈,就像今天的微博。。

后来GAE打不开鸟。。一时也没找到好地方建窝,于是就偶尔再人人啊,豆瓣什么的随便写点。。但到底还是租的房子有很多不方便。。

后来云计算的普及了~~国内新浪的SAE貌似做的挺早,在上面弄了个SAE版wordpress,时间一久就要交费,于是这个也荒废了。。

那时折腾累了,直接跑到wordpress.com去写博客了。。很无奈的后来这家伙也在蔷外打不开了。。

再然后。。就到Github去折腾所谓hacker的blog了。。octopress是用markdown来敲文章的,每发布一篇文章就要编译-push一次,用了一段时间感觉我果然不适合当“hacker”啊。。

最后时间到了现在– 在亚马逊的AWS上用回了wordpress。把能找到的一点吐嘈搬运了过来,但愿能在这里住的时间长一些吧~~

想做一个钢琴 App~

Appstore有几个非常棒的钢琴类软件:

  • 音色方面表现最贴近现实的自然是苹果的GarageBand,体积不小但乐器库非常棒,钢琴的采样应该是隔3采1,每个音有3个力度的样本,通过感应敲击震动幅度来模拟力度,形式和电钢琴差不多。编辑功能自然是同样的强大,当然那些功能我也玩不转。。
  • 可玩性比较高的是Music Studio,这家伙的音色库很全,可以选各种乐器来玩,缺点是声音有些呆板。
  • 平时最喜欢的还是FingerPiano。体积很小巧,启动飞快,音色也不错~ 操作起来比上面两个App要舒服很多

虽然这些App都很棒,但我还是一直想自己做一个钢琴的App。

最开始接触iOS的时候,做的第一个成型一点的App就是一个小钢琴。用几个wav合成一下,没有延长音,体积很大,效果也不好,之后就没再折腾。

随后一直在关注FingerPiano。这个App最开始也是用的wav合成,只有一个钢琴音色。但直到有一版更新,体积一下变得好小,而且还增加了几种乐器。仔细研究了下发现它改用了Soundfont,挺有意思~~ 最开始貌似是用fluidsynth 库来加载sf2文件的,sf2也是它自己生成的; 但后来貌似就自己实现了一套,同时sf2也换用了经典的GeneralUser GS.于是我也手痒想试着做一下。。

嗯。。折腾了两晚上。。看苹果的AU文档。。做了一个简单的Demo 倒是能切换声音,但效果好差啊。。。比FingerPiano差远了。。

同样的Soundfont文件,在电脑里和FingerPiano里都表现的不错,用AU的API就感觉差很多。。 看来是我打开姿势不对=_= 有时间仔细学学CoreAudio…

 

2013-04-26更新: 终于发现FingerPiano用的什么样的技术了:crimsontech.jp。 这家公司应该是从2002年起始的,开发出来的东西都是要license的。。

唉~~果然没那么容易啊~回头恶补一下吧。。

╮( ̄▽ ̄)╭

第一章

今天有一只猫跟着上楼了,看样子是一只野猫,棕黄色的毛,显得挺干净的样子。 在家门口徘徊了许久,谨慎地试探着向屋里探来,不时喵叫几声,像是乞求着什么。

我在屋里找了一圈竟然没有一点能给猫吃的东西。试着喂了点饮料,想是不合它口味吧,闻了闻就走开了。 最后到底还是放它出楼了。。关上门等了一会了,打开看看结果。它没走远,见到有光亮又转头跑回来了…

真是纠结。。。。。

未闻花名

我们仍未知道那天所看见的花的名字

标题是这样的,很长但很好记。虽说之前就在网上看到这是部催泪的作品,做好了心理准备的去看,但看着看着还是忍不住流泪了。