computação móvel: perspectivas, oportunidades e desenvolvimento

121
Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Upload: jose-alexandre-macedo

Post on 18-Nov-2014

1.157 views

Category:

Technology


2 download

DESCRIPTION

Minicurso apresentado no II Composium da Universidade Federal de Itajubá (Unifei). Conheça nessa apresentação as perspectivas, oportunidades da área de computação móvel e aprenda a desenvolver aplicativos para Android.

TRANSCRIPT

Page 1: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Computação Móvel:

Perspectivas, Oportunidades e

Desenvolvimento

Page 2: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

José Alexandre Macedo jamacedo.com

Mestrando

Computação Móvel

Sistemas Colaborativos

Bacharel em Ciência da

Computação

Desenvolvedor

Java desde 2007

Articulista Mantenedor do grupo de estudos

Android

Page 3: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

O que é essa tal de

computação móvel?

Page 4: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

São sistemas cujas capacidades podem

ser utilizadas enquanto estão sendo movidos!

Page 5: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Tem gente

que ainda não

entendeu

muito bem...

Page 6: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Computação móvel se

popularizou porque temos

tecnologias com

+ recursos usabilidade

+ fácil desenvolver

preço acessível

Page 7: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Maior conectividade

Limites entre situações e espaços físicos ficam difusos...

Page 8: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Dados em qualquer lugar e a

qualquer momento

cultura...

Mudança de

Page 9: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Números desse mercado

Page 10: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Números desse mercado

Mercado Mobile é extremamente mutável!

Page 11: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Números desse mercado

Page 12: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Números desse mercado

Page 13: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Números desse mercado

Page 14: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Números desse mercado

+ 850.000 ativações

diárias

Fonte: http://googlemobile.blogspot.com.br/2012/02/androidmobile-world-congress-its-all.html

+ 300 milhões de dispositivos!

Page 15: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Números desse mercado

Quais são os

planos dos

desenvolvedores

para 2012?

Page 16: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

E no Brasil?

Fonte: http://g1.globo.com/tecnologia/noticia/2012/03/vendas-de-smartphones-no-brasil-crescem-179-em-2011-diz-pesquisa.html

Vendas de smartphones crescem 179% em 2011

Page 17: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

E no Brasil?

Fonte: http://g1.globo.com/tecnologia/noticia/2012/03/vendas-de-smartphones-no-brasil-crescem-179-em-2011-diz-pesquisa.html

Android alcançou 61% do mercado

Page 18: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Oportunidades

Page 19: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Outras áreas quentes...

Page 20: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Brasileiros criam app que

pode

revolucionar a vida de surdos

Novas Possibilidades!

Fonte: http://exame.abril.com.br/tecnologia/noticias/brasileiros-criam-app-que-pode-revolucionar-a-vida-de-surdos

Page 21: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Não é porque os

dispositivos são

pequenos que os

projetos são simples!

Page 22: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

E o trampo?

Page 23: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Vamos aproveitar essa onda!

Page 24: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Agora, para nossa alegria...

Page 25: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Desenvolvimento

Android

Page 26: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Sem preconceito com os

concorrentes, mas...

Page 27: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

...Android tem suas

vantagens!

Dispositivos para todos os bolsos

Page 28: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

...Android tem suas

vantagens!

Page 29: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

...Android tem suas

vantagens!

Desenvolvimento em Java

Page 30: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

...Android tem suas

vantagens!

Programação em Windows, Linux e Mac

Page 31: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Android vai além dos

smartphones e tablets...

Epson lança

óculos com

Android

Page 32: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Android vai além dos

smartphones e tablets...

Se você desenvolve para Android pode

desenvolver para Google TV

Page 33: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Android vai além dos

smartphones e tablets...

Sony SmartWatch o relógio Android da Sony

Page 34: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Android vai além dos

smartphones e tablets...

Google quer Android nos eletrodomésticos

Page 35: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Sim...

A Google quer dominar o

mundo!

