<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>The Changelog &#187; Cocoa</title>
	<atom:link href="http://thechangelog.com/tagged/cocoa/feed/" rel="self" type="application/rss+xml" />
	<link>http://thechangelog.com</link>
	<description>Open source moves fast. Keep up.</description>
	<lastBuildDate>Sat, 18 May 2013 07:32:37 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Mike Ash reimplements most of NSObject functionality with MAObject for educational purposes</title>
		<link>http://thechangelog.com/nsobject-functionality-with-maobject/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=nsobject-functionality-with-maobject</link>
		<comments>http://thechangelog.com/nsobject-functionality-with-maobject/#comments</comments>
		<pubDate>Wed, 30 Jan 2013 06:25:53 +0000</pubDate>
		<dc:creator>Sam Soffes</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[NSObject]]></category>
		<category><![CDATA[objective-c]]></category>

		<guid isPermaLink="false">https://thechangelog.com/?p=2572</guid>
		<description><![CDATA[<p>Mike Ash wrote a fantastic article about reimplementing NSObject. It&#8217;s really fascinating. From his post: The NSObject class lies at the root of (almost) all classes we build and use as part of Cocoa programming. What does it actually do, though, and how does it do it? Today, I&#8217;m going to rebuild NSObject from scratch, [...]</p><p>The post <a href="http://thechangelog.com/nsobject-functionality-with-maobject/">Mike Ash reimplements most of NSObject functionality with MAObject for educational purposes</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><a href="https://twitter.com/mikeash">Mike Ash</a> wrote a <a href="http://www.mikeash.com/pyblog/friday-qa-2013-01-25-lets-build-nsobject.html">fantastic article</a> about reimplementing NSObject. It&#8217;s really fascinating.</p>

<p>From <a href="http://www.mikeash.com/pyblog/friday-qa-2013-01-25-lets-build-nsobject.html">his post</a>:</p>

<blockquote>
  <p>The NSObject class lies at the root of (almost) all classes we build and use as part of Cocoa programming. What does it actually do, though, and how does it do it? Today, I&#8217;m going to rebuild NSObject from scratch, as suggested by friend of the blog and occasional guest author Gwynne Raskind.</p>
</blockquote>

<p>He goes through memory management, inheritance, performing selectors, etc. Most of the heavy lifting is done by the runtime. It&#8217;s really amazing to see how simple it is to make this. I know I&#8217;ve thought the source code for NSObject must some crazy magic.</p>

<p>I highly recommend reading <a href="http://www.mikeash.com/pyblog/friday-qa-2013-01-25-lets-build-nsobject.html">his article</a> and checking out <a href="https://github.com/mikeash/MAObject">the source</a> on GitHub.</p>
<p>The post <a href="http://thechangelog.com/nsobject-functionality-with-maobject/">Mike Ash reimplements most of NSObject functionality with MAObject for educational purposes</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/nsobject-functionality-with-maobject/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rack::CoreData &#8211; Automatically generate REST APIs for Core Data models</title>
		<link>http://thechangelog.com/rack-coredata-automatically-generate-rest-apis-for-core/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=rack-coredata-automatically-generate-rest-apis-for-core</link>
		<comments>http://thechangelog.com/rack-coredata-automatically-generate-rest-apis-for-core/#comments</comments>
		<pubDate>Tue, 24 Jul 2012 18:18:01 +0000</pubDate>
		<dc:creator>Wynn Netherland</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[Core Data]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[Rack]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://new.thechangelog.com/rack-coredata-automatically-generate-rest-apis-for-core/</guid>
		<description><![CDATA[<p>An interesting project from Mattt to scaffold RESTful web services based on CoreData models using Rack. require 'bundler' Bundler.require # Rack::CoreData requires a Sequel connection to a database DB = Sequel.connect(ENV['DATABASE_URL'] &#124;&#124; "postgres://localhost:5432/coredata") run Rack::CoreData('./Example.xcdatamodeld') In summary:• AFIncrementalStore: *poof* no client code.• Rack::CoreData: *poof* no server code.&#8212; Mattt Thompson (@mattt) July 24, 2012 View the [...]</p><p>The post <a href="http://thechangelog.com/rack-coredata-automatically-generate-rest-apis-for-core/">Rack::CoreData &#8211; Automatically generate REST APIs for Core Data models</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>An interesting project from <a href="http://twitter.com/mattt">Mattt</a> to scaffold RESTful web services based on CoreData models using Rack.</p>

<pre><code>require 'bundler'
Bundler.require

# Rack::CoreData requires a Sequel connection to a database  
DB = Sequel.connect(ENV['DATABASE_URL'] || "postgres://localhost:5432/coredata")

run Rack::CoreData('./Example.xcdatamodeld')
</code></pre>

<blockquote class="twitter-tweet"><p>In summary:• AFIncrementalStore: *poof* no client code.• Rack::CoreData: *poof* no server code.</p>&mdash; Mattt Thompson (@mattt) <a href="https://twitter.com/mattt/status/227825223905447937" data-datetime="2012-07-24T17:59:00+00:00">July 24, 2012</a></blockquote>

<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

<p>View <a href="https://github.com/mattt/rack-core-data">the Source</a> for this project on GitHub.</p>
<p>The post <a href="http://thechangelog.com/rack-coredata-automatically-generate-rest-apis-for-core/">Rack::CoreData &#8211; Automatically generate REST APIs for Core Data models</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/rack-coredata-automatically-generate-rest-apis-for-core/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SSPullToRefresh &#8211; Simple pull to refresh view for iPhone</title>
		<link>http://thechangelog.com/sspulltorefresh-simple-pull-to-refresh-view-for-iphone/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=sspulltorefresh-simple-pull-to-refresh-view-for-iphone</link>
		<comments>http://thechangelog.com/sspulltorefresh-simple-pull-to-refresh-view-for-iphone/#comments</comments>
		<pubDate>Fri, 18 May 2012 13:33:00 +0000</pubDate>
		<dc:creator>Wynn Netherland</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[obj-c]]></category>

		<guid isPermaLink="false">http://new.thechangelog.com/sspulltorefresh-simple-pull-to-refresh-view-for-iphone/</guid>
		<description><![CDATA[<p>As I continue to dive into iOS development, I&#8217;m on the lookout for time saving Cocoa projects. Sam&#8217;s SSPullToRefresh is an easy, customizable way to add pull-to-refresh views like those made popular in Loren Brichter&#8217;s original Tweetie for iPhone app. SSPullToRefresh hides all the pulling and animating logic away, leaving you to implement what you [...]</p><p>The post <a href="http://thechangelog.com/sspulltorefresh-simple-pull-to-refresh-view-for-iphone/">SSPullToRefresh &#8211; Simple pull to refresh view for iPhone</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>As I continue to dive into iOS development, I&#8217;m on the lookout for time saving Cocoa projects. <a href="http://samsoff.es">Sam</a>&#8217;s <a href="https://github.com/samsoffes/sspulltorefresh">SSPullToRefresh</a> is an easy, customizable way to add pull-to-refresh views like those made popular in <a href="http://twitter.com/lorenb">Loren Brichter</a>&#8217;s original Tweetie for iPhone app. SSPullToRefresh hides all the pulling and animating logic away, leaving you to implement what you care about &#8211; fetching and refreshing your view.</p>

<pre><code>- (void)viewDidLoad {
   [super viewDidLoad];
   self.pullToRefreshView = [[SSPullToRefreshView alloc] initWithScrollView:self.tableView delegate:self];
}


- (void)refresh {
   [self.pullToRefreshView startLoading];
   // Load data...
   [self.pullToRefreshView finishLoading];
}

- (void)pullToRefreshViewDidStartLoading:(SSPullToRefreshView *)view {
   [self refresh];
}
</code></pre>

<p>You can use a couple of provided content views or you can subclass and implement your own. Check out the <a href="https://github.com/samsoffes/sspulltorefresh">source on GitHub</a> or see it in action in <a href="https://cheddarapp.com/">Cheddar</a>.</p>
<p>The post <a href="http://thechangelog.com/sspulltorefresh-simple-pull-to-refresh-view-for-iphone/">SSPullToRefresh &#8211; Simple pull to refresh view for iPhone</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/sspulltorefresh-simple-pull-to-refresh-view-for-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MGTileMenu &#8211; pop-up tile-based contextual menu for iOS5</title>
		<link>http://thechangelog.com/mgtilemenu-pop-up-tile-based-contextual-menu-for-ios5/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mgtilemenu-pop-up-tile-based-contextual-menu-for-ios5</link>
		<comments>http://thechangelog.com/mgtilemenu-pop-up-tile-based-contextual-menu-for-ios5/#comments</comments>
		<pubDate>Mon, 14 May 2012 13:24:16 +0000</pubDate>
		<dc:creator>Wynn Netherland</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[iOS]]></category>

		<guid isPermaLink="false">http://new.thechangelog.com/mgtilemenu-pop-up-tile-based-contextual-menu-for-ios5/</guid>
		<description><![CDATA[<p>MGTileMenu is an innovative context menu for iOS from Matt Gemmell. Resembling Path&#8217;s oft imitated corner menu in some respects, it appears to be more contextual than navigational, as the screencast demonstrates: Matt&#8217;s introductory blog post provides a deep introduction on the design or you can grab the source on GitHub. The license requires attribution, [...]</p><p>The post <a href="http://thechangelog.com/mgtilemenu-pop-up-tile-based-contextual-menu-for-ios5/">MGTileMenu &#8211; pop-up tile-based contextual menu for iOS5</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><a href="https://github.com/mattgemmell/MGTileMenu">MGTileMenu</a> is an innovative context menu for iOS from <a href="http://mattgemmell.com/">Matt Gemmell</a>. Resembling Path&#8217;s <a href="http://lab.victorcoulon.fr/css/path-menu/">oft imitated</a> corner menu in some respects, it appears to be more contextual than navigational, as the <a href="http://www.youtube.com/watch?feature=player_embedded&amp;v=_xIttBW6BI4">screencast demonstrates</a>:</p>

<p>Matt&#8217;s <a href="http://mattgemmell.com/2012/05/14/mgtilemenu/">introductory blog post</a> provides a deep introduction on the design or you can grab the <a href="https://github.com/mattgemmell/MGTileMenu">source on GitHub</a>. The license requires attribution, or you can <a href="http://sites.fastspring.com/mattgemmell/product/sourcecode">purchase a non-attribution license online</a>.</p>
<p>The post <a href="http://thechangelog.com/mgtilemenu-pop-up-tile-based-contextual-menu-for-ios5/">MGTileMenu &#8211; pop-up tile-based contextual menu for iOS5</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/mgtilemenu-pop-up-tile-based-contextual-menu-for-ios5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>INAppStoreWindow &#8211; A Mac App Store style Cocoa NSWindow subclass</title>
		<link>http://thechangelog.com/inappstorewindow-a-mac-app-store-style-cocoa-nswindow-su/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=inappstorewindow-a-mac-app-store-style-cocoa-nswindow-su</link>
		<comments>http://thechangelog.com/inappstorewindow-a-mac-app-store-style-cocoa-nswindow-su/#comments</comments>
		<pubDate>Wed, 02 May 2012 18:54:46 +0000</pubDate>
		<dc:creator>Sam Soffes</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://new.thechangelog.com/inappstorewindow-a-mac-app-store-style-cocoa-nswindow-su/</guid>
		<description><![CDATA[<p>This is handy NSWindow subclass that lets you center the traffic lights (close, minimize, and zoom) or do custom drawing in the window&#8217;s title bar. INAppStoreWindow doesn&#8217;t use any private APIs, so it&#8217;s App Store friendly. It also supports ARC or non-ARC. The custom drawing is really simple. You just give it a block: [self.window [...]</p><p>The post <a href="http://thechangelog.com/inappstorewindow-a-mac-app-store-style-cocoa-nswindow-su/">INAppStoreWindow &#8211; A Mac App Store style Cocoa NSWindow subclass</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>This is handy <a href="https://github.com/indragiek/INAppStoreWindow">NSWindow subclass</a> that lets you center the traffic lights (close, minimize, and zoom) or do custom drawing in the window&#8217;s title bar. INAppStoreWindow doesn&#8217;t use any private APIs, so it&#8217;s App Store friendly. It also supports ARC or non-ARC.</p>

<p>The custom drawing is really simple. You just give it a block:</p>

<pre><code>[self.window setTitleBarDrawingBlock:^(BOOL drawsAsMainWindow, CGRect drawingRect, CGPathRef clippingPath){
    // Custom drawing code!    
}];
</code></pre>

<p><a href="https://github.com/kgn">David Keegan</a> has a little <a href="http://dribbble.com/shots/541256-Notepad-App-Mockup">demo app</a> you can checkout as well.</p>
<p>The post <a href="http://thechangelog.com/inappstorewindow-a-mac-app-store-style-cocoa-nswindow-su/">INAppStoreWindow &#8211; A Mac App Store style Cocoa NSWindow subclass</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/inappstorewindow-a-mac-app-store-style-cocoa-nswindow-su/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Episode 0.7.8 &#8211; CocoaPods, MacRuby, and more with Eloy Durán</title>
		<link>http://thechangelog.com/episode-0-7-8-cocoapods-macruby-and-more-with-eloy-dur-n/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=episode-0-7-8-cocoapods-macruby-and-more-with-eloy-dur-n</link>
		<comments>http://thechangelog.com/episode-0-7-8-cocoapods-macruby-and-more-with-eloy-dur-n/#comments</comments>
		<pubDate>Thu, 05 Apr 2012 14:53:00 +0000</pubDate>
		<dc:creator>Wynn Netherland</dc:creator>
				<category><![CDATA[Podcast]]></category>
		<category><![CDATA[bundler]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[Homebrew]]></category>
		<category><![CDATA[MacRuby]]></category>
		<category><![CDATA[obj-c]]></category>
		<category><![CDATA[objective-c]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://new.thechangelog.com/episode-0-7-8-cocoapods-macruby-and-more-with-eloy-dur-n/</guid>
		<description><![CDATA[<p>Wynn caught up with Eloy Durán, creator of CocoaPods to talk about the project, MacRuby, and his favorite Objective-C libraries. Items mentioned in the show: Eloy Durán, Ruby developer and creator of CocoaPods. CocoaPods, &#8220;the best way to manage library dependencies in Objective-C projects.&#8221; CocoaPods uses a Podfile to specify project dependencies. Eloy aspires to [...]</p><p>The post <a href="http://thechangelog.com/episode-0-7-8-cocoapods-macruby-and-more-with-eloy-dur-n/">Episode 0.7.8 &#8211; CocoaPods, MacRuby, and more with Eloy Durán</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Wynn caught up with Eloy Durán, creator of CocoaPods to talk about the project, MacRuby, and his favorite Objective-C libraries.</p>

<audio src="http://changelogshow.com/105/45447-episode-0-7-8-cocoapods-macruby-and-more-with-eloy-duran.mp3" controls="controls" preload="none"></audio>

<p>Items mentioned in the show:</p>

<ul><li><a href="https://twitter.com/alloy">Eloy Durán</a>, Ruby developer and creator of CocoaPods.</li>
<li><a href="http://cocoapods.org/">CocoaPods</a>, &#8220;the best way to manage library dependencies in Objective-C projects.&#8221;</li>
<li>CocoaPods uses a <a href="https://github.com/CocoaPods/CocoaPods/wiki/A-Podfile">Podfile</a> to specify project dependencies.</li>
<li>Eloy aspires to achieve the same level of &#8220;Twitter hate&#8221; that Bundler enjoys.</li>
<li>CocoaPods started on <a href="http://www.macruby.org/">MacRuby</a> but now is powered by <a href="http://www.ruby-lang.org/en/">MRI</a>.</li>
<li>Patches for <a href="https://github.com/CocoaPods/CocoaPods/issues?labels=Feature&amp;sort=created&amp;direction=desc&amp;state=open&amp;page=1">feature requests</a> are welcomed.</li>
<li><a href="https://github.com/CocoaPods/Specs">CocoaPods specs</a> live on GitHub, similar to the <a href="http://thechangelog.com/post/1122365505/episode-0-3-5-homebrew-with-max-howell">Homebrew</a> model.</li>
<li>The <a href="https://github.com/Fingertips/passengerpane">Passenger pane</a> lets you configure <a href="http://www.modrails.com/">Phusion Passenger</a> on the Mac really easily.</li>
<li>Eloy wants a <a href="https://twitter.com/#!/alloy/status/187116466078879744">Ruby lib that shows a proper unified diff for Array, Hash, String</a> with color support.</li>
<li>Listener <a href="http://twitter.com/Zalambar">Jonah Williams</a> asks how the community can increase adoption.</li>
<li>Objective-C is the <a href="https://github.com/languages/Objective-C">#10 most popular language </a> on GitHub.</li>
<li>Eloy wrote a <a href="https://github.com/alloy/macvim/wiki/Screenshots">file browser for MacVim</a> because he likes Vim but is a &#8220;gui guy.&#8221;</li>
<li>If the latest Xcode has got you down, you might try <a href="http://www.jetbrains.com/objc/index.html">AppCode</a>.</li>
<li><a href="https://github.com/zwaldowski/BlocksKit">BlocksKit</a>, the Objective-C block utilities you always wish you had.</li>
<li><a href="http://quincykit.net/">QuincyKit</a> offers crash report managment for your iOS apps.</li>
<li><a href="https://github.com/johnezang/JSONKit">JSONKit</a>, a very high performance Objective-C JSON library.</li>
<li>Wynn likes <a href="https://testflightapp.com/">Test Flight</a> but Eloy has switched to <a href="http://www.hockeyapp.net/">Hockey App</a>.</li>
<li><a href="http://chopine.be/">Laurent Sansonetti</a>, lead developer of MacRuby is Eloy&#8217;s programming hero.</li>
</ul>
<p>The post <a href="http://thechangelog.com/episode-0-7-8-cocoapods-macruby-and-more-with-eloy-dur-n/">Episode 0.7.8 &#8211; CocoaPods, MacRuby, and more with Eloy Durán</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/episode-0-7-8-cocoapods-macruby-and-more-with-eloy-dur-n/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://changelogshow.com/105/45447-episode-0-7-8-cocoapods-macruby-and-more-with-eloy-duran.mp3" length="104" type="audio/mpeg" />
		</item>
		<item>
		<title>MBRequest &#8211; Easier API wrappers in iOS and OSX</title>
		<link>http://thechangelog.com/mbrequest-easier-api-wrappers-in-ios-and-osx/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mbrequest-easier-api-wrappers-in-ios-and-osx</link>
		<comments>http://thechangelog.com/mbrequest-easier-api-wrappers-in-ios-and-osx/#comments</comments>
		<pubDate>Thu, 22 Mar 2012 13:45:20 +0000</pubDate>
		<dc:creator>Wynn Netherland</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://new.thechangelog.com/mbrequest-easier-api-wrappers-in-ios-and-osx/</guid>
		<description><![CDATA[<p>A good API wrapper should handle network transport, payload serialization/deserialization, and authentication, abstracting these details away in order to let the developer deal with the business domain of the API. Projects like Faraday, Requests, and others have made creating higher level wrappers much easier. MBRequest from Mobiata does the same for iOS and OSX: NSURL [...]</p><p>The post <a href="http://thechangelog.com/mbrequest-easier-api-wrappers-in-ios-and-osx/">MBRequest &#8211; Easier API wrappers in iOS and OSX</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>A <a href="http://wynnnetherland.com/journal/what-makes-a-good-api-wrapper">good API wrapper</a> should handle network transport, payload serialization/deserialization, and authentication, abstracting these details away in order to let the developer deal with the business domain of the API. Projects like <a href="https://github.com/technoweenie/faraday">Faraday</a>, <a href="http://docs.python-requests.org/en/latest/index.html">Requests</a>, and <a href="http://thechangelog.com/post/17266976705/requests-http-library-for-php">others</a> have made creating higher level wrappers much easier.</p>
<p><a href="https://github.com/mobiata/MBRequest">MBRequest</a> from <a href="http://www.mobiata.com/">Mobiata</a> does the same for iOS and OSX:</p>
<pre><code>NSURL *url = [NSURL URLWithString:@"https://gdata.youtube.com/feeds/api/standardfeeds/top_rated?alt=json?time=this_week"];
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:url];
[urlRequest setValue:@"gzip" forHTTPHeaderField:@"Accept-Encoding"];
MBJSONRequest *jsonRequest = [[[MBJSONRequest alloc] init] autorelease];
[jsonRequest performJSONRequest:urlRequest completionHandler:^(id responseJSON, NSError *error) {
    if (error != nil)
    {
        NSLog(@"Error requesting top-rated videos: %@", error);
    }
    else
    {
        NSArray *videos = [[responseJSON objectForKey:@"feed"] objectForKey:@"entry"];
        for (NSDictionary *videoInfo in videos)
        {
            NSString *title = [[videoInfo objectForKey:@"title"] objectForKey:@"$t"];
            NSString *author = [[[[videoInfo objectForKey:@"author"] objectAtIndex:0] objectForKey:@"name"] objectForKey:@"$t"];
            NSLog(@"'%@' by %@", title, author);
        }
    }
}];
</code></pre>
<p>Check out the <a href="https://github.com/mobiata/MBRequest/tree/master/Example">examples folder</a> in the <a href="https://github.com/mobiata/MBRequest">project source</a> for implementation ideas.</p>
<p>The post <a href="http://thechangelog.com/mbrequest-easier-api-wrappers-in-ios-and-osx/">MBRequest &#8211; Easier API wrappers in iOS and OSX</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/mbrequest-easier-api-wrappers-in-ios-and-osx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>X-Callback-URL: URL specification for iOS interapp communication</title>
		<link>http://thechangelog.com/xcallbackurl-iphone-app-for-testing-the-x-callback-url-i/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=xcallbackurl-iphone-app-for-testing-the-x-callback-url-i</link>
		<comments>http://thechangelog.com/xcallbackurl-iphone-app-for-testing-the-x-callback-url-i/#comments</comments>
		<pubDate>Mon, 21 Feb 2011 17:19:00 +0000</pubDate>
		<dc:creator>Wynn Netherland</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[obj-c]]></category>

		<guid isPermaLink="false">http://new.thechangelog.com/xcallbackurl-iphone-app-for-testing-the-x-callback-url-i/</guid>
		<description><![CDATA[<p>URLs are one of those things about the web that we often take for granted. As developers, we can request resources and send users to other destinations just by knowing a location on the Internet. The mobile landscape is a bit different. While most mobile applications speak Web, consuming REST-ful APIs and other web resources, [...]</p><p>The post <a href="http://thechangelog.com/xcallbackurl-iphone-app-for-testing-the-x-callback-url-i/">X-Callback-URL: URL specification for iOS interapp communication</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>URLs are one of those things about the web that we often take for granted. As developers, we can request resources and send users to other destinations just by knowing a location on the Internet.</p>

<p>The mobile landscape is a bit different. While most mobile applications speak <em>Web</em>, consuming REST-ful APIs and other web resources, quite often they&#8217;re little silos of vertical, site or brand-specific functionality. Did you know that for iOS developers Apple makes it possible to <a href="http://iphonedevelopertips.com/cocoa/launching-your-own-application-via-a-custom-url-scheme.html">register your own URL scheme</a>, as in this <a href="http://gowalla.com">Gowalla</a> example:</p>

<ul><li>Launch with <a href="//">gowalla://</a></li>
<li>Open Paddington Station spot <a href="//spots/19264">gowalla://spots/19264</a></li>
<li>Open pengwynn user 123&#160;<a href="//users/pengwynn">gowalla://users/pengwynn</a></li>
<li>Open Walt Disney World Resort trip <a href="//trips/24622">gowalla://trips/24622</a></li>
</ul>

<p>The <a href="http://handleopenurl.com/">list of known iOS applications supporting OpenURL</a> is growing daily.</p>

<h3>Beyond application launching</h3>

<p>As handy as these custom iOS URL schemes are in launching other applications, mobile developer <a href="http://twitter.com/agiletortoise">Greg Pierce</a> wants to the community to extend the idea of custom URL schemes and adopt a standard for inter-app communication. <a href="http://x-callback-url.com/">X-Callback-URL</a> is a <a href="http://x-callback-url.com/specifications/">draft specification</a> for one-way and two-way communication between mobile apps on iOS and looks like this:</p>

<pre><code>[scheme]://[host]/[version]/[action]?[x-callback parameters]&amp;[action parameters]
</code></pre>

<p>Let&#8217;s look at a real world example from Greg&#8217;s popular <a href="http://agiletortoise.com/terminology">Terminology</a>, a language reference app for iPhone and iPad:</p>

<pre><code>terminology://x-callback-url/1.0/lookup?text=a%20good%20deal
</code></pre>

<ul><li><strong>scheme</strong>: The app&#8217;s custom URL scheme, <code>terminology</code> in the above example</li>
<li><strong>host</strong>: Callback URLs are identified by a host value of <code>x-callback-url</code></li>
<li><strong>version</strong>: The X-Callback-URL spec version, currently <code>1.0</code></li>
<li><strong>action</strong>: The action to perform in the target app. In this case, Terminology will perform a <code>lookup</code> action.</li>
<li><strong>x-callback parameters</strong>: <em>Optional.</em> Not used in this example</li>
<li><strong>action parameters</strong>: The parameters to pass to the executing action, &#8220;a good deal&#8221; in this example</li>
</ul>

<p>This approach provides a robust way to not only launch an app, but also request that the app handle an action, which may or may not have a UI associated with it.</p>

<h3>Two-way communication</h3>

<p>The real power of X-Callback-URLs lies in two-way inter-app communication. By using the <code>x-callback</code> parameters in the spec, we can ask the target app to call us back on our own URLs, even handling success and error scenarios. Sort of like custom HTTP headers, these callback parameters are identified with an <code>x-</code> namespace:</p>

<ul><li><strong>x-source</strong>&#160;: The friendly name of the source app calling the action. If the action in the target app requires user interface elements, it may be necessary to identify to the user the app requesting the action.</li>
<li><strong>x-success</strong>&#160;: If the action in the target method is intended to return a result to the source app, the x-callback parameter should be included and provide a URL to open to return to the source app. On completion of the action, the target app will open this URL, possibly with additional parameters tacked on to return a result to the source app. If x-success is not provided, it is assumed that the user will stay in the target app on successful completion of the action.</li>
<li><strong>x-error</strong>&#160;: URL to open if the requested action generates an error in the target app. This URL will be open with at least the parameters “errorCode=code&amp;errorMessage=message. If x-error is not present, and a error occurs, it is assumed the target app will report the failure to the user and remain in the target app.</li>
</ul>

<p>Here&#8217;s how you&#8217;d build a URL to allow your users to select some text in your app, choose a replacement in Terminology, and have to return back to your app.</p>

<pre><code>terminology://x-callback-url/1.0/replace?text=white&amp;x-source=MyAppName&amp;x-success=myappurl://x-callback-url/1.0/returnAction
</code></pre>

<p>Greg has a <a href="http://www.youtube.com/watch?v=-ZwnKToAG2o">great screencast</a> that demonstrates the process end-to-end:</p>

<iframe title="YouTube video player" width="480" height="390" src="http://www.youtube.com/embed/-ZwnKToAG2o" frameborder="0" allowfullscreen></iframe>

<p>Be sure and check out the <a href="http://agiletortoise.com/developers/terminology">full documentation</a> for all of Terminology&#8217;s callbacks on Greg&#8217;s site as well as <a href="https://github.com/agiletortoise/XCallbackURL">implemenation examples on GitHub</a>. If you decide to implement X-Callback-URL in your application, please add it to the <a href="http://handleopenurl.com/xcu-schemes">directory</a> so the community knows how to integrate with you.</p>

<p>[<a href="http://github.com/agiletortoise/XCallbackURL">Source on GitHub</a>] [<a href="http://x-callback-url.com/">Home page</a>] [@<a href="http://twitter.com/xcallbackurl">xcallbackurl</a> on Twitter] [<a href="http://news.ycombinator.com/item?id=2246288">Discuss on HackerNews</a>]</p>
<p>The post <a href="http://thechangelog.com/xcallbackurl-iphone-app-for-testing-the-x-callback-url-i/">X-Callback-URL: URL specification for iOS interapp communication</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/xcallbackurl-iphone-app-for-testing-the-x-callback-url-i/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Canabalt: Engine behind popular iOS game now open source</title>
		<link>http://thechangelog.com/canabalt-engine-behind-popular-ios-game-now-open-source/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=canabalt-engine-behind-popular-ios-game-now-open-source</link>
		<comments>http://thechangelog.com/canabalt-engine-behind-popular-ios-game-now-open-source/#comments</comments>
		<pubDate>Fri, 31 Dec 2010 04:12:59 +0000</pubDate>
		<dc:creator>Wynn Netherland</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[games]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[iOS]]></category>

		<guid isPermaLink="false">http://new.thechangelog.com/canabalt-engine-behind-popular-ios-game-now-open-source/</guid>
		<description><![CDATA[<p>In a blog post announcing their part in raising over $25,000 for charity, Semi Secret Software has released the source to Flixel iOS, the game engine behind their popular iOS title Canabalt. A port of Flixel, the Action Script Flash game framework, Flixel iOS handles texture atlas generation, particle rendering, collisions, and animated sprites. ... [...]</p><p>The post <a href="http://thechangelog.com/canabalt-engine-behind-popular-ios-game-now-open-source/">Canabalt: Engine behind popular iOS game now open source</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><a href="http://blog.semisecretsoftware.com/nearly-25000-raised-for-charity-canabalt-goes"><img src="http://cl.ly/1e0F0z0h323Q271f0C1I/os.jpg.scaled500.jpg" alt="Logo" /></a></p>

<p>In a <a href="http://blog.semisecretsoftware.com/nearly-25000-raised-for-charity-canabalt-goes">blog post</a> announcing their part in raising over $25,000 for charity, Semi Secret Software has released the source to Flixel iOS, the game engine behind their popular iOS title <a href="http://itunes.apple.com/us/app/canabalt/id333180061?mt=8">Canabalt</a>.</p>

<p><a href="http://itunes.apple.com/us/app/canabalt/id333180061?mt=8"><img src="http://a1.phobos.apple.com/us/r1000/025/Purple/10/18/ef/mzl.hpylsvsw.320x480-75.jpg" alt="Screenshot" /></a></p>

<p>A port of <a href="http://flixel.org">Flixel</a>, the Action Script Flash game framework, Flixel iOS handles texture atlas generation, particle rendering, collisions, and animated sprites.</p>

<pre><code>...

#import "Smoke.h"
#import &lt;SemiSecret/SemiSecretTexture.h&gt;

static NSString * ImgSmoke = @"smoke.png";

@interface Smoke ()
- (id) initWithGLData:(SmokeGLData *)glData texture:(SemiSecretTexture *)texture;
- (void) setupVertices;
- (void) setupTexCoords;
@end

...
</code></pre>

<p>If your app does Twitter, check out their previously released <a href="https://github.com/ericjohnson/twitter-xauth">Twitter xAuth</a> project. Need more? Go ahead and <a href="https://github.com/ericjohnson/canabalt-ios">fork the project</a> and improve upon it.</p>

<p><a href="http://itunes.apple.com/us/app/canabalt/id333180061?mt=8"><img src="http://a1.phobos.apple.com/us/r1000/026/Purple/ff/d6/9b/mzl.marrukwg.320x480-75.jpg" alt="Game over" /></a></p>

<p>[<a href="http://github.com/ericjohnson/canabalt-ios">Source on GitHub</a>] [<a href="http://blog.semisecretsoftware.com/nearly-25000-raised-for-charity-canabalt-goes">Blog post</a>]</p>
<p>The post <a href="http://thechangelog.com/canabalt-engine-behind-popular-ios-game-now-open-source/">Canabalt: Engine behind popular iOS game now open source</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/canabalt-engine-behind-popular-ios-game-now-open-source/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>kod: CSS3 themable, Node.js powered editor for OS X</title>
		<link>http://thechangelog.com/kod-css3-themable-node-js-powered-editor-for-os-x/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=kod-css3-themable-node-js-powered-editor-for-os-x</link>
		<comments>http://thechangelog.com/kod-css3-themable-node-js-powered-editor-for-os-x/#comments</comments>
		<pubDate>Sun, 26 Dec 2010 00:52:49 +0000</pubDate>
		<dc:creator>Wynn Netherland</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[editors]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[obj-c]]></category>

		<guid isPermaLink="false">http://new.thechangelog.com/kod-css3-themable-node-js-powered-editor-for-os-x/</guid>
		<description><![CDATA[<p>It&#8217;s a very Merry Christmas for Mac developers. Rasmus Andersson has open sourced Kod, the &#8220;programmers&#8217; editor for OS X.&#8221; Built from the ground to feel like a native OS X app, Kod sports Chrome-style tear-off tabs and aims for full concurrency, taking advantage of additional CPU cores when loading files, performing syntax highlighting, and [...]</p><p>The post <a href="http://thechangelog.com/kod-css3-themable-node-js-powered-editor-for-os-x/">kod: CSS3 themable, Node.js powered editor for OS X</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>It&#8217;s a very Merry Christmas for Mac developers. <a href="http://github.com/rsms">Rasmus Andersson</a> has open sourced <a href="http://kodapp.com">Kod</a>, the &#8220;programmers&#8217; editor for OS X.&#8221;</p>

<p>Built from the ground to feel like a native OS X app, Kod sports Chrome-style tear-off tabs and aims for full concurrency, taking advantage of additional CPU cores when loading files, performing syntax highlighting, and other intensive tasks.</p>

<p>Even with the provided integrated scripting environment powered by <a href="http://thechangelog.com/search/node">Node.js</a>, perhaps the most impressive feature for the web geek is that Kod is fully themable using CSS3.</p>

<p><a href="http://github.com/rsms/kod"><img src="http://kodapp.com/screenshot.png" alt="screenshot" /></a></p>

<p>So if you&#8217;re still waiting on TextMate 2.0 and Vim or emacs isn&#8217;t your bag, then give Kod a try.</p>

<p>[<a href="http://github.com/rsms/kod">Source on GitHub</a>] [<a href="http://kodapp.com">Web site</a>]</p>
<p>The post <a href="http://thechangelog.com/kod-css3-themable-node-js-powered-editor-for-os-x/">kod: CSS3 themable, Node.js powered editor for OS X</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/kod-css3-themable-node-js-powered-editor-for-os-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hubcap &#8211; A GitHub client for Mac OS X</title>
		<link>http://thechangelog.com/hubcap-a-github-client-for-mac-os-x/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=hubcap-a-github-client-for-mac-os-x</link>
		<comments>http://thechangelog.com/hubcap-a-github-client-for-mac-os-x/#comments</comments>
		<pubDate>Sun, 12 Dec 2010 21:15:00 +0000</pubDate>
		<dc:creator>Adam Stacoviak</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[MacRuby]]></category>
		<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://new.thechangelog.com/hubcap-a-github-client-for-mac-os-x/</guid>
		<description><![CDATA[<p>We are a bit late to blog about this, but if you follow The Changelog on Twitter you would have seen tweets from us mentioning this project. On December 3rd we chipped in to back a Kickstarter project started by Erik Michaels-Ober to fund Hubcap, a proposed native Mac client for GitHub. Erik&#8217;s plan is [...]</p><p>The post <a href="http://thechangelog.com/hubcap-a-github-client-for-mac-os-x/">Hubcap &#8211; A GitHub client for Mac OS X</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><img src="http://cl.ly/3u1930151p0P3s0J1p0O/hubcap-dock-screenshot.png" alt="Hubcap Dock Screenshot" /></p>

<p>We are a bit late to blog about this, but if you <a href="http://twitter.com/changelogshow">follow The Changelog on Twitter</a> you would have seen tweets from us mentioning this project.</p>

<p>On December 3rd <a href="http://twitter.com/changelogshow/status/10782936672509952">we chipped in</a> to back <a href="http://www.kickstarter.com/projects/1487030260/hubcap-a-github-client-for-mac-os-x">a Kickstarter project</a> started by <a href="https://github.com/sferik">Erik Michaels-Ober</a> to fund Hubcap, a proposed native Mac client for GitHub. Erik&#8217;s plan is to bring the elegance of various Twitter clients for the Mac, including <a href="http://www.atebits.com/tweetie-mac/">Tweetie</a>, <a href="http://hibariapp.com/">Hibari</a>, <a href="http://mowglii.com/itsy/">Itsy</a>, and <a href="http://www.echofon.com/">Echofon</a> to GitHub and increase social engagement. Obviously, we&#8217;re excited about this project, <a href="https://github.com/blog/761-hubcap-a-socially-aware-github-mac-app">as are the guys at GitHub</a>.</p>

<p>As of today&#8217;s date (Sunday &#8211; December 12nd, 2010) the Kickstarter project has <a href="http://www.kickstarter.com/projects/1487030260/hubcap-a-github-client-for-mac-os-x/backers">93 backers</a> and has raised over $3000 dollars. Erik&#8217;s original goal was to raise $2222 (I&#8217;d love to know where that number came from) by December 16th, so that means this project &#8220;is on&#8221;, and awaits the release of the funding this Thursday on the 16th at 5:00pm EST.</p>

<p>If this is something you are interested in suporting, consider <a href="https://www.kickstarter.com/projects/1487030260/hubcap-a-github-client-for-mac-os-x/pledge/new?clicked_reward=false&amp;logged_in=false&amp;p=0&amp;v=n">making a pledge to the cause</a>.</p>

<p>Hubcap will leverage the <a href="http://develop.github.com/">GitHub API</a> to display your activity feed, notifications, and inbox messages. It will also allow you to compose and send new messages, follow new people or projects, and read the news feed of individuals, organizations, or projects. Hubcap will be a <a href="http://developer.apple.com/technologies/mac/cocoa.html">Cocoa app</a> written primarily in <a href="http://www.macruby.org/">MacRuby</a>.</p>

<p>Erik tells us to expect to have an alpha version completed in April 2011, with beta versions coming in the early summer and the 1.0 shipping in the fall. What&#8217;s the best part? Once the 1.0 ships, the source code will be made available on GitHub to everyone.</p>

<p>[<a href="https://github.com/hubcap/hubcap">Project on GitHub (private for now)</a>] [<a href="http://www.kickstarter.com/projects/1487030260/hubcap-a-github-client-for-mac-os-x">Kicksarter Project</a>]</p>
<p>The post <a href="http://thechangelog.com/hubcap-a-github-client-for-mac-os-x/">Hubcap &#8211; A GitHub client for Mac OS X</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/hubcap-a-github-client-for-mac-os-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GithubNotifier: Growl notifications for GitHub updates</title>
		<link>http://thechangelog.com/github-notifier-growl-notifications-for-github/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=github-notifier-growl-notifications-for-github</link>
		<comments>http://thechangelog.com/github-notifier-growl-notifications-for-github/#comments</comments>
		<pubDate>Thu, 23 Sep 2010 01:02:49 +0000</pubDate>
		<dc:creator>Wynn Netherland</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[alerts]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[growl]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://new.thechangelog.com/github-notifier-growl-notifications-for-github/</guid>
		<description><![CDATA[<p>In Episode 0.3.5, Max wished for an app that would give him Growl alerts any time someone added a Homebrew formula to any Homebrew fork. Well, Clint Shryock has created just such an app. Github Notifier is a simple menu bar application for OS X that listens for GitHub updates in any of your repos [...]</p><p>The post <a href="http://thechangelog.com/github-notifier-growl-notifications-for-github/">GithubNotifier: Growl notifications for GitHub updates</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>In <a href="http://lg.gd/035">Episode 0.3.5</a>, Max wished for an app that would give him <a href="http://growl.info">Growl</a> alerts any time someone added a <a href="http://mxcl.github.com/homebrew/">Homebrew</a> formula to any Homebrew fork.</p>

<p>Well, <a href="http://github.com/ctshryock">Clint Shryock</a> has created just such an app. <a href="http://github.com/ctshryock/GithubNotifier">Github Notifier</a> is a simple menu bar application for OS X that listens for GitHub updates in any of your repos and then alerts you via Growl:</p>

<p>To install, you can <a href="http://github.com/downloads/ctshryock/GithubNotifier/GithubNotifier-1.0.zip">download</a> the latest release and drag to and launch from your <code>/Applications</code> folder. Add your GitHub login and <a href="https://github.com/account">API Token</a></p>

<p><img src="http://cl.ly/adb50ccabc407f0a0840/content" alt="Pref pane" /></p>

<p>&#8230; and set your refresh interval.</p>

<p><img src="http://cl.ly/7304dbfef6683fe6dc53/content" alt="Pref pane" /></p>

<p>[<a href="http://github.com/ctshryock/GithubNotifier">Source on GitHub</a>]</p>
<p>The post <a href="http://thechangelog.com/github-notifier-growl-notifications-for-github/">GithubNotifier: Growl notifications for GitHub updates</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/github-notifier-growl-notifications-for-github/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OmniGroup Frameworks: Objective-C frameworks for Mac OSX and iOS apps</title>
		<link>http://thechangelog.com/omnigroup-frameworks-ios-mac-osx-objective-c/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=omnigroup-frameworks-ios-mac-osx-objective-c</link>
		<comments>http://thechangelog.com/omnigroup-frameworks-ios-mac-osx-objective-c/#comments</comments>
		<pubDate>Wed, 15 Sep 2010 15:27:23 +0000</pubDate>
		<dc:creator>Wynn Netherland</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[objective-c]]></category>
		<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://new.thechangelog.com/omnigroup-frameworks-ios-mac-osx-objective-c/</guid>
		<description><![CDATA[<p>The Omni Group, makers of wildly popular Mac and iOS products such as OmniFocus and OmniGraffle, want to share some of their code with you. The OmniGroup Frameworks are a set of Objective-C code libraries for both Mac and iOS that peform a wide range of common tasks. OmniFoundation includes a set of low-level objects [...]</p><p>The post <a href="http://thechangelog.com/omnigroup-frameworks-ios-mac-osx-objective-c/">OmniGroup Frameworks: Objective-C frameworks for Mac OSX and iOS apps</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>The <a href="http://www.omnigroup.com/">Omni Group</a>, makers of wildly popular Mac and iOS products such as <a href="http://www.omnigroup.com/products/omnifocus/">OmniFocus</a> and  <a href="http://www.omnigroup.com/products/omnigraffle/">OmniGraffle</a>, want to share some of their code with you.</p>

<p>The <a href="http://github.com/omnigroup/OmniGroup">OmniGroup Frameworks</a> are a set of Objective-C code libraries for both Mac and iOS that peform a wide range of common tasks.</p>

<ul><li><strong>OmniFoundation</strong> includes a set of low-level objects like <code>OFStringScanner</code> for scanning Unicode strings, <code>OFRegularExpression</code> for Regex, and <code>OFMessageQueue</code> &amp; <code>OFQueueProcessor</code> for multithreaded operations.</li>
<li><strong>OmniDataObjects</strong> resemble CoreData <em>light</em>, built on top of SQLite for Mac and iOS.</li>
<li><strong>OmniAppKit</strong> provides types like <code>OAOSAScript</code> for enabling AppleScript in your app, <code>OAPreferences</code> for multi-pane preferences windows, and <code>OAFindPanel</code> for find-and-replace tasks.</li>
<li><strong><code>OmniInspector</code></strong> is the inspector seen at work in OmniGraffle, OmniFocus, OmniOutliner and OmniPlan</li>
<li><strong>OmniNetworking</strong> provides higher-level types to work with TCP, UDP and Multicast networking.</li>
</ul>

<p>[<a href="http://github.com/omnigroup/OmniGroup">Source on GitHub</a>] [<a href="http://forums.omnigroup.com/forumdisplay.php?f=16">Framework forums</a>]</p>
<p>The post <a href="http://thechangelog.com/omnigroup-frameworks-ios-mac-osx-objective-c/">OmniGroup Frameworks: Objective-C frameworks for Mac OSX and iOS apps</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/omnigroup-frameworks-ios-mac-osx-objective-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PullToRefresh: Because the iPhone has no F5</title>
		<link>http://thechangelog.com/pulltorefresh-because-the-iphone-has-no-f5/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=pulltorefresh-because-the-iphone-has-no-f5</link>
		<comments>http://thechangelog.com/pulltorefresh-because-the-iphone-has-no-f5/#comments</comments>
		<pubDate>Fri, 30 Jul 2010 15:04:22 +0000</pubDate>
		<dc:creator>Wynn Netherland</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[touch]]></category>

		<guid isPermaLink="false">http://new.thechangelog.com/pulltorefresh-because-the-iphone-has-no-f5/</guid>
		<description><![CDATA[<p>Want to implement the nifty pull-to-refresh pattern made popular by TweetieTwitter for iPhone in your iOS project? Leah Culver has created PullToRefresh, a simple TableViewController for your UITableView. Source on GitHub</p><p>The post <a href="http://thechangelog.com/pulltorefresh-because-the-iphone-has-no-f5/">PullToRefresh: Because the iPhone has no F5</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Want to implement the nifty pull-to-refresh pattern made popular by <a href="http://blog.twitter.com/2010/05/twitter-for-iphone.html"><del>Tweetie</del>Twitter for iPhone</a> in your iOS project? <a href="http://leahculver.com">Leah Culver</a> has created <a href="http://github.com/leah/PullToRefresh">PullToRefresh</a>, a simple TableViewController for your UITableView.</p>

<p><img src="http://s3.amazonaws.com/leah.baconfile.com/blog/refresh-small-1.png" alt="screenshot" /></p>

<p><a href="http://github.com/leah/PullToRefresh">Source on GitHub</a></p>
<p>The post <a href="http://thechangelog.com/pulltorefresh-because-the-iphone-has-no-f5/">PullToRefresh: Because the iPhone has no F5</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/pulltorefresh-because-the-iphone-has-no-f5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SimFinger &#8211; make awesome screencasts of your mobile apps on your Mac</title>
		<link>http://thechangelog.com/simfinger-mobile-mac-screencasts/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=simfinger-mobile-mac-screencasts</link>
		<comments>http://thechangelog.com/simfinger-mobile-mac-screencasts/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 03:33:49 +0000</pubDate>
		<dc:creator>Wynn Netherland</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[palm]]></category>
		<category><![CDATA[palm-pre]]></category>
		<category><![CDATA[screencasting]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://new.thechangelog.com/simfinger-mobile-mac-screencasts/</guid>
		<description><![CDATA[<p>SimFinger is a screencasting tool from Loren Brichter aka @atebits, author of popular apps like Tweetie for the iPhone as well as the desktop. SimFinger is a Cocoa app for the Mac that adds some polish to your mobile app screencasts by providing: A frame that sits on top of the simulator and adds shine [...]</p><p>The post <a href="http://thechangelog.com/simfinger-mobile-mac-screencasts/">SimFinger &#8211; make awesome screencasts of your mobile apps on your Mac</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><a href="http://github.com/atebits/SimFinger">SimFinger</a> is a screencasting tool from Loren Brichter aka <a href="http://twitter.com/atebits">@atebits</a>, author of popular apps like <a href="http://www.atebits.com/tweetie-iphone/">Tweetie</a> for the iPhone as well as the <a href="http://www.atebits.com/tweetie-mac/">desktop</a>. SimFinger is a Cocoa app for the Mac that adds some polish to your mobile app screencasts by providing:</p>

<ul><li>A frame that sits on top of the simulator and adds shine and an iPhone 3G look</li>
<li>A halo around the pointer to indicate touch events</li>
<li>Ability to set the carrier text </li>
<li>Fake apps (and dock badge counts) so that your app isn&#8217;t so lonely on the home screen.</li>
</ul>

<p>Notice that we say &#8216;mobile apps&#8217; and not &#8216;iPhone&#8217; or &#8216;Touch&#8217; apps because a <a href="http://github.com/kreutz/SimFinger">fork</a> from <a href="http://github.com/kreutz">@kreutz</a> adds support for the PalmPre simulator.</p>

<p>[<a href="http://github.com/atebits/SimFinger">Source on GitHub</a>] [<a href="http://blog.atebits.com/2009/03/not-your-average-iphone-screencast/">Original blog post</a>] [<a href="http://github.com/kreutz/SimFinger">Palm fork</a>]</p>
<p>The post <a href="http://thechangelog.com/simfinger-mobile-mac-screencasts/">SimFinger &#8211; make awesome screencasts of your mobile apps on your Mac</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/simfinger-mobile-mac-screencasts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FoursquareX: Foursquare client for OSX</title>
		<link>http://thechangelog.com/foursquarex-foursquare-client-for-osx/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=foursquarex-foursquare-client-for-osx</link>
		<comments>http://thechangelog.com/foursquarex-foursquare-client-for-osx/#comments</comments>
		<pubDate>Sun, 24 Jan 2010 21:10:00 +0000</pubDate>
		<dc:creator>Wynn Netherland</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[apps]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[desktop]]></category>
		<category><![CDATA[foursquare]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[location]]></category>
		<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://new.thechangelog.com/foursquarex-foursquare-client-for-osx/</guid>
		<description><![CDATA[<p>Now you can be the mayor of your cube farm on Foursquare in style. FoursquareX is a sexy Foursquare client for Snow Leopard. Oh, and it&#8217;s open source, so go ahead and fork it and add your own features. [Source on GitHub] [Homepage]</p><p>The post <a href="http://thechangelog.com/foursquarex-foursquare-client-for-osx/">FoursquareX: Foursquare client for OSX</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Now you can be the mayor of your cube farm on Foursquare in style. <a href="http://codebutler.github.com/foursquarex">FoursquareX</a> is a sexy <a href="http://foursquare.com/">Foursquare</a> client for Snow Leopard. Oh, and it&#8217;s open source, so go ahead and fork it and add your own features.</p>

<p><a href="http://github.com/codebutler/FoursquareX"><img src="http://codebutler.github.com/foursquarex/images/screenshot-map.png" width="530" height="385" /></a></p>

<p>[<a href="http://github.com/codebutler/FoursquareX">Source on GitHub</a>] [<a href="http://codebutler.github.com/foursquarex/">Homepage</a>]</p>
<p>The post <a href="http://thechangelog.com/foursquarex-foursquare-client-for-osx/">FoursquareX: Foursquare client for OSX</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/foursquarex-foursquare-client-for-osx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MBCoverFlowView &#8211; open source Cover Flow for Obj-C</title>
		<link>http://thechangelog.com/mbcoverflowview-open-source-cover-flow-for-obj-c/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mbcoverflowview-open-source-cover-flow-for-obj-c</link>
		<comments>http://thechangelog.com/mbcoverflowview-open-source-cover-flow-for-obj-c/#comments</comments>
		<pubDate>Sat, 05 Dec 2009 01:28:00 +0000</pubDate>
		<dc:creator>Wynn Netherland</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[obj-c]]></category>

		<guid isPermaLink="false">http://new.thechangelog.com/mbcoverflowview-open-source-cover-flow-for-obj-c/</guid>
		<description><![CDATA[<p>Build fantastic iTunes-like scrolling views into your Cocoa apps. [Source on GitHub]</p><p>The post <a href="http://thechangelog.com/mbcoverflowview-open-source-cover-flow-for-obj-c/">MBCoverFlowView &#8211; open source Cover Flow for Obj-C</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Build fantastic iTunes-like scrolling views into your Cocoa apps.   <img src="http://static.tumblr.com/njo56hx/fF8ku5o9d/cover-flow.jpg" alt="screenshot" /></p>

<p>[<a href="http://github.com/mattball/MBCoverFlowView">Source on GitHub</a>]</p>
<p>The post <a href="http://thechangelog.com/mbcoverflowview-open-source-cover-flow-for-obj-c/">MBCoverFlowView &#8211; open source Cover Flow for Obj-C</a> appeared first on <a href="http://thechangelog.com">The Changelog</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://thechangelog.com/mbcoverflowview-open-source-cover-flow-for-obj-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
