<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description>We make art that runs on your iPhone OS device. Elegant art. Some people call them applications. We prefer to call them art.

Reflections
If Apple made a Flickr client, this would be it.</description><title>Orange Petal</title><generator>Tumblr (3.0; @orangepetal)</generator><link>http://blog.orangepetal.com/</link><item><title>CALayer, shadows, and performance.</title><description>&lt;p&gt;On iPad, we get shadows on CALayers..&lt;/p&gt;

&lt;p&gt;So, you can do this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;aView.layer.shadowColor = [[UIColor darkGrayColor] CGColor];
aView.layer.shadowOffset = CGSizeMake(3., 3.);
aView.layer.shadowOpacity = 0.8;
aView.layer.shadowRadius = 5.;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;However, you&amp;#8217;ll notice that with a few of those onscreen and suddenly your splendidly fast iPad starts acting like it&amp;#8217;s computing through a puddle of molasses. The cause turns out to be those darn shadows, they&amp;#8217;re re-composited every time the layer moves. The fix is easy as microwavable popcorn:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;aView.layer.shouldRasterize = YES;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Welcome back superfast iPad! :)&lt;/p&gt;</description><link>http://blog.orangepetal.com/post/508591172</link><guid>http://blog.orangepetal.com/post/508591172</guid><pubDate>Fri, 09 Apr 2010 12:07:00 -0500</pubDate><dc:creator>jasontrademark</dc:creator></item><item><title>Bertrand Serlet (Apple Sr VP) on private APIs.</title><description>&lt;iframe width="400" height="300" src="http://www.youtube.com/embed/jd97us27eSg?wmode=transparent&amp;autohide=1&amp;egm=0&amp;hd=1&amp;iv_load_policy=3&amp;modestbranding=1&amp;rel=0&amp;showinfo=0&amp;showsearch=0" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Bertrand Serlet (Apple Sr VP) on private APIs.&lt;/p&gt;</description><link>http://blog.orangepetal.com/post/500939475</link><guid>http://blog.orangepetal.com/post/500939475</guid><pubDate>Tue, 06 Apr 2010 11:08:55 -0500</pubDate><dc:creator>jasontrademark</dc:creator></item><item><title>1.2 &amp; OS 3.0</title><description>&lt;p&gt;Reflections 1.2 has been out for a month or so. We need to update this more often. :)&lt;/p&gt;

&lt;p&gt;Biggest new feature is the ability to save photos to your camera roll for use as wallpaper.&lt;/p&gt;

&lt;p&gt;iPhone OS 3 is coming, and thus far there are very few issues with Reflections. In fact, there is really only one issue and that one stems from some fighting I had to do to get the look and feel I wanted. Without doing anything, Reflections is even faster in 3.0.&lt;/p&gt;</description><link>http://blog.orangepetal.com/post/104737192</link><guid>http://blog.orangepetal.com/post/104737192</guid><pubDate>Thu, 07 May 2009 16:51:13 -0500</pubDate><dc:creator>jasontrademark</dc:creator></item><item><title>Version 1.1</title><description>&lt;p&gt;The latest build of Reflections has been submitted to the App Store. :)&lt;/p&gt;

&lt;p&gt;Major changes include the ability to save photos to your camera roll, and from there you can use them as Wallpaper! Also, a new tag view has been added for all you Flickr users who actually use tags as your primary means of organizing photos. Finally, to round out the significant stuff, the tag cluster view will now let you add multiple tags from that cluster, without taking you back to the tag list after each one.&lt;/p&gt;

&lt;p&gt;Look for it in your update queue soon!&lt;/p&gt;</description><link>http://blog.orangepetal.com/post/81894716</link><guid>http://blog.orangepetal.com/post/81894716</guid><pubDate>Thu, 26 Feb 2009 21:57:23 -0600</pubDate><dc:creator>jasontrademark</dc:creator></item><item><title>Best Backtrace *ever*</title><description>&lt;p&gt;My kind of humor. :P&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;#0  0x933f3e17 in objc_exception_throw ()
#1  0x93a82eeb in +[NSException raise:format:arguments:] ()
#2  0x93a82f2a in +[NSException raise:format:] ()
#3  0x96f15e30 in _NSArrayRaiseInsertNilException ()
#4  0x96e342d4 in kHappyFunTable ()
#5  0x96e341e4 in kHappyFunTable ()
#6  0x30acdc20 in -[UINavigationController 
           pushViewController:transition:forceImmediate:] ()