Page 36: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Breve histórico

Page 37: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Breve histórico Outubro de 2003

Android, Inc. foi fundada em Palo Alto, California por

Andy Rubin, Rich Miner, Nick Sears e Chris White

Page 38: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Breve histórico

Julho de 2005

Google adquire Android Inc.

Page 39: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Breve histórico

5 de Novembro de 2007

A Open Handset Alliance é formada

Page 40: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Breve histórico

12 de Novembro de 2007

Android Beta SDK é

disponibilizado

Page 41: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Breve histórico

23 de Setembro de 2008

Lançado o primeiro smatphone com

Android 1.0, o HTC

Dream (G1)

Page 42: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Breve histórico

Aí começou a perdição!

Page 43: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Arquitetura

Page 44: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Arquitetura

Page 45: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Processo de

desenvolvimento Java

tradicional

.java .class JVM

Compilação Interpretação

Page 46: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Processo de

desenvolvimento Android

.dex

Dalvik Virtual

Machine

.java .class

Compilação Compilação dex

.apk

Interpretação

apkbuilder

Page 47: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Componentes de Aplicação

Page 48: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Componentes de Aplicação

Activity

Responsável por definir a

interface e os comportamentos

de uma tela da aplicação

Page 49: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Componentes de Aplicação

Service

São os processos de fundo sem

interface com usuário. Podem

ser locais ou remotos

Page 50: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Componentes de Aplicação

Content Provider

Forma de expor os dados da aplicação

sem expor suas implementações

Page 51: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Componentes de Aplicação

Intents

Permite criar propósitos. Ex.: abrir uma

activity, iniciar um serviço, exibir uma

página web ou fazer uma ligação

Page 52: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Interface com Usuário

Views são os blocos de

construção básicos

A combinação de views forma um

group view

Declaradas em arquivos XML

Page 53: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Ciclo de Vida

Page 54: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Ferramentas necessárias

SDK Android Developer Tools (ADT)

Plugin Eclipse

Page 55: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Ferramentas necessárias

Android Virtual Devices

Page 56: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Debug com Logcat

O melhor amigo do desenvolvedor Android!

Page 57: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

#partiuEclipse

Page 58: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Criando um novo projeto

Page 59: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Criando um novo projeto

Page 60: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Criando um novo projeto

Page 61: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Dissecando

a aplicação gerada

Page 62: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Estrutura Básica

dos Projeto

Page 63: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Activities, Services, Content Providers e outras

classes Java

Page 64: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento
Page 65: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Fornece referências

para os recursos disponíveis no

projeto

Gerada e mantida automaticamente

NÃO MEXA!

Page 66: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Armazena arquivos brutos

Permite

subdiretórios

Não gera ids

Page 67: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Um recurso é um arquivo ou valor

utilizado pela aplicação

Page 68: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

A pasta drawable-* armazena imagens

Page 69: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

A values contém valores que podem

ser usados em vários locais.

Outros arquivos válidos são para arrays, colors,

dimensions e styles

Page 70: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento
Page 71: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

A layout contém os arquivos de interface

com usuário

Page 72: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento
Page 73: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento
Page 74: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Define os conteúdos e comportamentos

das aplicações

Page 75: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento
Page 76: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Antes de executar o

projetos precisamos

de um virtual

device (AVD)

Page 77: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Localizem e cliquem no ícone do ADV Manager

Em seguida cliquem em “New...”

Para criarmos um novo emulador

Page 78: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Configuremos o

nosso novo

emulador

Page 79: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Agora é só apertar o play!

Page 80: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Criando nosso 1º aplicativo

Comparador de

Preços

Page 81: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

compensa mais?

600ml 360ml

R$ 4,75 R$ 3,20

Qual produto

Page 82: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Estrutura do Projeto main.xml resultado.xml

Transição

com Intents

1ª Opção

R$ mL

2ª Opção

R$ mL

X

Comparar

A Xª opção está compensando mais

