Persistência. Desenvolvimento em ios. Copyright 2011 Catarina Silva DEI ESTG - Instituto Politécnico de Leiria



Documentos relacionados
Desenvolvendo para iphone e ipad

Criar uma aplicação JPA2 com EclipseLink e H2

Interacção com o Utilizador

Android e Bancos de Dados

SISTEMAS DE INFORMAÇÃO GERENCIAIS

1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF)

ESPECIFICAÇÃO TÉCNICA CIELO MOBILE CAIXA RÁPIDO. Julho de 2015

A interface do Microsoft Visual Studio 2005

Banco de Dados Aula 02. Colégio Estadual Padre Carmelo Perrone Profº: Willian

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO

Programação para Android. Aula 07: Persistência de dados Shared Preferences, Internal e External Storage

Bases de Dados II Engª. Informática + Ensino Informática

FIGURA 9.1 Arquitetura do SQL Server Utility (adaptado de Microsoft)

Editor HTML. Composer

Manual de Utilizador. Disciplina de Projecto de Sistemas Industriais. Escola Superior de Tecnologia. Instituto Politécnico de Castelo Branco

Os dados no MySQL são armazenado em tabelas. Uma tabela é uma colecção de informação relacionada e consiste em colunas e linhas.

Data de Aplicação. Rede Local e Segurança Informática Básica

COLIBRI Ambiente Colaborativo Multimédia MÓDULO MOODLE. Rui Ribeiro FCCN - Dezembro 2010

Manual de Instalação PIMSConnector em Windows

TDC desenvolvimento. para iphone. Helder da Rocha

Persistência de dados com JPA. Hélder Antero Amaral Nunes

Hugo Pedro Proença, 2007

EMF. Eclipse Modeling Framework. José G. de Souza Júnior. direção: Dr. Denivaldo Lopes

Gerar o Ficheiro de Inventário

Mapas. Desenvolvimento em ios. Copyright 2011 Catarina Silva DEI ESTG - Instituto Politécnico de Leiria

Funções de um SO. Gerência de processos Gerência de memória Gerência de Arquivos Gerência de I/O Sistema de Proteção

Ferramentas de Engª de Requisitos

Guia Rápido do Contacts

Factura Electrónica Grupo Auchan

Desenvolvimento de jogos para ios. Lucas Marinho

Consistem num conjunto de apontadores para instâncias especificas de cada relação.

2ª EDIÇÃO. André Milani. Novatec

ELABORAR UMA APRESENTAÇÃO EM POWERPOINT BIBLIOTECA ESCOLAR "JÚLIO DINIS"

P S I 2. º A N O F 5 M E S T R E / D E T A L H E E P E S Q U I S A. Criar uma relação mestre-detalhe. Pesquisa de informação

A Internet 7 Criação de Páginas Web

Figura 1 - O computador

Curso:... Prova de Sistemas de Informação para Bibliotecas (21105) Nome:... Nº de Estudante:... B. I. nº... Assinatura do Vigilante:...

Engenharia de Software. Enunciado da Primeira Parte do Projecto

Aprendendo Cocoa com Objective-C Paris Buttfield-Addison Jonathon Manning

Algoritmos de pesquisa. Tabelas de dispersão/hash

Possui como idéia central a divisão de um universo de dados a ser organizado em subconjuntos mais gerenciáveis.

Vejamos um exemplo de uso da API. Como vimos, os agentes imobiliários de nosso aplicativo podem ingressar e visualizar as propriedades que possuem em

Função dos Sistemas de Bases de Dados Visão dos dados Modelos de dados Linguagem de Definição de Dados Linguagem de Manipulação de Dados Gestão de

Persistência em Software Orientado a Objetos:

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Como o FIT funciona. FIT: Framework for Integrated Tests FIT. Dados de testes. Programa. Fixtures. classes. Resultados de testes

Tarefa Orientada 2 Criar uma base de dados

GABARITO COMENTADO SISTEMAS OPERACIONAIS. PROF. Cláudio de C. Monteiro, Evanderson S. de Almeida, Vinícius de M. Rios

MANUAL DO UTILIZADOR

Ficha prática nº 7. SGBD Microsoft Access e SQL Server

Grupo I [6,6v] Responda com os valores que se observam depois da chamada acontecer. 1 Falta na mensagem de resposta. Valor retornado na chamada

Guia e Utilização do Visual Studio 6.0

PACWEB Módulo de Pesquisa MANUAL DO UTILIZADOR

Prevayler. Perola. André Luís Sales de Moraes Juliana Keiko Yamaguchi Tatiana Yuka Takaki

Criação de um Web Services em.net

Estrutura Interna do KernelUNIX Sistema O. Estrutura Interna de Arquivos (1) Estrutura Seqüência. User application. Standard Unix libraries

Desenvolvimento Web com Framework Demoiselle versão 1.0

Especificação do 3º Trabalho

Tarefa Orientada 1 Base de Dados Editora

GESTÃO DE INFORMAÇÃO PESSOAL OUTLOOK (1)

Tutorial exe elearning XHTML editor (versão 1.0x)

