<?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>Indigo &#187; persistence</title>
	<atom:link href="http://i.ndigo.com.br/tag/persistence/feed/" rel="self" type="application/rss+xml" />
	<link>http://i.ndigo.com.br</link>
	<description>I.ndigo Website</description>
	<lastBuildDate>Fri, 03 Feb 2012 19:01:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1-alpha</generator>
		<item>
		<title>iPhone Persistent Store Overview</title>
		<link>http://i.ndigo.com.br/2010/07/iphone-persistent-store-overview/</link>
		<comments>http://i.ndigo.com.br/2010/07/iphone-persistent-store-overview/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 23:24:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Core Data]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[persistence]]></category>

		<guid isPermaLink="false">http://i.ndigo.com.br/?p=62</guid>
		<description><![CDATA[Storing information over iPhone apps is a task that needs to be carefully taken and analyzed. We know an iPhone has limited resources that need to be used and released, properly. The problem is: what happens when you have an app that stores and load large amount of data (e.g, a Sales Force Automation Applications)? [...]]]></description>
			<content:encoded><![CDATA[<p>Storing information over iPhone apps is a task that needs to be carefully taken and analyzed. We know an iPhone has limited resources that need to be used and released, properly. The problem is: what happens when you have an app that stores and load large amount of data (e.g, a Sales Force Automation Applications)?</p>
<p>We don&#8217;t know how the application will respond to these data access with the time (as the database size increases). Moreover, we have lot of third-party options of persistence layer, or layers responsible to manage data access and data mapping to objects.</p>
<p>These third-party options may have other problems that could resulting in performance loss with the time. So, choosing the best for each situation isn&#8217;t an easy job.</p>
<p>Thus, I.ndigo has decided to begin a series   of performance experiments on the most known options of Persistent Store, and obviously, the Core Data purely implemented.</p>
<p>Searching on the web for options resulted on the following list of technologies:</p>
<div style="overflow-x: scroll;">
<table id="h-.j" style="border: 1px solid #ccc;" border="1" width="1000" align="center">
<tbody>
<tr>
<td width="11.11111111111111%"></td>
<td width="11.11111111111111%"><strong>Core Data</strong></td>
<td width="11.11111111111111%"><strong>FMDB</strong></td>
<td width="11.11111111111111%"><strong>Magical Panda</strong></td>
<td width="11.11111111111111%"><strong>Mogenerator</strong></td>
<td width="11.11111111111111%"><span style="font-family: arial,sans,sans-serif;"><strong>OmniDataObjects</strong></span></td>
<td width="11.11111111111111%"><span style="font-family: arial,sans,sans-serif;"><strong>iphone-rsdb</strong></span></td>
<td width="11.11111111111111%"><strong>SQLite</strong></td>
<td width="11.11111111111111%"><span style="font-family: arial,sans,sans-serif;"><strong>SQLitePersistentObjects</strong></span></td>
</tr>
<tr>
<td width="11.11111111111111%">Abstraction level</td>
<td width="11.11111111111111%"><span style="font-family: arial,sans,sans-serif;">object graph manager</span></td>
<td width="11.11111111111111%"><span style="font-family: arial,sans,sans-serif;">SQLite wrapper</span></td>
<td width="11.11111111111111%"><span style="font-family: arial,sans,sans-serif;">ActiveRecord (over Core Data)</span></td>
<td width="11.11111111111111%"><span style="font-family: arial,sans,sans-serif;">object graph manager</span></td>
<td width="11.11111111111111%"><span style="font-family: arial,sans,sans-serif;">Core Data API implementation (over SQLite)</span></td>
<td width="11.11111111111111%"><span style="font-family: arial,sans,sans-serif;">SQLite wrapper (based on fmdb)</span></td>
<td width="11.11111111111111%">-</td>
<td width="11.11111111111111%"><span style="font-family: arial,sans,sans-serif;">ActiveRecord over SQLite</span></td>
</tr>
<tr>
<td width="11.11111111111111%">belongs_to implementation</td>
<td width="11.11111111111111%">yes</td>
<td width="11.11111111111111%">yes</td>
<td width="11.11111111111111%">yes</td>
<td width="11.11111111111111%">yes</td>
<td width="11.11111111111111%">yes</td>
<td width="11.11111111111111%">yes</td>
<td width="11.11111111111111%">yes</td>
<td width="11.11111111111111%">yes</td>
</tr>
<tr>
<td width="11.11111111111111%">has_many implementation</td>
<td width="11.11111111111111%">yes</td>
<td width="11.11111111111111%">yes</td>
<td width="11.11111111111111%">yes</td>
<td width="11.11111111111111%">yes</td>
<td width="11.11111111111111%">yes</td>
<td width="11.11111111111111%">yes</td>
<td width="11.11111111111111%">yes</td>
<td width="11.11111111111111%">yes</td>
</tr>
<tr>
<td width="11.11111111111111%">many_to_many implementation</td>
<td width="11.11111111111111%">yes</td>
<td width="11.11111111111111%">yes</td>
<td width="11.11111111111111%">yes</td>
<td width="11.11111111111111%">yes</td>
<td width="11.11111111111111%">N/A</td>
<td width="11.11111111111111%">no</td>
<td width="11.11111111111111%">yes</td>
<td width="11.11111111111111%">no</td>
</tr>
<tr>
<td width="11.11111111111111%">SQL</td>
<td width="11.11111111111111%">no</td>
<td width="11.11111111111111%">yes</td>
<td width="11.11111111111111%">no</td>
<td width="11.11111111111111%">no</td>
<td width="11.11111111111111%">no</td>
<td width="11.11111111111111%">yes</td>
<td width="11.11111111111111%">yes</td>
<td width="11.11111111111111%">yes</td>
</tr>
<tr>
<td width="11.11111111111111%">Lazy Loading</td>
<td width="11.11111111111111%">yes</td>
<td width="11.11111111111111%">no</td>
<td width="11.11111111111111%">yes</td>
<td width="11.11111111111111%">yes</td>
<td width="11.11111111111111%">yes</td>
<td width="11.11111111111111%">no</td>
<td width="11.11111111111111%">yes</td>
<td width="11.11111111111111%">no</td>
</tr>
<tr>
<td width="11.11111111111111%">License</td>
<td width="11.11111111111111%">iPhone Program</td>
<td width="11.11111111111111%">MIT</td>
<td width="11.11111111111111%">MIT</td>
<td width="11.11111111111111%">N/A</td>
<td width="11.11111111111111%">MIT</td>
<td width="11.11111111111111%">Apache 2.0</td>
<td width="11.11111111111111%">Public Domain</td>
<td width="11.11111111111111%">New BSD License</td>
</tr>
</tbody>
</table>
</div>
<div>This table also shows information about these technologies, which helped us to choose different options to test and compare one another. This table also shows whether there is any license limitation or need for a specific tool, such as SQL implementation.</p>
<p>Next posts will cover a serie of tests executed on some of these technologies and comparisons between them in several scenarios.</p>
<p>Stay tuned!</p>
<p>This post is also available in Portuguese: <a title="Visão Geral de iPhone Persistent Store" href="http://i.ndigo.com.br/2010/07/visao-geral-de-iphone-persistent-store/" target="_self">Visão Geral de iPhone Persistent Store</a></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://i.ndigo.com.br/2010/07/iphone-persistent-store-overview/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

