<?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; magical panda</title>
	<atom:link href="http://i.ndigo.com.br/tag/magical-panda/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>Visão Geral de iPhone Persistent Store</title>
		<link>http://i.ndigo.com.br/2010/07/visao-geral-de-iphone-persistent-store/</link>
		<comments>http://i.ndigo.com.br/2010/07/visao-geral-de-iphone-persistent-store/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 22:43:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Go Tech]]></category>
		<category><![CDATA[Core Data]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[magical panda]]></category>
		<category><![CDATA[SQLite]]></category>

		<guid isPermaLink="false">http://i.ndigo.com.br/?p=39</guid>
		<description><![CDATA[Armazenar informações em aplicações de iPhone é uma tarefa que deve ser cuidadosamente analisada. Sabemos que o iPhone tem limitações de recursos e que eles precisam ser usados e liberados de forma correta. O problema é: o que acontece quando você precisa de uma aplicação que armazena e carrega uma grande quantia de dados (como [...]]]></description>
			<content:encoded><![CDATA[<p>Armazenar  informações em aplicações de iPhone é uma tarefa que deve ser  cuidadosamente analisada. Sabemos que o iPhone tem limitações de  recursos e que eles precisam ser usados e liberados de forma correta. O  problema é: o que acontece quando você precisa de uma aplicação que  armazena e carrega uma grande quantia de dados (como um Sistema de  Automação de Força de Venda)?</p>
<p>Não sabemos se aplicação  iPhone se comportará bem nesses acessos (conforme o tamanho do banco de  dados aumenta). Além disso, há diversas opções de implementação de  camada de persistência desenvolvida por terceiro, ou seja, camada  responsável por gerenciar o acesso aos dados e seu mapeamento a objetos.</p>
<p>Estas  opções de terceiros podem ter outros problemas que, por sua vez, podem  resultar em perda de desempenho com o tempo. Assim, escolher o melhor  para cada situação não é fácil.</p>
<p>Portanto, a I.ndigo  decidiu realizar uma série de experimentos de desempenho nas opções mais  conhecidas de persistência de dados e também, obviamente, no Core Data  implementado puramente.</p>
<p>Ao buscar na web por opções tivemos a seguinte lista de tecnologias:</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>
<p>Esta tabela também mostra algumas informações sobre as tecnologias, que  nos ajudaram a escolher opções diferentes para testar e comparar. A  tabela também ajuda a escolher quando você tem limitações de licença ou  precisa de uma funcionalidade específica, como implementação de SQL.</p>
<p>Os  próximos posts cobrirão uma série de testes executados em algumas  dessas tecnologias e comparações entre elas em diversos cenários.</p>
<p>Acompanhe!</p>
<p>Este post também está disponível em inglês: <a title="iPhone Persistent Store Overview" href="http://i.ndigo.com.br/2010/07/iphone-persistent-store-overview/" target="_self">iPhone Persistent Store Overview</a></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://i.ndigo.com.br/2010/07/visao-geral-de-iphone-persistent-store/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

