CATweaker – an Xcode plugin for creating beautiful CAMediaTimingFunction curve

CATweaker

https://github.com/keefo/CATweaker

AppIcon256

Overview

A helper tool for creating beautiful CAMediaTimingFunction curve.

alt Window

CATweaker come with an Xcode plugin:

CATweakerSense for Xcode

Overview

CATweakerSense is an Xcode plugin that makes working with CAMediaTimingFunction more visual.

You might use ColorSense before. It let you pick up a color right from Xcode caret.

CATweakerSense is like ColorSense, but it lets you pick a CAMediaTimingFunction curve. When you put the caret on one of your CAMediaTimingFunction, it automatically shows the actual time curve as an overlay, and you can even adjust it on-the-fly with the curve adjuster.

The plugin also adds some items to the Edit menu to enable and to disable CATweakerSense temporarily. These menu items have no keyboard shortcuts by default, but you can set them via the system’s keyboard preferences (Xcode’s own preferences won’t show them).

alt Xcode Plugin

alt Xcode Plugin

Installation

Install via Alcatraz.

Or

Simply build the Xcode project and restart Xcode. The plugin will automatically be installed in ~/Library/Application Support/Developer/Shared/Xcode/Plug-ins. To uninstall, just remove the plugin from there (and restart Xcode).

If you get a “Permission Denied” error while building, please see this issue.

This is tested on OS X 10.9.2 with Xcode 6.2.

Limitations

  • It only works for constant point value, something like [CAMediaTimingFunction functionWithControlPoints: abc/def : 0.1 : 0.15 : 0.9]; won’t work.

Next move

I am planing to bring keyFrame animation into this plugin. So one can create more complex animation like “spring”, “decay”, “path” through the popover adjuster. If you have some great ideas, I am more than happy to hear from you.

Credits

This work is derived from the awesome ColorSense plugin of Ole Zorn(@olemoritz). Thanks Ole!

Author

Xu Lian

I’m a Mac and iOS developer, the founder of Beyondcow, follow me on Twitter or Github.

License


XPC Service and NSTableView

Populating a NSTableView with a large amount of internet images isn’t a new problem. It may sound trivial and straight, but I see many programmers didn’t really solve it correctly. This article will introduce the correct structure for this problem and also make it as a XPC service. As the Apple document state, the two main reasons to use XPC services are privilege separation and stability. Since accessing a network resource can be slow and unstable, the XPC service is perfect for this job.

Continue reading

谨慎使用 OSX 下多触点技术

我收到过很多用户建议,软件 “这里”,“那里” 如果使用触摸板操作会多么多么非常方便。还给我支招,不同的手势操作应该出现什么操作反馈。

iOS 的多触点技术已经非常成熟, 相比较 OSX 下面的多触点技术则处于原始状态。系统提供的 API 有一些致命的 bug。这篇文章希望给所有 OSX 开发者一个提醒,不要轻易增加多触点功能。触摸板不是触摸屏!很多移动端的手势操作不是搬过来就是适合的。
Continue reading

最近的一个事:OS X Mavericks 发布和 WebKit?

大约 7 月中旬,我留意到了自己的两款 Mac 软件中涉及到 WebView 的部分相继出现了问题。具体是通过 WebView 执行 javascript 失效了。 可以执行 js 代码的方法来自 WebScriptObject 类。我尝试了各种不同的方法执行 js 代码,全部失效。包括 – callWebScriptMethod:withArguments: – evaluateWebScript: 等。
Continue reading

让NSTextView自动检测URL链接

很多新加入OSX开发的朋友经常问, NSTextView 如何显示 URL 链接呢? 其实这跟 NSTextView 没太大关系, 而是 NSAttributedString 的事情.

下面这个例子是一个 NSTextView 时实链接自动检测并高亮显示的例子, 这个例子也是 OSX 下文本语法高亮实现的基本思路.

urltextview

下面就是关键部分的一段代码:

要注意的一点是, NSTextView 的 textStorage 属性是一个 NSTextStorage 对象, 它是 NSMutableAttributedString 的子类, 这里实际上是对 AttributedString 做操作. (熟悉类关系才能把握整体框架, 新手不要死盯在一个具体的方法上面)

下载例子:
https://github.com/keefo/URLTextView

10个迷惑新手的Cocoa&Objective-c开发问题

  1. language background
  2. run­time
  3. thread
  4. run­loop
  5. protocol, del­e­gate
  6. event respon­der
  7. mem­ory management
  8. class heritage, category and extensions
  9. drawing issue
  10. design pattern

首先请谅解我可能使用很多英文,毕竟英文资料将来会是你的主要资料来源。

这篇教程将描述一些我见到的众多Cocoa开发新手遇到的问题和障碍。并不会手把手教你:“这个函数什么意思,哪个函数如何使用”,而是站在一定高度,统观各种技术所处的角色,让你不会迷失在各种技术细节中。在你继续深入学习MacOS编程之前,请停下脚步看清楚这些问题。如果你是新手,这个教程不要希望一次能看的非常透彻,学一定阶段反回来再看看又会有新的体会的。

Continue reading

LXFoundation for Cocoa programmers

做为一个 OSX 和 iOS 软件开发者,使用 Objective-C 和 Cocoa 开发应该算是王道。尽管 Apple 为开发者提供了一系列方便的类和函数,但是绝对所有 Cocoa 开发者都遇到过这样让人头痛的问题:

Cocoa 自带的容器 NSMutableArray 和 NSMutableDictionary 总是无法强壮的处理一些不正确的值。结果往往是导致程序轻则异常,重则崩溃。而更为难的是,当程序变得庞杂起来的时候,xcode 的 debugger 很难定位这样一个错误。

下面我在 GitHub 上发布一个我自己写的开源库 LXFoundation 目标就是解决这类问题。我已经把它用在了自己的软件中,目前表现稳定。 Continue reading

Miao, Mac微博客户端开发随笔

iCloud icons

iCloud icons

大约从2010年开始,我就计划开发一个自己的微博客户端!开始命名为 iCloud,意思是云云,漫画里对话框的泡泡。可惜后来(2011年6月)这个名字让Apple官方拿去用了,iCloud 改名成了 Miao。也没什么好抱怨的,我并没有注册过这个名字,也没做出东西。这里是关于做这个软件的过程和背后的故事。 Continue reading