Nessa palestra, mostrei um pouco mais que apenas um HelloWorld. Mostrei boas práticas para quem está iniciando e o cuidado com a mudança de paradigmas entre Web e Mobile.
2. Apresentação
• Coordenador do CEJUG
• Formado em SI pela FA7
• Pós-graduando em Desenvolvimento Ágil de Sistemas
pela FA7
• Trabalha a quase 4 anos no Instituto Atlântico
• Participou durante 1 ano do grupo de desenvolvimento
para a Sony Mobile no Atlântico.
• Há 8 anos trabalhando com desenvolvimento de
Software. Na maioria do tempo Java.
3. Agenda
• Histórico
• HelloWord
• Além do HelloWord
• Uma activity
• Um layout
• Boas práticas Android
• Futuro do Android
6. Histórico do Android
• Comprado pelo Google em 2005 de uma
empresa chamada Android, Inc.
• Grande processo passou-se desde a
aquisição da Android, Inc até a primeira
release que só saiu em Setembro 2008.
7. Histórico do Android
• Comprado pelo Google em 2005 de uma
empresa chamada Android, Inc.
• Grande processo passou-se desde a
aquisição da Android, Inc até a primeira
release que só saiu em Setembro 2008.
• Após essa primeira release, a Google
lançou inúmeras outras releases.
16. Uma Activity
• É o bloco em que é
construída a interface do
usuário.
17. Uma Activity
• É o bloco em que é
construída a interface do
usuário.
• De modo geral, toda tela real de uma app
deveria ter uma Activity.
18. Uma Activity
• É o bloco em que é
construída a interface do
usuário.
• De modo geral, toda tela real de uma app
deveria ter uma Activity.
• Responsável pela interação com o usuário,
como também por serviços e intenções.
21. Uma Activity
• Ela é quem controla o estado em que a app
estará.
• Exemplo: Se seu device recebe uma ligação
durante a execução da app, o que deve
acontecer?
22. Uma Activity
• Ela é quem controla o estado em que a app
estará.
• Exemplo: Se seu device recebe uma ligação
durante a execução da app, o que deve
acontecer?
• Vejamos seu fluxo na teoria e prática.
27. Um Layout XML
• São colocados dentro da pasta res/
• Dentro de /res temos outras pastas importantes.
Vejamos:
28. Um Layout XML
• São colocados dentro da pasta res/
• Dentro de /res temos outras pastas importantes.
Vejamos:
• /drawable-[x,h,m,l]dpi - Pastas onde serão
colocadas as imagens e recursos de formatação
de componentes.
29. Um Layout XML
• São colocados dentro da pasta res/
• Dentro de /res temos outras pastas importantes.
Vejamos:
• /drawable-[x,h,m,l]dpi - Pastas onde serão
colocadas as imagens e recursos de formatação
de componentes.
• /layout - Onde ficam os layouts XML
30. Um Layout XML
• São colocados dentro da pasta res/
• Dentro de /res temos outras pastas importantes.
Vejamos:
• /drawable-[x,h,m,l]dpi - Pastas onde serão
colocadas as imagens e recursos de formatação
de componentes.
• /layout - Onde ficam os layouts XML
• /values - Onde ficam as Strings do sistema e a
internacionalização da App
34. Boas práticas Android
• Não travar a thread Main da app. A partir
da versão 3, salvo engano, o Android já da
erro não permitindo isso.
35. Boas práticas Android
• Não travar a thread Main da app. A partir
da versão 3, salvo engano, o Android já da
erro não permitindo isso.
• Sobrescrever o layout de um componente
praticamente sempre será possível.
36. Boas práticas Android
• Não travar a thread Main da app. A partir
da versão 3, salvo engano, o Android já da
erro não permitindo isso.
• Sobrescrever o layout de um componente
praticamente sempre será possível.
• Sua app vai rodar em telas de vários
tamanhos; Nunca use medida exata.
37. Boas práticas Android
Pequeno Médio Grande
Tela sem suporte a diferentes tamanhos
Tela COM suporte a diferentes tamanhos
40. Boas práticas Android
• Mas como suportar múltiplos tamanhos?
• Declarando no Manifest quais tamanhos
de tela sua app suporta.
41. Boas práticas Android
• Mas como suportar múltiplos tamanhos?
• Declarando no Manifest quais tamanhos
de tela sua app suporta.
<supports-screens android:resizeable=["true"| "false"]
android:smallScreens=["true" | "false"]
android:normalScreens=["true" | "false"]
android:largeScreens=["true" | "false"]
android:xlargeScreens=["true" | "false"]
android:anyDensity=["true" | "false"]
android:requiresSmallestWidthDp="integer"
android:compatibleWidthLimitDp="integer"
android:largestWidthLimitDp="integer"/>
42. Boas práticas Android
• Sua app pode ser completamente
diferente, dependendo do tamanho e da
orientação da tela do device.
• /res/layout/layout_xpto.xml
• /res/layout-small/layout_xpto.xml
• /res/layout-xlarge/layout_xpto.xml
• /res/layout-xlarge-land/layout_xpto.xml
43. Boas práticas Android
• Bem como as imagens
• /res/drawable-mdpi/icone.png
• /res/drawable-hdpi/icone.png
• /res/drawable-xhdpi/icone.png
45. Boas práticas Android
• Use sempre dp (density-independent pixel)
para tamanho de imagens e componentes e
sp (scale-independent pixel) para textos
46. Boas práticas Android
• Use sempre dp (density-independent pixel)
para tamanho de imagens e componentes e
sp (scale-independent pixel) para textos
• Nunca use px (pixel) hard-coded nas suas
aplicações. Quem vem da Web geralmente
tem essas manias.
47. Boas práticas Android
• Use sempre dp (density-independent pixel)
para tamanho de imagens e componentes e
sp (scale-independent pixel) para textos
• Nunca use px (pixel) hard-coded nas suas
aplicações. Quem vem da Web geralmente
tem essas manias.
• Absolute Layout está deprecated. Evite
utilizá-lo.
48. Boas práticas Android
• Use sempre dp (density-independent pixel)
para tamanho de imagens e componentes e
sp (scale-independent pixel) para textos
• Nunca use px (pixel) hard-coded nas suas
aplicações. Quem vem da Web geralmente
tem essas manias.
• Absolute Layout está deprecated. Evite
utilizá-lo.
• Você pode configurar vários emuladores de
tamanhos de tela e recursos diferentes.
49. Agenda
• Histórico
• HelloWord
• Além do HelloWord
• Uma activity
• Um layout
• Boas práticas Android
• Futuro do Android
52. Futuro do Android
• Google x Oracle está chegando ao fim.
• A fragmentação do SO Android. Assim, as
operadoras e os fabricantes não iriam mais
modificar SO.
53. Futuro do Android
• Google x Oracle está chegando ao fim.
• A fragmentação do SO Android. Assim, as
operadoras e os fabricantes não iriam mais
modificar SO.
• Maior suporte a desenvolvimento de Jogos
e usabilidade. Foco no Design.
54. Futuro do Android
• Google x Oracle está chegando ao fim.
• A fragmentação do SO Android. Assim, as
operadoras e os fabricantes não iriam mais
modificar SO.
• Maior suporte a desenvolvimento de Jogos
e usabilidade. Foco no Design.
• Com a desfragmentação, maior estabilidade
da plataforma como um todo.
55. { Obrigado }
Dúvidas?
Paulo A. Júnior
@paulojribp