Buscar

Aula12 - Revisão - DISP MÓVEIS

Prévia do material em texto

ANÁLISE E DESENVOLVIMENTO DE SISTEMAS
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
DANIEL TEÓFILO VASCONCELOS
E-mail: daniel.vasconcelos@estacio.br
Linkedin: https://www.linkedin.com/in/daniel-teófilo/
Instagram: https://www.instagram.com/daniel_teofilos/
Revisão
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
• Crescente necessidade de acesso à informação (em qualquer momento e lugar)
• Aumenta eficiência do trabalho
• Comunicação enquanto trabalhamos
• Conectividade em qualquer lugar e em movimento
• Menor custo de instalação & manutenção da infraestrutura
• Colocação de antenas vs. cabeamento
• Alocação dinâmica (por demanda) de canais de comunicação
• Dispositivos móveis 
• Barateamento e redução do tamanho/peso
• Cada vez mais recursos & funcionalidades
• Maior facilidade de transporte
Por que Computação Móvel?
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEISPROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
Tipos de Dispositivos Móveis
Como exemplos de dispositivos móveis podemos listar:
• Telefones Celulares / Smartphones
• Laptops
• Tablets
• Computação Vestível
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEISPROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
Características dos Dispositivos Móveis 
• Portabilidade
A Portabilidade é definida como a capacidade de ser facilmente transportável. “Hoje 
em dia”, para ser considerado portátil, o dispositivo móvel deve ser transportável 
facilmente na mão.
• Usabilidade
Um dispositivo móvel deve ser utilizável por tipos de pessoas diferentes em diversos 
ambientes. A Usabilidade de um dispositivo depende de vários fatores:
 Características do usuário
 Características do ambiente
 Características do dispositivo
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEISPROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
Características do Usuário
Uma interação do usuário com um dispositivo móvel depende, até certo 
ponto, de suas características pessoais. Algumas características mais comuns 
do usuário são:
• Tamanho e força. O tamanho e a força do usuário tem um efeito em sua interação 
com o dispositivo móvel. Por exemplo, um notebook que é facilmente 
transportado por um adulto pode não ser utilizável por seu filho.
• Flexibilidade e destreza. A flexibilidade e a destreza do usuário tem um efeito 
na usabilidade do dispositivo móvel. Um usuário adulto pode ter dedos 
maiores e precisar usar um teclado maior. 
• Conhecimento e capacidade. É difícil precaver-se contra a falta de 
conhecimento ou de capacidade do usuário. Geralmente os dispositivos mais 
úteis são os simples e mais intuitivos de usar. Se o dispositivo for muito difícil 
de dominar, o usuário não o achará útil.
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEISPROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
• Condições extremas. Um dispositivo móvel pode ter de trabalhar sob 
condições extremas (por exemplo, calor, frio, umidade, seca). Por exemplo, um 
trabalhador de serviços de emergência, como um bombeiro trabalhando em 
um ambiente arriscado, pode precisar de um dispositivo móvel à prova d'água 
ou outro mais resistente que possa suportar o ambiente.
Características do ambiente
O ambiente do usuário afeta a escolha do dispositivo. Algumas considerações a 
serem levadas em conta em função do ambiente do usuário são:
• Condições normais de funcionamento. Um dispositivo móvel deve trabalhar 
sob as condições normais de trabalho do usuário. Por exemplo, se um usuário 
tem de trabalhar em pé durante períodos prolongados de tempo, um tablet 
pode ser mais adequado do que um notebook, já que não precisam ficar na 
posição horizontal.
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEISPROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
• Robustez/resistência. Os dispositivos móveis geralmente não são muito robustos e podem se 
quebrar se forem derrubados. Dispositivos móveis podem ser fabricados para serem mais resistentes 
para ajudá-los aguentar as tensões do ambiente do usuário, colocando-os em uma bolsa de plástico 
resistente. Tirnar um dispositivo mais robusto, no entanto, pode, por outro lado, afetar sua 
portabilidade e usabilidade.
Características de dispositivo
Os dispositivos móveis têm características próprias diferentes, que podem afetar a 
usabilidade total. Algumas dessas características próprias são:
• Tempo de inicialização. Se um usuário precisa utilizar um dispositivo móvel em tempo crítico (por 
exemplo, trabalhadores de serviços de emergências), um dispositivo móvel que inicia imediatamente 
talvez seja muito melhor.
• Integridade de dados. Se um usuário não puder tolerar perda de dados e necessita de armazenamento 
permanente, no próprio dispositivo é preferível optar por um tablet ou celular que ofereça suporte á 
cartão de memória ou que possua uma memória interna ampla.
• Interface com o usuário(teclado, mouse, tela sensível ou toque). As características intrínsecas do 
dispositivo podem incapacitá-lo a desempenhar certas funções, devido à natureza da interface com o 
usuário. Por exemplo, é muito difícil criar desenhos à mão livre usando um mouse em um notebook, 
mas é bem mais confortável e natural utilizar uma caneta em um tablet ou usar os próprios dedos na 
tela sensível ao toque.
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEISPROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
Sempre que uma Activity é criada são gerados dois arquivos.
• Arquivo XML – define o layout da interface gráfica;
• Arquivo Java – relativo a lógica de programação;
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEISPROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
Atividades - Activity
Uma atividade é algo definido que o usuário pode fazer. Estão associadas as
mais variadas funções. As atividades normalmente são associadas a uma
única tela e são escritas em Java.
Um layout descreve aparência da tela. Os layouts são escritos como arquivos
XML e dizem ao Android como os elementos estão organizados na tela.
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEISPROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
A estrutura de pastas inclui diferentes tipos de arquivos.
Se navegar pela estrutura de pastas, você verá que o assistente criou vários
tipos de arquivos e pastas.
• Arquivos fonte Java e XML
• Arquivos Java gerados pelo Android
• Arquivos de recurso
• Bibliotecas do Android
• Arquivos de Configuração
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
A plataforma Android oferece suporte nativo ao armazenamento persistente 
de dados utilizando o SQLite. 
Este é um banco de dados de código fonte aberto, multiplataforma e tem sido 
utilizado principalmente em aplicativos embarcados. 
A arquitetura de funcionamento do SQLite é diferente de outros sistemas de
gerenciamento de banco de dados tradicionais, uma vez, que todas as
funcionalidades do sistema são oferecidas por meio de uma biblioteca escrita
na linguagem C.
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
SQLite é uma solução leve, e de fácil integração, pois não necessita de instalação, 
configuração e administração. 
O SQLite é compatível com um grande número de linguagens de programação, 
e as instruções SQL utilizadas no banco são baseadas no padrão SQL-92 
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
No contexto da plataforma Android, o SQLite é encapsulado em um provedor
de conteúdo (content provider).
Os dados são manipulados de maneira abstrata e podem ser disponibilizados
para os diversos serviços oferecidos nos dispositivos.
As bases de dados criadas com o SQLite são privadas e acessíveis apenas pelo
aplicativo responsável, ou, disponibilizada para outros aplicativos desde que
atribuídas as devidas permissões.
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
O armazenamento persistente dos dados ocorre em um caminho pré-definido
do dispositivo, da seguinte maneira:
/data/data/<nome_do_pacote>/databases
Em que <nome_do_pacote> é o identificador definido durante a criação do
aplicativo.
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
O SQLite é um banco de dados relacional, assim, para o armazenamento
persistente de dados é necessário definir tabelas e seus respectivos campos. Os
tipos de dados suportados pelo SQLite são:
NULL: valores nulos.
INTEGER: para armazenamento de números inteiros.
REAL: para manipulaçãode valores ponto-flutuante (por exemplo, double, float).
TEXT: para dados textuais
BLOB: armazenamento de objetos binários (arquivos, imagens, vídeos, entre outros).
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
A listagem Código 1 apresenta um típico script na linguagem SQL para criação
de uma tabela, denominada pessoa, com os campos id, nome, endereço, peso e
altura no banco de dados SQLite.
CREATE TABLE pessoa (
id INTEGER PRIMARY KEY AUTOINCREMENT,
nome TEXT,
endereco TEXT,
peso REAL,
altura REAL
);
Código 1
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
Na plataforma Android a manipulação de dados no banco SQLite é facilitada
com o uso da classe SQLiteOpenHelper.
Esta classe auxilia o desenvolvedor no processo de criação e gerenciamento
das versões do banco de dados.
Em termos de programação, a classe SQLiteOpenHelper é utilizada como
superclasse em uma hierarquia e possui dois métodos abstratos que
necessitam ser implementados: OnCreate e OnUpgrade.
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
Código 2
public class DatabaseHelper extends SQLiteOpenHelper {
//ATRIBUTOS
private static final String DATABASE_NAME = “exemplo”;
private static final int DATABASE_VERSION = 1;
private final String CREATE_TABLE_PESSOA =
“CREATE TABLE pessoa (
id INTEGER PRIMARY KEY AUTOINCREMENT,
nome TEXT,
endereco TEXT,
peso REAL,
altura REAL ); “;
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
A listagem Código 2 apresenta a estrutura típica de uma classe para
manipulação de dados com o SQLite que herda a classe SQLiteOpenHelper.
No código é importante destacar a especificação dos atributos
DATABASE_NAME e DATABASE_VERSION, os quais são utilizados
respectivamente para: definir o nome do arquivo do banco de dados que será
criado no dispositivos; e indicar qual a versão da estrutura do banco de dados
que está sendo utilizada.
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
//CONSTRUTOR
public DatabaseHelper(Context context){
super(
context, //contexto da App
DATABASE_NAME, //nome do banco de dados
null, //cursor para manipulação
DATABASE_VERSION //versão do banco de dados
);
}
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
// MÉTODO onCreate
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_TABLE_PESSOA);
}
// MÉTODO onUpgrade
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL(“DROP TABLE IF EXISTS pessoa”);
onCreate(db);
} 
}
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
No código o método onCreate é utilizado para criar um novo banco de dados
no dispositivo. Este método realiza uma verificação prévia a respeito da
existência, assim, o script de criação da tabela (ou das tabelas) será executado
apenas quando o banco de dados não existir.
O método onUpgrade é empregado na modificação da estrutura do banco de
dados. Este método faz uma comparação entre a versão do banco de dados
da aplicação (DATABASE_VERSION) e a versão do banco de dados que
está armazenado no dispositivo. Caso as versões sejam diferentes o conteúdo
o método onUpgrade é executado.
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
A classe SQLiteOpenHelper oferece ainda outros métodos para manipulação e 
gerenciamento do banco de dados. 
O método getWritableDatabase, por exemplo, é utilizado para criação e/ou
abertura do banco de dados, permitindo que sejam realizadas leituras e
escritas de dados.
O método getReadableDatabase, realiza a abertura e/ou criação do banco de
dados, permitindo apenas que sejam efetuadas leituras dos dados.
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
A classe SQLiteDatabase oferece uma maneira alternativa para manipulação
dos dados com o SQLite.
Esta classe possui métodos encapsulados para as operações de inserção
(insert), atualização (update) e deleção (delete), com isso, não é necessário utilizar
instruções SQL durante a comunicação com o SGBD
Os dados passados para os métodos devem ser armazenados em objetos da
classe ContentValues.
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
A classe ContentValue permite a instanciação de objetos capazes de
armazenar uma série de valores, os quais podem ser enviados para o SGBD.
Em uma operação de inserção, por exemplo, os valores que serão
adicionados a tabela são definidos no objeto ContentValue. A sintaxe a seguir
demonstra a criação de um objeto ContentValue:
ContentValues obj = new ContentValues();
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
Para atribuir valores ao objeto é necessário o uso do método put, o qual deve
receber dois parâmetros <chave,valor>, tal que, chave –indica o nome do
campo da tabela; valor –representa o valor associado ao campo. Por exemplo,
considerando a tabela Pessoa com nome, endereço, peso e altura, a definição
do objeto ContentValue é realizada da seguinte maneira:
obj.put(“nome”,”João da Silva”);
obj.put(“endereco”,”Rua Niteroi, 1234”);
obj.put(“peso”, 92.5);
obj.put(“altura,1.95);
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
Formas de Monetizar um Aplicativo
1 – Aplicativo Pago
A alternativa mais tradicional de monetizar um aplicativo é cobrar para que as pessoas
usem-no. Essa forma de monetização é muito utilizada em aplicativos que são mais
complexos e não possuem muita concorrência. Seja pela dificuldade de serem
mantidos, necessitando de valorização, ou por geralmente serem focados em nichos, os
clientes se habilitam a pagar pelo aplicativo. Muitos jogos são pagos exatamente pela
questão da dificuldade de serem produzidos. O principal problema que o aplicativo pago
enfrenta é a diminuição drástica dos downloads do app. Outro obstáculo de
arrecadação é a cota de 30% do valor do aplicativo que as lojas virtuais costumam reter.
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
6 Formas de Monetizar um Aplicativo
2 – Gratuito, porém com anúncios
A alternativa mais usada em aplicativos para evitar a cobrança pelos aplicativos.
Mantendo um aplicativo de forma gratuita, você consegue aumentar a base de usuários e
monetizar um aplicativo. Esse é um fator importantíssimo na hora de considerar usar
anúncios.
Com uma grande base de usuários que acessam o aplicativo diariamente, é
possível ceder o espaço do seu aplicativo para publicidade direcionada, de acordo
com o perfil dos usuários. Essa ação gera uma renda baseada na quantidade de pessoas
que acessam seu app. Você pode utilizar alguma plataforma especializada em publicidade
em apps ou fazer de maneira independente.
As plataformas mais utilizadas para este fim são o Google Admob e a Rede de
públicos do Facebook.
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
3 – Freemium
6 Formas de Monetizar um Aplicativo
Anúncios em aplicativos geralmente afetam um pouco a experiência de uso, onde alguns
usuários se sentem incomodados com a publicidade, de forma que podem até desistir de
utilizar o aplicativo por tal motivo.
Quando se fala do público, muitas vezes encontramos pessoas que não gostam de
publicidade e que desistiriam de utilizar um aplicativo por esse motivo. Dessa forma,
uma tática utilizada para evitar a evasão de usuários do aplicativo, ou até como
alternativa mais agradável, é oferecer versões pagas, porém sem anúncios. Assim, muito
dos usuários que não gostam da poluição visual causada pelos anúncios veem como uma
alternativa mais agradável a compra desses aplicativos.
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
6 Formas de Monetizar um Aplicativo
4 – Compras no Aplicativo
Muitas empresas optam por monetizar seus aplicativos de forma diferente, através de
compras no aplicativo. Muito comum em jogos e aplicativos de vendas, o aplicativo dá
chance ao usuário de obter vantagens caso ele faça determinada compra, algo como um
boost que fará ele obter melhores resultados em um jogo ou que fará o anúncio em um
aplicativo de compras aparecer para mais pessoas. Exemplo: Candy Crush, Tinder e OLX
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
6 Formas de Monetizar um Aplicativo
5 – Assinatura
Semelhante ao modelo freemium, o modelo de assinaturas se destaca por disponibilizar
o aplicativo de forma gratuita, porém com algumas funções indisponíveis. Assim, o
aplicativo cobra uma assinaturapara que o usuário tenha acesso às funções
indisponíveis na versão gratuita. Aplicativos de serviços de streaming como Spotify
e Deezer utilizam bastante essa forma de monetização.
Em alguns casos, como o serviço de streaming Netflix, utiliza-se o modelo de
assinatura sem a opção de utilização totalmente gratuita mas podendo, por um breve
período, testar o aplicativo. Essa estratégia tem a intenção de cativar o usuário e, por
fim, convertê-lo.
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
6 Formas de Monetizar um Aplicativo
6 – Venda de Serviços
Muitas vezes há aplicativos que oferecem serviços de forma gratuita e arrecadam a
partir de uma taxa em cima dos serviços que são vendidos dentro do aplicativo.
Cobrando assim pela tarefa de mediar o serviço e de divulgar o serviço em um ambiente
de serviços iguais. Os aplicativos Uber, IFood e 99taxis são nesse estilo
Essas são as principais formas de monetização de aplicativo, mas nada impede que seja
feito um modelo de monetização misto. Este, porém, deve ser bem selecionado para não
sobrecarregar o consumidor. Dessa forma, é importante pensar com calma como cada
modelo de monetização se aplicaria, para evitar um aplicativo fragmentando que necessita
de muitos pagamentos.

Continue navegando