Podemos agora ver no IDE do Morfik os objetos que já incorporamos ao nosso projeto :

UNIDADE 2: Sistema Operativo em Ambiente Gráfico

Utilizar o Microsoft Offi ce OneNote 2003: Iniciação rápida

Diagrama de contexto

Vitor Diogo Faria Pereira. Programador / Analista de Sistemas e Software

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

ESPECIFICAÇÃO TÉCNICA CIELO MOBILE CHAMADA EXTERNA. Maio de 2015

Sistema dinâmico de impressão da tabela de detalhes das facturas

Faculdade de Ciências da Universidade de Lisboa CURSO DE GPS. Módulo x. (Aula Prática) Reliance - Ashtech. Suas Aplicações Em SIG.

ACTOS PROFISSIONAIS GIPE. Gabinete de Inovação Pedagógica

UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA. Sistemas Distribuídos

MANUAL UTILIZADOR SERVIÇO FTP

Instruções para o participante no Curso de e-learning. Esquizofrenia Questões Aprofundadas

Capítulo 4. Packages e interfaces

ZSRest. Manual de Configuração. CheckOutPDA. V2011-Certificado

CallManager expresso: Crie uma imagem de fundo personalizada para o telefone IP 7970

SOP - TADS Sistemas de Arquivos Cap 4 Tanenmbaum

Trabalhos Práticos. Programação II Curso: Engª Electrotécnica - Electrónica e Computadores

2. Utilitários de sistema para ambiente Windows Ferramentas de gestão de ficheiros

Amostras e guias de iniciação Versão 8 Edição 0. Guia de iniciação do Hiring Sample para o IBM Process Designer

Descrição de Como Utilizar

Manual XML-Validador-Conversor Registar recursos humanos

Programação por Objectos. Java

XACML. extensible Access Control Markup Language

Como funciona a MEO Cloud?

WEB DESIGN LAYOUT DE PÁGINA

Programação 2ºSemestre MEEC /2011. Programação 2º Semestre 2010/2011 Enunciado do projecto

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento Eclipse Introdução à Linguagem de Programação JAVA

Antes de começar tens que saber o que é o hi5. O hi5 é um conjunto de páginas pessoais em que o utilizador se expõe a uma comunidade virtual.

Persistência e Banco de Dados em Jogos Digitais

Modelo Lógico e Físico da Base de Dados

PROGRAMAÇÃO Microsoft WINDOWS XP

Índice: Nitgen do Brasil

O Gerenciamento de Documentos Analógico/Digital

Editor Eclipse para Programas F

Transcrição:

Persistência Desenvolvimento em ios

Persistência NSUserDefaults Property Lists Archiving SQLite Core Data

NSUserDefaults Classe NSUserDefaults usada para guardar pequenas quantidades de dados Não é necessário conhecimento adicional de bases de daos Trata-se de uma classe da Cocoa Foundation que permite que uma aplicação aceda e salvaguarde as suas preferências usando uma property list

NSUserDefaults: tipos de objectos Podem salvaguardar-se objectos dos seguintes tipos: NSData, NSString, NSNumber, NSDate, NSArray, NSDictionary Caso se pretenda armazenar outro tipo de objecto será necessário arquivá-lo, como veremos à frente ou dar-lhe uma destas formas, normalmente NSData, NSNumber ou NSString

