<story><title>IOS Boilerplate: A base template for iOS apps</title><url>http://iosboilerplate.com/</url></story><parent_chain><item><author>zbowling</author><text>So here is my solution after giving it a little thought:&lt;p&gt;Instead of a base template project, we need a modular system for adding dependent packages on a case by case basis similar to python eggs and ruby gems. Just a simple set of command line tools.&lt;p&gt;Then you could build a central repository of formula scripts for adding frameworks to your project (maybe something simple like how homebrew just uses really simple ruby scripts and built in git awesomeness to keep it up to date and power a good portion of itself and allow others to submit forumlas via pull requests).&lt;p&gt;The formulas could pull down code from these various project&apos;s hosts on an as needed basis and they could be downloaded right into a standard &quot;/vendor/&quot; folder in your project directory when installed. A file would created with install info and time it was pulled so you could easily update the project later with another command.&lt;p&gt;Then maybe update (or maybe not) update your project file to reference it, add target dependencies, add header search paths or copy file operations for frameworks, etc. (This could be done by generating a base xcconfig file that links in xcconfig files provided by each forumla install into the project).&lt;p&gt;All these packages could be added to this system and allow the user to search and find great libraries, install them, keep them up to date, and whatever.&lt;p&gt;(If no body else does this, I may end up do it actually)</text></item><item><author>zbowling</author><text>This isn&apos;t really necessary and most of these packages will be obsolete in iOS 5 and using a few them (like ASIHTTPRequest) will get you in trouble with ARC.&lt;p&gt;* JSONKit - It&apos;s an ok choice but there are literally 5 choices I can think of off the top of my head (not including the now built in JSON support in Lion and iOS 5). I prefer SBJSON because it was once benchmarked with the fastest read speed and it has a dirt simple interface for me as a dev.&lt;p&gt;* ASIHTTPRequest - I used to swear by it, but now NSURLConnection in Lion (and iOS 5) has async methods with blocks. ASIHTTPRequest doesn&apos;t play nicely with ARC because it doesn&apos;t have a conventional pattern to object ownership (design to make it less to work to deal by deallocing itself for async usage).&lt;p&gt;* ImageManager - cute, but it&apos;s one of many solutions and this one takes some of the cache control out of my hands. I don&apos;t believe it resuses ASIHTTPRequest so now I have two HTTP libraries in my project and I&apos;m juggling between both.&lt;p&gt;* The numerous category packages to extend and add convenience methods - these are all cute but I like to take things on a case by case basis and not add code bloat and unused functionality in one shot.&lt;p&gt;The problem that I have is that unlike HTML5 boilerplate which is a common subset of the absolute minimum you are going to need 99% of the time that is put together in the best possible manor, this is just a collection of various packages that you probably will not end up using more than 50% of in most applications. It&apos;s not really a &quot;boilerplate&quot; for that reason.&lt;p&gt;Edit: my coworker sent me this when he saw I wrote this reply - &lt;a href=&quot;http://xkcd.com/386/&quot; rel=&quot;nofollow&quot;&gt;http://xkcd.com/386/&lt;/a&gt;</text></item></parent_chain><comment><author>eraserhd</author><text>I have started something like this, although I would barely call it alpha at this point. I would be willing to abandon it and contribute my effort elsewhere if there&apos;s another project further along or with a better design, but I offer mine for consideration.&lt;p&gt;&lt;a href=&quot;https://github.com/eraserhd/acd&quot; rel=&quot;nofollow&quot;&gt;https://github.com/eraserhd/acd&lt;/a&gt;&lt;p&gt;It&apos;s in the process of being renamed apothecary.  It&apos;s based around using git submodules for importing other people&apos;s code.  I was really tired of instructions like, &quot;copy all of these files into your project.&quot;  (Really?!)</text></comment>
<story><title>IOS Boilerplate: A base template for iOS apps</title><url>http://iosboilerplate.com/</url></story><parent_chain><item><author>zbowling</author><text>So here is my solution after giving it a little thought:&lt;p&gt;Instead of a base template project, we need a modular system for adding dependent packages on a case by case basis similar to python eggs and ruby gems. Just a simple set of command line tools.&lt;p&gt;Then you could build a central repository of formula scripts for adding frameworks to your project (maybe something simple like how homebrew just uses really simple ruby scripts and built in git awesomeness to keep it up to date and power a good portion of itself and allow others to submit forumlas via pull requests).&lt;p&gt;The formulas could pull down code from these various project&apos;s hosts on an as needed basis and they could be downloaded right into a standard &quot;/vendor/&quot; folder in your project directory when installed. A file would created with install info and time it was pulled so you could easily update the project later with another command.&lt;p&gt;Then maybe update (or maybe not) update your project file to reference it, add target dependencies, add header search paths or copy file operations for frameworks, etc. (This could be done by generating a base xcconfig file that links in xcconfig files provided by each forumla install into the project).&lt;p&gt;All these packages could be added to this system and allow the user to search and find great libraries, install them, keep them up to date, and whatever.&lt;p&gt;(If no body else does this, I may end up do it actually)</text></item><item><author>zbowling</author><text>This isn&apos;t really necessary and most of these packages will be obsolete in iOS 5 and using a few them (like ASIHTTPRequest) will get you in trouble with ARC.&lt;p&gt;* JSONKit - It&apos;s an ok choice but there are literally 5 choices I can think of off the top of my head (not including the now built in JSON support in Lion and iOS 5). I prefer SBJSON because it was once benchmarked with the fastest read speed and it has a dirt simple interface for me as a dev.&lt;p&gt;* ASIHTTPRequest - I used to swear by it, but now NSURLConnection in Lion (and iOS 5) has async methods with blocks. ASIHTTPRequest doesn&apos;t play nicely with ARC because it doesn&apos;t have a conventional pattern to object ownership (design to make it less to work to deal by deallocing itself for async usage).&lt;p&gt;* ImageManager - cute, but it&apos;s one of many solutions and this one takes some of the cache control out of my hands. I don&apos;t believe it resuses ASIHTTPRequest so now I have two HTTP libraries in my project and I&apos;m juggling between both.&lt;p&gt;* The numerous category packages to extend and add convenience methods - these are all cute but I like to take things on a case by case basis and not add code bloat and unused functionality in one shot.&lt;p&gt;The problem that I have is that unlike HTML5 boilerplate which is a common subset of the absolute minimum you are going to need 99% of the time that is put together in the best possible manor, this is just a collection of various packages that you probably will not end up using more than 50% of in most applications. It&apos;s not really a &quot;boilerplate&quot; for that reason.&lt;p&gt;Edit: my coworker sent me this when he saw I wrote this reply - &lt;a href=&quot;http://xkcd.com/386/&quot; rel=&quot;nofollow&quot;&gt;http://xkcd.com/386/&lt;/a&gt;</text></item></parent_chain><comment><author>bbsabelli</author><text>Something like &quot;kits&quot;?&lt;p&gt;&lt;a href=&quot;https://gist.github.com/582228/e1f475afec526b04a585cf517a72757bf38ef0b6&quot; rel=&quot;nofollow&quot;&gt;https://gist.github.com/582228/e1f475afec526b04a585cf517a727...&lt;/a&gt;</text></comment>