Artigo

Go Tech

Visão Geral de iPhone Persistent Store

06julho

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)?

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.

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.

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.

Ao buscar na web por opções tivemos a seguinte lista de tecnologias:

Core Data FMDB Magical Panda Mogenerator OmniDataObjects iphone-rsdb SQLite SQLitePersistentObjects
Abstraction level object graph manager SQLite wrapper ActiveRecord (over Core Data) object graph manager Core Data API implementation (over SQLite) SQLite wrapper (based on fmdb) - ActiveRecord over SQLite
belongs_to implementation yes yes yes yes yes yes yes yes
has_many implementation yes yes yes yes yes yes yes yes
many_to_many implementation yes yes yes yes N/A no yes no
SQL no yes no no no yes yes yes
Lazy Loading yes no yes yes yes no yes no
License iPhone Program MIT MIT N/A MIT Apache 2.0 Public Domain New BSD License

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.

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.

Acompanhe!

Este post também está disponível em inglês: iPhone Persistent Store Overview

, , ,

Deixe um comentário

Você precisa estar logado para comentar.