Thanks for the comments. First off, I want to point out that my category is just a wrapper around CoreGraphics shading functions and it (CG) should do the proper calculations with regards to device resolution and such.

My category is oriented more towards gradients in the UI. This should be apparent by the fact that I convert everything to the device RGB colorspace and that I also have an optimization for the cardinal directions. Looking at CTGradient code, it seems it is much more complete in terms of control over the actual gradient; I only implemented linear axial gradient between two colors in RGB space. The focus of my little exercise had to do more with calculating the start and end points of the gradient where it would fit it to a shape at a certain angle. The CG functions for shading require you to specify the start and end point and I also provided a method to specify those for more control over the geometric extent of the gradient. Overall, my method is more of a convenience function covering a common case than the end-and-be-all of gradient methods.

Incorporating my code into CTGradient may be something I could bring up with the author since it seems like it is complimentary with his stuff.