Persistência

8
Persistência A capacidade de persistir dados ou armazenar informações é sem dúvida um dos recursos mais importantes em qualquer linguagem de programação. Armazenar dados para uma posterior recuperação é uma constante na maioria dos ambientes computacionais, seja para persistência simples de parâmetros de configurações de algum sistema ou persistência de informações digitadas pelo usuário para alimentar algum banco de dados. No que diz respeito à persistência em ambientes computacionais, o complicador é quando esse mesmo ambiente tem recursos de armazenamento restrito e, ainda, uma arquitetura de hardware e software bem diferente da encontrada em desktops ou grandes servidores, como é o caso dos dispositivos móveis. Essas diferenças podem ser observadas tanto do ponto de vista do usuário (ergonomia de hardware e software), quanto do ponto de vista do desenvolvedor (ferramentas de software, APIs e recursos). Os telefones celulares conseguiram alcançar uma popularidade quase tão grande quanto a observada na utilização de computadores pessoais a partir da década de 80. Mas, assim como todos os dispositivos móveis, eles também trazem consigo algumas dificuldades, como, problemas relacionados à ergonomia do teclado, uma interface visual simples porém limitada e a dependência de baterias que requerem recarga constante.

description

PERSISTENCIA INFO

Transcript of Persistência

Page 1: Persistência

Persistência

A capacidade de persistir dados ou armazenar informações é sem dúvida um dos recursos mais importantes em qualquer linguagem de programação. Armazenar dados para uma posterior recuperação é uma constante na maioria dos ambientes computacionais, seja para persistência simples de parâmetros de configurações de algum sistema ou persistência de informações digitadas pelo usuário para alimentar algum banco de dados.No que diz respeito à persistência em ambientes computacionais, o complicador é quando esse mesmo ambiente tem recursos de armazenamento restrito e, ainda, uma arquitetura de hardware e software bem diferente da encontrada em desktops ou grandes servidores, como é o caso dos dispositivos móveis. Essas diferenças podem ser observadas tanto do ponto de vista do usuário (ergonomia de hardware e software), quanto do ponto de vista do desenvolvedor (ferramentas de software, APIs e recursos). Os telefones celulares conseguiram alcançar uma popularidade quase tão grande quanto a observada na utilização de computadores pessoais a partir da década de 80. Mas, assim como todos os dispositivos móveis, eles também trazem consigo algumas dificuldades, como, problemas relacionados à ergonomia do teclado, uma interface visual simples porém limitada e a dependência de baterias que requerem recarga constante.

Page 2: Persistência

threads

Tradicionalmente, utiliza-se um recurso chamado threads para realizar processamento “paralelo”. Toda aplicação possui pelo o menos uma thread, que contém o código principal do programa. Esta é a chamada main thread. Cada nova thread executa seu código concorrentemente com as outras já existentes. Caso o processador utilizado possua um núcleo para cada thread, a execução ocorre de fato paralelamente. Caso contrário é feita uma simulação deste processo gerando, para o usuário, a sensação de paralelismo.

O Foundation framework provido pela Apple fornece encapsulamentos para esse recurso, trazendo facilidades e eficiência para sua utilização.As classes que gerenciam essas threads são: NSThread, NSOperation e NSOperationQueue.

NSThread: classe que controla uma thread de execução. Normalmente utiliza-se este recurso quando deseja-se impedir que a thread principal seja sobrecarregada, ou quando é preciso dividir o trabalho em trabalhos menores;NSOperation: é uma classe abstrata que contém instruções para executar determinada tarefa (para mais informações sobre classes abstratas, consulte as referências da Apple ou outros materiais sobre programação orientada a objetos);NSOperationQueue: classe que gerencia instâncias de sublcasses de NSOperation.

A utilização de NSThread ou NSOperationQueue pode ter o mesmo efeito ao fim da aplicação. Entretanto, é extremamente recomendada pela Apple a utilização de NSOperationQueue. Threads normalmente podem gerar problemas relacionados ao compartilhamento de memória e tempo de execução. Todas elas têm igual acesso à memória da aplicação o que permite que qualquer uma modifique variáveis não locais. Além disso, não há como prever quando uma thread terminará. A utilização de Operation Queues fornece recursos para gerenciamento de Operations que facilitam a resolução do problema do tempo, como a criação de dependências entre Operations, que garante que determinada Operation terminará antes do inicio da execução de outra.

O aplicativo realizará o o cálculo da série harmônica limitada por uma constante. Para mais informações sobre esta série, leia série harmonica.

Page 3: Persistência

Gerenciamento de Dispositivos Móveis

O Gerenciamento de Dispositivos Móveis (Mobile device management ou MDM em inglês)

é a área administrativa responsável por disponibilizar, monitorar, integrar e gerenciar

dispositivos móveis, bem como fornecer segurança para essa tecnologia no ambiente de

trabalho. O principal objetivo do MDM é otimizar a funcionalidade dos aparelhos móveis e,

simultaneamente, garantir a rede da organização.