NSUserDefaults: como usar (1) Criar instâncias dos dados nos formatos possíveis Armazenar os dados: NSUserDefaults *defaults = [NSUserDefaults standarduserdefaults]; [defaults setobject:primeironome forkey:@ primeironome"]; [defaults synchronize];

NSUserDefaults: como usar (2) Recuperar os dados: NSUserDefaults *defaults = [NSUserDefaults standarduserdefaults]; NSString *primeironome = [defaults objectforkey:@ primeironome"];

NSUserDefaults: demo (1) Criar e salvar uma view-based application para iphone: Contacto

NSUserDefaults: demo (2) Criar o interface no ContactoViewController.xib

NSUserDefaults: demo (3) Fazer as ligações sempre com o ctrl: Do textfield do primeironome para dentro dos {} s do interface do ContactoViewController (igual para ultimonome e idade) criar outlets

NSUserDefaults: demo (4) Fazer as ligações sempre com o ctrl: Do botão Guardar para mesmo antes do @end criar action

NSUserDefaults: demo (5) Guardar os dados: ContactoViewController.m, guardar: NSString *primeironome = [primeironometextfield text]; NSUserDefaults *defaults = [NSUserDefaults standarduserdefaults]; [defaults setobject:primeironome forkey:@"primeironome"]; [defaults synchronize];

NSUserDefaults: demo (6) Recuperar os dados: ContactoViewController.m, viewdidload NSUserDefaults *defaults = [NSUserDefaults standarduserdefaults]; NSString *firstname = [defaults objectforkey:@"firstname"];

Exercício 1

Sandbox Cada aplicação tem uma directoria Documents e só pode escrever/ler aí por questões de segurança, privacidade, leaks Home -> Library -> Application Support -> iphonesimulator Applications, Library, Media, tmp Na directoria Applications existe uma directoria para cada aplicação Cada aplicação tem ainda a directoria Documents que é usada para guardar os ficheiros do utilizador

Directorias das aplicações Documents: onde a aplicação guarda os seus dados (excepto o NSUserDefaults) NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsdirectory = [paths objectatindex:0]; Library: Onde são guardados os NSUserDefaults tmp: usada para ficheiros temporários. Não é guardado pela aplicação (itunes)

Directorias das aplicações Documents: onde a aplicação guarda os seus dados (excepto o NSUserDefaults) NSArray * NSSearchPathForDirectoriesInDomains ( NSSearchPathDirectory directory, NSSearchPathDomainMask domainmask, BOOL expandtilde ); NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsdirectory = [paths objectatindex:0]; Library: Onde são guardados os NSUserDefaults tmp: usada para ficheiros temporários. Não é guardado pela aplicação (itunes)

NSFilemanager (1) NSFilemanager *manager = [[NSFileManager alloc] init]; - (BOOL)createDirectoryAtPath:(NSString *)path withintermediatedirectories:(bool)createintermediates ayributes: (NSDicZonary *)ayributes error:(nserror **)error - (NSArray *)contentsofdirectoryatpath:(nsstring *)path error:(nserror **)error

NSFilemanager (2) - (NSString *)stringbyappendingpathcomponent:(nsstring *)astring - (NSString *)stringbydeleznglastpathcomponent - (BOOL)writeToFile:(NSString *)path atomically: (BOOL)useAuxiliaryFile encoding:(nsstringencoding)enc error: (NSError **)error + (id)stringwithcontentsoffile:(nsstring *)path encoding: (NSStringEncoding)enc error:(nserror **)error

Property Lists (1) Organizam os dados em named values, usando objectos de tipos diferentes Podem ser editadas com o Xcode ou com um editor de propriedades Podem ter objectos de vários tipos, desde que os seus elementos sejam serializáveis: NSArray, NSMutableArray, NSDictionary, NSMutableDictionary NSData, NSMutableData, NSString, NSMutableString NSNumber, NSDate

Property Lists (2) Ficheiros.plist armazenados na directoria do utilizador Caso consiga construir o seu modelo de dados só com estes tipos, pode usar listas de propriedades Continua a ser adequado para poucos dados Não é pesquisável

Property lists: como usar (1) Criar um NSData a partir de uma lista de propriedades + (NSData *)datawithpropertylist:(id)plist format:(nspropertylistformat)format // XML ou binário opzons:(nspropertylistwriteopzons)opt // =0 error:(nserror **)error

Property lists: como usar (2) Criar uma lista de propriedades a partir de NSData + (id)propertylistwithdata:(nsdata *)data opzons:(nspropertylistreadopzons)opt //mutable vs. imutable format:(nspropertylistformat *)format // XML ou binário error:(nserror **)error

Property lists: como usar (3) Escrever uma lista de propriedades para ficheiro Usar NSPropertyListSerializa1on para escrever para um NSData de depois - (BOOL) writetourl:(nsurl *)aurl atomically:(bool)atomically Ler uma lista de propriedades de um URL Ler o URl para um NSData - (id) initwithcontentsofurl:(nsurl *)aurl Depois usar NSPropertyListSerializa1on para transformar o NSData numa lista de propriedades

Archiving Mecanismo de persistência para qualquer objecto, por exemplo grafos Todos os objectos no grafo devem implementar o protocolo NSCoding - (void)encodewithcoder:(nscoder *)encoder - (id)initwithcoder:(nscoder *)decoder

SQLite Um só ficheiro com uma base de dados SQL Usada em diferentes ambientes que necessitam de bases de dados leves int sqlite3_open(cosnt char *filename, sqlite3 **db); int sqlite3_exec(sqlite3 *db, const char * sql, int (*callback)... int sqlite3_close(sqlite *db);

Core Data (1) Permite desenhar os modelos de dados visualmente sem escrever código (ficheiro.xcdatamodel) Classes <> Entidades Entidades constituídas por Atributos Relacionamentos Fetched properties (lazy loading)

Core Data (2) Objectos são guardados numa zona de memória persistente: SQLite por omissão Ficheiros binários Memória Usa Managed Objects que assumem o papel semelhante a uma instância

Core Data (3) Permite criar um mapeamento entre objectos (entidades como normalmente se faria em SQL ou com um DER) Criam-se modelos graficamente. É aconselhável fazê-lo semiautomaticamente com o Xcode (xcdatamodel file), definindo o mapeamento entre os objectos e a base de dados

Core Data (4) Para aceder aos objectos na base de dados é necessário um NSManagedObjectContext Usa-se a classe NSEntityDescription que permite aceder a entidades dentro de um contexto Usando property s acede-se a atributos sem necessidade de acessores. Depois de criar o modelo de dados, o Xcode gera o managed object de forma simples

Exercício Core Data

Bibliografia http://developer.apple.com/ http://www.stanford.edu/class/cs193p Beginning iphone Development, APRESS, Cap. 12