#7  0x30acd9b9 in -[UINavigationController pushViewController:animated:] ()
&amp;lt;snip&amp;gt;
&lt;/code&gt;&lt;/pre&gt;</description><link>http://blog.orangepetal.com/post/74670287</link><guid>http://blog.orangepetal.com/post/74670287</guid><pubDate>Sat, 31 Jan 2009 20:08:00 -0600</pubDate><dc:creator>jasontrademark</dc:creator></item><item><title>Macworld reviewed Reflections!  Yay!</title><description>&lt;a href="http://www.macworld.com/article/138500/flickr_apps.html"&gt;Macworld reviewed Reflections!  Yay!&lt;/a&gt;</description><link>http://blog.orangepetal.com/post/74115173</link><guid>http://blog.orangepetal.com/post/74115173</guid><pubDate>Thu, 29 Jan 2009 14:01:12 -0600</pubDate><dc:creator>mrroot</dc:creator></item><item><title>Cocoa: The Subview Hierarchy</title><description>&lt;p&gt;More useful code.. this time to print out the entire hierarchy of subviews below any particular view. For maximum usefulness, put this in a category* of UIView:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;- (void)OP_printSubviewsOfView:(UIView*)view {
    static NSInteger depthCount = 0;

    NSArray *subview_array = [view subviews];

    NSMutableString *tabString = [NSMutableString 
                            stringWithCapacity:depthCount];
    for (NSInteger i = 0; i &amp;lt; depthCount; i++) {
        [tabString appendString:@" -- "];
    }
    NSLog(@"%@ %@",tabString,view);

    if (subview_array) {
        depthCount++;
        for(UIView *v in subview_array) {
            [self OP_printSubviewsOfView:v];
        }
        depthCount--;
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Note(*): Categories in Objective-C are very useful. They are also easy to create:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;@interface UIView(Extras)
- (void)OP_printSubviewsOfView:(UIView*)view;
@end

@implementation UIView(Extras)
- (void)OP_printSubviewsOfView:(UIView*)view {
    // code
}
@end
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;But be &lt;em&gt;careful&lt;/em&gt;. Read the chapter in the Objective-C 2.0 Programming Language document on them first. In fact, if you haven&amp;#8217;t read that document from cover to cover, you should. It&amp;#8217;s not that long.&lt;/p&gt;</description><link>http://blog.orangepetal.com/post/72813858</link><guid>http://blog.orangepetal.com/post/72813858</guid><pubDate>Sat, 24 Jan 2009 10:18:00 -0600</pubDate><category>cocoa</category><category>subviews</category><category>code</category><category>objective-c</category><dc:creator>jasontrademark</dc:creator></item><item><title>Cocoa: The Responder Chain</title><description>&lt;p&gt;Here is a helpful little method that you can use to print out the responder chain above a particular instance.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;- (void)_printNextResponder {
    id nextObj = self;
    while (nextObj) {
        NSLog(@"nextResponder %@",nextObj);
        nextObj = [nextObj nextResponder];
    }
}
&lt;/code&gt;&lt;/pre&gt;</description><link>http://blog.orangepetal.com/post/72092435</link><guid>http://blog.orangepetal.com/post/72092435</guid><pubDate>Wed, 21 Jan 2009 10:22:00 -0600</pubDate><category>cocoa</category><category>responder chain</category><category>code</category><category>touch</category><category>view</category><dc:creator>jasontrademark</dc:creator></item><item><title>"It’s not what you look at that matters, it’s what you see."</title><description>“It’s not what you look at that matters, it’s what you see.”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;Henry David Thoreau&lt;/em&gt;</description><link>http://blog.orangepetal.com/post/70969077</link><guid>http://blog.orangepetal.com/post/70969077</guid><pubDate>Fri, 16 Jan 2009 13:31:00 -0600</pubDate><category>Thoreau</category><dc:creator>jasontrademark</dc:creator></item><item><title>Welcome</title><description>&lt;p&gt;Orange Petal is a small team in Austin, Texas who have the audacious goal of building the &lt;a href="http://37signals.com/" title="37signals" target="_blank"&gt;37signals&lt;/a&gt; of iPhone applications. Click that fancy RSS feed button up there and keep an automated electronic eye on us, you might just be surprised.&lt;/p&gt;</description><link>http://blog.orangepetal.com/post/70968739</link><guid>http://blog.orangepetal.com/post/70968739</guid><pubDate>Fri, 16 Jan 2009 13:30:25 -0600</pubDate><dc:creator>jasontrademark</dc:creator></item></channel></rss>