porque está Y%

mais barata!

MainActivity.java ResultActivity.java

ComparadorPrecosApp.java

string.xml

AndroidManifest.xml

Criar

Modificar

Page 83: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

1º Passo Modificar main.xml

Page 84: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

2º Passo Criar resultado.xml

Page 85: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

3º Passo Criar ComparadorPrecosApp.java

Page 86: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

4º Passo Modificar MainActivity.java

Page 87: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

4º Passo Modificar MainActivity.java

Método compararPrecos()

Page 88: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

5º Passo Criar ResultActivity.java

Page 89: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

4º Passo Modificar AndroidManifest.xml

Page 90: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Resultado Final

Page 91: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Criando nosso 2º aplicativo

Leitor de

Desenvolvendo mais!

Tweets

Page 92: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Estrutura da 1ª Parte

main.xml lista_tweets.xml

Digite um termo de busca:

Buscar Tweets

Últimos Tweets ‘termoBusca’

LeitorTweetsActivity.java TweetsActivity.java

Mensagem 1

Mensagem 2

Mensagem 3

LeitorTweetsApp.java

Tweet.java TweetConnection.java

string.xml

AndroidManifest.xml

Criar

Modificar

Page 93: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Criando um novo projeto

Page 94: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Criando um novo projeto

Page 95: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Criando um novo projeto

Page 96: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Antes do passo-a-passo...

Vamos baixar as classes

Tweet e TweetConnection

Tweet.java TweetConnection.java

bit.ly/leitortwitter

Page 97: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

1º Passo Modificar main.xml

Page 98: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

2º Passo Criar lista_tweets.xml

LinearLayout (Vertical)

ListView

Page 99: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

3º Passo Criar LeitorTweetsApp.java

Page 100: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

4º Passo Modificar LeitorTweetsActivity.java

Page 101: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

5º Passo Criar TweetsActivity.java

Page 102: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

6º Passo Modificar AndroidManifest.xml

Page 103: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Resultado Final

Page 104: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Evoluindo o Leitor de Tweets!

Aprendendo a criar

listas com itens

personalizados e

conhecendo o poder

dos intents

Page 105: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Estrutura da 2ª Parte

TweetsActivity.java

item_lista.xml

Mensagem 1

Data

Foto

TweetAdapter.java

Compartilhar a mensagem ao tocar nela

Criar

Modificar

Page 106: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

1º Passo Criar item_lista.xml

ImageView LinearLayout

(Vertical)

Page 107: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

2º Passo Criar TweetAdapter.java

continua...

Page 108: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

2º Passo Criar TweetAdapter.java

Page 109: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

3º Passo Modificar TweetsActivity.java

Page 110: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

3º Passo Modificar TweetsActivity.java

Page 111: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Resultado Final

Page 112: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Acabei meu aplicativo...

Como publicar no

Google Market

Play?

Page 113: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

1º Registro no Google Play $25

2º Assinar o aplicativo com uma

chave privada

3º Realizar upload do apk e de

imagens do aplicativo

Publicando no Google Play

Page 114: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Android é só alegria?

Fonte: http://developer.android.com/resources/dashboard/platform-versions.html

Page 115: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Android é só alegria?

Não!

Fonte: http://developer.android.com/resources/dashboard/platform-versions.html

Fragmentação é o maior problema

Page 116: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Quero mais!

Como Faço?

Page 117: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Passagem

obrigatória!

Guias Documentação

Android

Training

Exemplos

Código

Vídeos Blog

Artigos

Tutoriais

Page 118: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

http://groups.google.com/group/android-developers

http://groups.google.com/group/android-discuss

http://groups.google.com/

group/android-ndk

http://stackoverflow.com/

questions/tagged/android

Grupos de Discussão

Page 119: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Livros

Page 120: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Dúvidas?

Page 121: Computação Móvel: Perspectivas, Oportunidades e Desenvolvimento

Obrigado!

jamacedo.com

@jamacedo