É possível compreender que as principais funções desempenhadas por um sistema de

MDM são:

– identificar os dispositivos não pertencentes à rede corporativa (de propriedade dos

colaboradores) e incluí-los no gerenciamento;

– analisar conteúdo, integrando web, e-mail e segurança de dados para evitar ataques

gerais e direcionados;

– prover dispositivos para acesso seguro e que possibilitem o monitoramento centralizado;

– fornecer ferramentas que facilitem a limpeza de dados corporativos nos dispositivos dos

colaboradores e de prevenção contra vazamento e perda de dados;

Page 4: Persistência

interface com o usuário

Em resumo, o projeto de graduação tem como tema o design de interface em dispositivos móveis, representado por uma aplicação para tablet, especificamente para o iPad. Foi conceitualizada uma aplicação para entretenimento chamada Stream, que explora de diferentes maneiras o consumo de conteúdo audiovisual através do tablet. Seu desenvolvimento tem duas finalidades: a primeira é a elaboração de um aplicativo que proporcione entretenimento através de um serviço de transmissão de vídeo via internet, explorando a vasta quantidade de conteúdo audiovisual em formato de série. Sua outra finalidade está em servir como ferramenta de análise sobre a validade de práticas do design impresso e de internet convencionais ao serem aplicados para se projetar para uma interface de dispositivo móvel e, assim identificar métodos e processos que melhor se adaptem a esta finalidade.

Page 5: Persistência

ferramentas de desenvolvimento.

Os dispositivos móveis crescem cada dia mais e já representam a maioria dos sistemas computadorizados atualmente. Por isso torna-se cada vez mais importante criarmos aplicativos voltados para esse segmento. Criar um aplicativo para dispositivos móveis requerer diversos desafios e complicações como: lidar com recursos físicos limitados tais como CPU, memória, tela, dispositivos de entrada, bateria, entre outros; além disso, ambientes e contextos diversos com excesso de barulho, muita claridade, situações em que usamos apenas uma mão dependendo do momento, pessoa ou lugar são mais algumas das complicações que precisam ser gerenciadas quando construímos aplicativos voltados para dispositivos móveis.

Outra característica importante ao projetar e criar aplicativos para dispositivos móveis é que estes possuem um propósito bem definido. Ao contrário dos aplicativos para desktop em que tínhamos aplicativos de propósitos mais gerais, nos aplicativos móveis tem-se mais oportunidades para aplicativos que resolvem problemas mais específicos. Um exemplo de aplicativo para desktop popular é o Microsoft Office que possui todas as ferramentas necessárias para resolver qualquer problema de escritório como apresentações, criação de documentos, planilhas, etc. Já nos dispositivos móveis acharemos diversos aplicativos para resolver problemas de escritório mais específicos como software para planilhas eletrônicas, software editor de texto, etc.

Além disso, quando projetamos nosso aplicativo devemos escolher o(s) sistema(s) operacional(is) que ele será executado. Nesse ponto também é importante conhecermos o mercado, quais são os sistemas que mais crescem em uso, quais possuem um desenvolvimento mais facilitado, quais possuem bibliotecas públicas, etc. Analisando o mercado atual de sistemas operacionais tem-se que o Android já detém 79.3% do mercado como era esperado há alguns anos atrás, seguido por Apple iOS com 13.2%, RIM com 2.9%, Windows Phone com 3.7% e outros sistemas com apenas 0.9% do mercado. Se analisarmos os dados dos anos anteriores verificaremos que o Android cresce bastante a cada ano. Analisando friamente os dados parece que o Android é um sistema muito superior aos outros e está sufocando o mercado. No entanto, o Android cresce bastante porque além de ser um bom

Page 6: Persistência

sistema existe um grande número de aparelhos que entraram e entram cada dia mais no mercado e a grande maioria desses aparelhos estão equipados com sistemas operacionais Android. Isso também explica o fato da Apple ter caído no mercado nos últimos anos, apesar que essa queda é considerada pequena. Uma das vantagens do sistema Android é que ele possui diversas versões que rodam em diversos dispositivos, como por exemplo, Android para Motorola, Android para HTC, etc. Cada vez mais os novos Smartphones e as grandes companhias vão aderindo ao sistema operacional da Google que se mostra cada vez mais confiável e melhor. Já o Windows Phone sofreu devido a entrada tardia no mercado, mas não deixa de ser um ótimo sistema assim como iOS e o Android. Outro sistema que tinha uma boa parcela do mercado, a Symbian, foi abandonado, por isso cada vez mais o sistema cairá em desuso não sendo uma boa opção de desenvolvimento.

Dessa forma, verificamos que os principais sistemas atualmente são Android, iOS e Windows Phone. Neste artigo veremos melhor como projetar um aplicativo para dispositivos móveis e como podemos desenvolver aplicativos para o sistema Android. A pedidos faremos outro artigo sobre iOS e Windows Phone também. Além do sistema Android veremos também como podemos fazer aplicativos que rodam em qualquer plataforma utilizando HTML 5.