{ Android }
 Além do HelloWord
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.
Agenda
•   Histórico

•   HelloWord

•   Além do HelloWord

    •   Uma activity

    •   Um layout

    •   Boas práticas Android

•   Futuro do Android
Histórico do Android
Histórico do Android
• Comprado pelo Google em 2005 de uma
  empresa chamada Android, Inc.
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.
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.
Histórico do Android
•   Android e suas histórias
    •   Vrs. 1.5 Cupcake
    •   1.6 Donut
    •   2.0 Eclair
    •   2.2 Froyo
    •   2.3 Gigerbread
    •   3.0 HoneyComb
    •   4.0 IceCream Sandwich
Agenda
•   Histórico

•   HelloWord

•   Além do HelloWord

    •   Uma activity

    •   Um layout

    •   Boas práticas Android

•   Futuro do Android
HelloWord


• Para realizar um HelloWord no Android é
  bastante simples. Um wizard e tudo está
  feito.
Vejamos na prática
HelloWord

• Pronto. HelloWord feito, agora vamos além.
Agenda
•   Histórico

•   HelloWord

•   Além do HelloWord

    •   Uma activity

    •   Um layout

    •   Boas práticas Android

•   Futuro do Android
Além do HelloWord
Uma Activity
Uma Activity
• É o bloco em que é
  construída a interface do
  usuário.
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.
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.
Uma Activity
Uma Activity

• Ela é quem controla o estado em que a app
  estará.
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?
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.
http://www.felipesilveira.com.br/2010/05/activity-o-que-e-isso/
Agenda
•   Histórico

•   HelloWord

•   Além do HelloWord

    •   Uma activity

    •   Um layout

    •   Boas práticas Android

•   Futuro do Android
Um Layout XML
Um Layout XML
•   São colocados dentro da pasta res/
Um Layout XML
•   São colocados dentro da pasta res/
•   Dentro de /res temos outras pastas importantes.
    Vejamos:
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.
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
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
Vejamos na prática
Agenda
•   Histórico

•   HelloWord

•   Além do HelloWord

    •   Uma activity

    •   Um layout

    •   Boas práticas Android

•   Futuro do Android
Boas práticas Android
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.
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.
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.
Boas práticas Android
  Pequeno        Médio        Grande




Tela sem suporte a diferentes tamanhos




Tela COM suporte a diferentes tamanhos
Boas práticas Android
Boas práticas Android
• Mas como suportar múltiplos tamanhos?
Boas práticas Android
• Mas como suportar múltiplos tamanhos?
 • Declarando no Manifest quais tamanhos
    de tela sua app suporta.
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"/>
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
Boas práticas Android


• Bem como as imagens
 •   /res/drawable-mdpi/icone.png

 •   /res/drawable-hdpi/icone.png

 •   /res/drawable-xhdpi/icone.png
Boas práticas Android
Boas práticas Android
• Use sempre dp (density-independent pixel)
  para tamanho de imagens e componentes e
  sp (scale-independent pixel) para textos
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.
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.
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.
Agenda
•   Histórico

•   HelloWord

•   Além do HelloWord

    •   Uma activity

    •   Um layout

    •   Boas práticas Android

•   Futuro do Android
Futuro do Android
Futuro do Android
• Google x Oracle está chegando ao fim.
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.
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.
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.
{ Obrigado }
    Dúvidas?




    Paulo A. Júnior
     @paulojribp

Android - Além do HelloWord

  • 1.
    { Android } Além do HelloWord
  • 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
  • 4.
  • 5.
    Histórico do Android •Comprado pelo Google em 2005 de uma empresa chamada Android, Inc.
  • 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.
  • 8.
    Histórico do Android • Android e suas histórias • Vrs. 1.5 Cupcake • 1.6 Donut • 2.0 Eclair • 2.2 Froyo • 2.3 Gigerbread • 3.0 HoneyComb • 4.0 IceCream Sandwich
  • 9.
    Agenda • Histórico • HelloWord • Além do HelloWord • Uma activity • Um layout • Boas práticas Android • Futuro do Android
  • 10.
    HelloWord • Para realizarum HelloWord no Android é bastante simples. Um wizard e tudo está feito.
  • 11.
  • 12.
    HelloWord • Pronto. HelloWordfeito, agora vamos além.
  • 13.
    Agenda • Histórico • HelloWord • Além do HelloWord • Uma activity • Um layout • Boas práticas Android • Futuro do Android
  • 14.
  • 15.
  • 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.
  • 19.
  • 20.
    Uma Activity • Elaé quem controla o estado em que a app estará.
  • 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.
  • 23.
  • 24.
    Agenda • Histórico • HelloWord • Além do HelloWord • Uma activity • Um layout • Boas práticas Android • Futuro do Android
  • 25.
  • 26.
    Um Layout XML • São colocados dentro da pasta res/
  • 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
  • 31.
  • 32.
    Agenda • Histórico • HelloWord • Além do HelloWord • Uma activity • Um layout • Boas práticas Android • Futuro do Android
  • 33.
  • 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
  • 38.
  • 39.
    Boas práticas Android •Mas como suportar múltiplos 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
  • 44.
  • 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
  • 50.
  • 51.
    Futuro do Android •Google x Oracle está chegando ao fim.
  • 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