A capacidade de persistir dados ou armazenar informaes
sem dvida um dos recursos mais importantes em qualquer linguagem de programao. Armazenar dados para uma posterior recuperao uma constante na maioria dos ambientes computacionais, seja para persistncia simples de parmetros de configuraes de algum sistema ou persistncia de informaes digitadas pelo usurio para alimentar algum banco de dados. No que diz respeito persistncia 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 mveis. Essas diferenas podem ser observadas tanto do ponto de vista do usurio (ergonomia de hardware e software), quanto do ponto de vista do desenvolvedor (ferramentas de software, APIs e recursos). Os telefones celulares conseguiram alcanar uma popularidade quase to grande quanto a observada na utilizao de computadores pessoais a partir da dcada de 80. Mas, assim como todos os dispositivos mveis, eles tambm trazem consigo algumas dificuldades, como, problemas relacionados ergonomia do teclado, uma interface visual simples porm limitada e a dependncia de baterias que requerem recarga constante.
threads
Tradicionalmente, utiliza-se um recurso chamado threads para realizar
processamento paralelo. Toda aplicao possui pelo o menos uma thread, que contm o cdigo principal do programa. Esta a chamada main thread. Cada nova thread executa seu cdigo concorrentemente com as outras j existentes. Caso o processador utilizado possua um ncleo para cada thread, a execuo ocorre de fato paralelamente. Caso contrrio feita uma simulao deste processo gerando, para o usurio, a sensao de paralelismo. O Foundation framework provido pela Apple fornece encapsulamentos para esse recurso, trazendo facilidades e eficincia para sua utilizao. As classes que gerenciam essas threads so: NSThread, NSOperation e NSOperationQueue. NSThread: classe que controla uma thread de execuo. 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 contm instrues para executar determinada tarefa (para mais informaes sobre classes abstratas, consulte as referncias da Apple ou outros materiais sobre programao orientada a objetos); NSOperationQueue: classe que gerencia instncias de sublcasses de NSOperation. A utilizao de NSThread ou NSOperationQueue pode ter o mesmo efeito ao fim da aplicao. Entretanto, extremamente recomendada pela Apple a utilizao de NSOperationQueue. Threads normalmente podem gerar problemas relacionados ao compartilhamento de memria e tempo de execuo. Todas elas tm igual acesso memria da aplicao o que permite que qualquer uma modifique variveis no locais. Alm disso, no h como prever quando uma thread terminar. A utilizao de Operation Queues fornece recursos para gerenciamento de Operations que facilitam a resoluo do problema do tempo, como a criao de dependncias entre Operations, que garante que determinada Operation terminar antes do inicio da execuo de outra.
O aplicativo realizar o o clculo da srie harmnica limitada por uma
constante. Para mais informaes sobre esta srie, leia srie harmonica.
Gerenciamento de Dispositivos Mveis
O Gerenciamento de Dispositivos Mveis (Mobile device management ou MDM em ingls)
a rea administrativa responsvel por disponibilizar, monitorar, integrar e gerenciar dispositivos mveis, bem como fornecer segurana para essa tecnologia no ambiente de trabalho. O principal objetivo do MDM otimizar a funcionalidade dos aparelhos mveis e, simultaneamente, garantir a rede da organizao. possvel compreender que as principais funes desempenhadas por um sistema de MDM so: identificar os dispositivos no pertencentes rede corporativa (de propriedade dos colaboradores) e inclu-los no gerenciamento; analisar contedo, integrando web, e-mail e segurana 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 preveno contra vazamento e perda de dados;
interface com o usurio
Em resumo, o projeto de graduao tem como tema o design de interface
em dispositivos mveis, representado por uma aplicao para tablet, especificamente para o iPad. Foi conceitualizada uma aplicao para entretenimento chamada Stream, que explora de diferentes maneiras o consumo de contedo audiovisual atravs do tablet. Seu desenvolvimento tem duas finalidades: a primeira a elaborao de um aplicativo que proporcione entretenimento atravs de um servio de transmisso de vdeo via internet, explorando a vasta quantidade de contedo audiovisual em formato de srie. Sua outra finalidade est em servir como ferramenta de anlise sobre a validade de prticas do design impresso e de internet convencionais ao serem aplicados para se projetar para uma interface de dispositivo mvel e, assim identificar mtodos e processos que melhor se adaptem a esta finalidade.
ferramentas de desenvolvimento.
Os dispositivos mveis 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 mveis requerer diversos desafios e complicaes como: lidar com recursos fsicos limitados tais como CPU, memria, tela, dispositivos de entrada, bateria, entre outros; alm disso, ambientes e contextos diversos com excesso de barulho, muita claridade, situaes em que usamos apenas uma mo dependendo do momento, pessoa ou lugar so mais algumas das complicaes que precisam ser gerenciadas quando construmos aplicativos voltados para dispositivos mveis. Outra caracterstica importante ao projetar e criar aplicativos para dispositivos mveis que estes possuem um propsito bem definido. Ao contrrio dos aplicativos para desktop em que tnhamos aplicativos de propsitos mais gerais, nos aplicativos mveis tem-se mais oportunidades para aplicativos que resolvem problemas mais especficos. Um exemplo de aplicativo para desktop popular o Microsoft Office que possui todas as ferramentas necessrias para resolver qualquer problema de escritrio como apresentaes, criao de documentos, planilhas, etc. J nos dispositivos mveis acharemos diversos aplicativos para resolver problemas de escritrio mais especficos como software para planilhas eletrnicas, software editor de texto, etc. Alm disso, quando projetamos nosso aplicativo devemos escolher o(s) sistema(s) operacional(is) que ele ser executado. Nesse ponto tambm importante conhecermos o mercado, quais so os sistemas que mais crescem em uso, quais possuem um desenvolvimento mais facilitado, quais possuem bibliotecas pblicas, etc. Analisando o mercado atual de sistemas operacionais tem-se que o Android j detm 79.3% do mercado como era esperado h alguns anos atrs, 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 alm de ser um bom
sistema existe um grande nmero de aparelhos que entraram e entram cada dia mais no mercado e a grande maioria desses aparelhos esto equipados com sistemas operacionais Android. Isso tambm explica o fato da Apple ter cado no mercado nos ltimos anos, apesar que essa queda considerada pequena. Uma das vantagens do sistema Android que ele possui diversas verses 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 vo aderindo ao sistema operacional da Google que se mostra cada vez mais confivel e melhor. J o Windows Phone sofreu devido a entrada tardia no mercado, mas no 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 no sendo uma boa opo de desenvolvimento. Dessa forma, verificamos que os principais sistemas atualmente so Android, iOS e Windows Phone. Neste artigo veremos melhor como projetar um aplicativo para dispositivos mveis e como podemos desenvolver aplicativos para o sistema Android. A pedidos faremos outro artigo sobre iOS e Windows Phone tambm. Alm do sistema Android veremos tambm como podemos fazer aplicativos que rodam em qualquer plataforma utilizando HTML 5.