<?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>Codethink &#187; framework</title>
	<atom:link href="https://codethink.no-ip.org/tags/framework/feed" rel="self" type="application/rss+xml" />
	<link>https://codethink.no-ip.org</link>
	<description>A blog about coding, life, and other arbitrary topics</description>
	<lastBuildDate>Sun, 15 Mar 2026 21:30:15 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.29</generator>
	<item>
		<title>Matchbook &#8211; Multi-platform Realtime Gaming</title>
		<link>https://codethink.no-ip.org/archives/1046</link>
		<comments>https://codethink.no-ip.org/archives/1046#comments</comments>
		<pubDate>Sun, 26 Jan 2014 13:56:58 +0000</pubDate>
		<dc:creator><![CDATA[aroth]]></dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[objective-c]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[objc]]></category>
		<category><![CDATA[open-source]]></category>

		<guid isPermaLink="false">http://codethink.no-ip.org/wordpress/?p=1046</guid>
		<description><![CDATA[Have you ever thought that it would be cool if you could build a cross-platform or multi-platform game and connect from one platform to another without having to do all the heavy lifting with respect to matchmaking, communications, and related &#8230; <a href="https://codethink.no-ip.org/archives/1046">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Have you ever thought that it would be cool if you could build a cross-platform or multi-platform game and connect from one platform to another without having to do all the heavy lifting with respect to matchmaking, communications, and related tasks yourself?  Well now you can, thanks to <a href="https://github.com/adam-roth/matchbook" target="_blank">Matchbook</a>.</p>
<div id="attachment_1049" style="width: 650px" class="wp-caption aligncenter"><a href="http://codethink.no-ip.org/wordpress/wp-content/uploads/2014/01/running_small.jpg" rel="lightbox[1046]"><img src="http://codethink.no-ip.org/wordpress/wp-content/uploads/2014/01/running-1200x721.jpg" alt="Matchbook Example &quot;Game&quot;" title="Matchbook Example &quot;Game&quot;" width="640" height="384" class="size-large wp-image-1049" /></a><p class="wp-caption-text">Matchbook Example &quot;Game&quot;, 2x iOS and 2x Android clients</p></div>
<p>Matchbook is a lightweight and platform-agnostic matchmaking solution, intended for use in mobile applications (think games that require near-real-time, relatively-low-latency, persistent communications between two or more client devices).</p>
<p>At its core is a server component, which provides a JSON-based webservice allowing clients to find, create, and join matches. The server also acts as a proxy/relay when necessary, allowing client devices to tunnel through any firewalls that might exist between them.</p>
<p>In addition to the server component, Matchbook includes prebuilt SDK&#8217;s for both Java and Objective-C. These SDK&#8217;s are intended to support the development of native applications that make use of the Matchbook webservice on Android and iOS devices, respectively.</p>
<p>I could go on at length, but it&#8217;s simpler to just link to the project on Github (Matchbook is open-source, and permissively licensed, naturally):</p>
<p><a href="https://github.com/adam-roth/matchbook" target="_blank">https://github.com/adam-roth/matchbook</a></p>
<p>Note that Google is currently building comparable functionality into Google Play, although their realtime communications API is currently only available on Android (iOS support is under development).  </p>
<p>And although Apple already has realtime and turn-based gaming API&#8217;s for iOS, they natually have no intention of inviting Android devices to the party.  Ever.</p>
<p>So let the record show that Matchbook got there first.</p>
]]></content:encoded>
			<wfw:commentRss>https://codethink.no-ip.org/archives/1046/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[XCode] Building Universal iOS Frameworks</title>
		<link>https://codethink.no-ip.org/archives/688</link>
		<comments>https://codethink.no-ip.org/archives/688#comments</comments>
		<pubDate>Sun, 26 Jun 2011 11:56:12 +0000</pubDate>
		<dc:creator><![CDATA[aroth]]></dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[objective-c]]></category>
		<category><![CDATA[process]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://codethink.no-ip.org/wordpress/?p=688</guid>
		<description><![CDATA[Here&#8217;s an excellent little project that I stumbled across not too long ago: https://github.com/kstenerud/iOS-Universal-Framework This project provides a single installation shell script that will add a new Project Template to XCode, one that can be used to build universal iOS &#8230; <a href="https://codethink.no-ip.org/archives/688">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Here&#8217;s an excellent little project that I stumbled across not too long ago:</p>
<p><a href="https://github.com/kstenerud/iOS-Universal-Framework" target="_blank">https://github.com/kstenerud/iOS-Universal-Framework</a></p>
<p>This project provides a single installation shell script that will add a new Project Template to XCode, one that can be used to build universal iOS frameworks.  Now this wouldn&#8217;t be a big deal (and in all rights, <em>shouldn&#8217;t</em> be a big deal), if not for the fact that for some unspecified and frustrating reason, XCode has no built-in ability to create such frameworks.  This means that up until recently if you had an iOS library that you wanted to use across many projects, or that you wanted to distribute for other developers to use in their projects, you had only a few not-very-good options:</p>
<ul>
<li>Include your source code in every project that uses your library (increased compilation time, hooray!).</li>
<li>Build two library versions, one for armv6/armv7 and one for x86.</li>
<li>Screw with the linker to <a href="http://mark.aufflick.com/blog/2010/11/19/making-a-fat-static-library-for-ios-device-and-simulator" target="_blank">manually create a &#8220;fat&#8221; library</a>.</li>
<li>Use the <a href="http://db-in.com/blog/2011/05/creating-universal-framework-to-iphone-ios/" target="_blank">Bundle Hack</a> and hope that it works.</li>
</ul>
<p>It&#8217;s worth noting here that the first three options listed above do nothing to help with the management of any shared header files needed to actually make use of the library code.  The fourth option does allow you to include public headers in your build artifact, but the setup to do so is tedious, and the entire thing is basically a giant hack besides.  None of these options are really very convenient or useful from the developer&#8217;s point of view.</p>
<p>What developers really need, what they should have access to, and what XCode should have supported at least since the release of iOS 4.0, is the ability to build true universal iOS frameworks that are &#8220;real&#8221; frameworks in the same sense that UIKit and CoreGraphics are real frameworks.  And that&#8217;s exactly what the <a href="https://github.com/kstenerud/iOS-Universal-Framework" target="_blank">iOS-Universal-Framework</a> project gives you.  Just install it and you get a handy XCode Project Template that can be used to build a universal iOS framework.  This lets you build real iOS frameworks that include libraries for both x86 and armv6/armv7 in a single package, automatically bundled with your public header files.  You (or anyone else) can then use the generated framework inside of other projects in the same way as any other iOS framework; just add it to your &#8220;Link With Binary Libraries&#8221; build phase, and away you go.</p>
<p>All told, the  <a href="https://github.com/kstenerud/iOS-Universal-Framework" target="_blank">iOS-Universal-Framework</a> Project Template is great and works exactly as advertised.  Just install it and you&#8217;re good to go.  I&#8217;ve only come across one minor caveat worth mentioning, which is that although the template does correctly produce a universal iOS framework, the build product shown in XCode will actually point to an architecture-specific version of the framework.  In order to find the correct, universal framework it is necessary to do a &#8220;Show in Finder&#8221; on the build product shown in XCode (or otherwise navigate to your project output directory), and then go up a level (or two) in the filesystem to find the folder that contains the universal version of the framework (<em>edit:  as per Karl&#8217;s comment below, this has now been fixed.  Hooray!</em>).  </p>
<p>Apart from that minor annoyance this little XCode extension is really quite excellent, and I encourage you to give it a try.  My personal thanks to Karl Stenerud for putting this together.</p>
]]></content:encoded>
			<wfw:commentRss>https://codethink.no-ip.org/archives/688/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
