Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Começando com Android

Começando com Android

Lucas Marques

December 20, 2017
Tweet

More Decks by Lucas Marques

Other Decks in Programming

Transcript

  1. Agenda • Um pouco sobre a história • Começando no

    Android • Linguagens oficiais • Componentes principais • Activities • Fragments • Kotlin? • Sintaxe • Demo • Fazendo bonito - DevOps • Configuração • Build • Distribuição
  2. Android History • Android 1.6 – Donut (2008) • Android

    Market é lançado • Diversidade no tamanho de telas • Caixa de pesquisa rápida • Android 2.1 – Eclair • Google Maps • Personalização de tela • Speech to Text • Android 2.2 – Froyo • Voice to Action • Tethering • Desempenho 5x melhor que o anterior • Introduziu o compilador JIT Dalvik • Trouxe o V8 JS melhorando em até 3x o desempenho do JS • Android 2.3 – Gingerbread • API para Games • NFC • Android 3.0 – HoneyComb • Design for Tablets • Barra de sistema / Configuraçao rápida • Android 4.0 – Ice Cream Sandwich • Android Beam (suporte para transferencia rápida entre dois Androids) • Introduziu pastas e bandejas na Home • Controle do Uso de dados • Android 4.1 - Jelly Bean • Google Now • Notificações acionáveis • Suporte a multiplas contas • Android 4.4 – KitKat • Introduziu o Ok Google • Design imersivo • Android 5.0 – Lollipop • Material Design • Suporte a várias telas • Android Tv, Wear • Android 6.0 – Marshmallow • Google now acessivel pelo botão home • Permissões de apps • Impressão digital • Android 7.0 – Nougat • Suporte a dois apps dividos na mesma tela • Modo VR
  3. • Em 23 de setembro de 2008, é lançado a

    primeira versão comercial do Android. • Com suporte a algumas features • Android Market • Realizando download e atualização de aplicativos • Navegador Web • Com suporte a HTML e XHTML, multiiplas páginas abertas em várias janelas • Suporte a camera
  4. • Lançado em 30 de abril de 2009 incluiu muitos

    novos recursos e foi a primeira versão a usar oficialmente o nome baseado em um doce • Alguns recursos: • Suporte a teclados virtuais • Autorrotação da tela • Gravação e reprodução de vídeos • Suporte a Widgets
  5. • Lançado em 15 de setembro de 2009, • Diversidade

    no tamanho de telas • Caixa de pesquisa rápida
  6. Conheça a estrutura de um projeto, o manifesto, as bibliotecas

    de suporte e como gerenciá-las em seu projeto
  7. Estrutura do projeto • App • Modulo do projeto •

    Projetos podem ter vários módulos, sendo de alguns tipos • Modulos de Biblioteca • Modulos Android (TV, Glass, Wear, SmartPhone, Tablet) • Modulos do Google Cloud • Manifests • Contem o arquivo AndroidManifest.xml • Java • Contém os arquivos de código fonte, incluindo os de testes automatizados • Res • Contém os outros arquivos que não são código, como arquivos de layout, strings, imagens • Gradle Scripts • Define as configurações de compilação do módulo.
  8. O Manifesto • Identifica quaisquer permissões de usuário que o

    aplicativo requer, como acesso à Internet ou acesso de leitura aos contatos do usuário. • Declara o nível mínimo de API exigido pelo aplicativo, com base em quais APIs o aplicativo usa. • Declara os recursos de hardware e software usados ou exigidos pelo aplicativo, como uma câmera, serviços bluetooth ou uma tela multitouch.
  9. Support Library • App Components • User Interface • Material

    Design • Graphics • Accessibility • Media Playback • TV Apps • Utilities
  10. App Components • São os blocos essenciais de contrução de

    uma aplicação Android • Possui 4 tipos de componentes: • Activities • Services • Broadcast Receivers • Content Providers
  11. Activities • Uma atividade é o ponto de entrada para

    interagir com o usuário. • Representa uma única tela com uma interface de usuário.
  12. Um pouco mais sobre Activities • onCreate() • Implementação obrigatória.

    • Inicialize recursos esseciais, exemplo: criação de views e bind de dados • onPause() • é ativado quando a Activity não está mais em focus, exemplo de quando isso acontece: usuário pressionou o botão Back • onDestroy() • Libere os recursos que você criou
  13. Famosos fragments • Representam uma porção de uma Activity •

    Você pode combinar vários fragments numa Activity • Podem ser utilizados em múltiplas activities
  14. E possuem LifeCycle próprio • Contém callbacks similares a de

    uma Activity, como por exemplo: onCreate(), onStart(), onPause(), onStop() • Geralmente, implementamos os seguintes callbacks: • onCreate() • Chamado quando o sistema cria o fragment, • Assim como na Activity, inicialize os componentes necessários • onCreateView() • Chamado quando o sistema irá desenhar o fragment na tela, • Obrigatoriamente é necessário retornar uma View, que é o componente raiz de layout do fragment • onPause() • O sistema chama como a primeira indicação que o usuário está deixando o fragment
  15. Services • Um serviço é um ponto de entrada de

    propósito geral para manter um aplicativo executado em segundo plano para todos os tipos de razões. • Usado principalmente para operações de longa duração ou execução de trabalhos para processos remotos. • Um serviço não fornece uma interface de usuário.
  16. Broadcast Receivers • É um componente que permite que o

    sistema envie eventos para o aplicativo fora de um fluxo regular de usuários, permitindo que o aplicativo responda esses eventos. • Pode rodar em segundo plano, mas não necessariamente • Não possuem interface de usuários, mas • Podem criar uma notificação na barra de status para alertar o usuário
  17. Content Providers • Gerencia um conjunto compartilhado de dados do

    aplicativo que podem ser armazenados no sistema de arquivos, em um banco de dados SQLite, na Web ou em qualquer outro local de armazenamento persistente ao qual seu aplicativo possa acessar. • Exemplo: o sistema Android fornece um content provider que gerencia as informações de contato do usuário. Como tal, qualquer aplicativo com as permissões adequadas pode consultar o content provider, para ler e escrever informações sobre uma determinada pessoa.
  18. User Interface Fornece implementações de componentes chave para a criação

    de uma UI Sendo estes componentes: • Recycler View • View Pager • Grid Layout • PercentFrameLayout • Drawer Layout • Sliding Panel Layout • SwipeRefreshLayout • NestedScrollView • CardView • AppCompatDialogFragment • NotificationCompat • SearchView
  19. RecyclerView • Basicamente: Listas • Android Docs: • É um

    contêiner para exibir grandes conjuntos de dados que podem ser rolados com muita eficiência ao manter um número limitado de visualizações
  20. Gradle • É baseado no Apache Ant e Apache Maven

    • Utiliza uma linguagem baseada em Groovy ao invés de XML • Projetado para multi-projetos que podem ter alto crescimento, e suporta compilações incrementais • Inteligente a ponto de determinar quais partes da árvore estão atualizadas, de modo que qualquer tarefa dependente dessas partes não precisa ser re-executada. Fonte: Wikipedia
  21. Sobre… • OpenSource, mas mantido pela JetBrains • Roda totalmente

    sob a JVM • 100% de interoperabilidade com Java
  22. Classes • Possuem métodos inicializadores • Que pode ser mais

    de um • Possui o conceito de data class • São classes utilizadas para representar models
  23. Variáveis, Propriedades e imutabilidade • Classes podem ter propriedades que

    podem ser mutáveis ou não • Use val para declarar uma variável readOnly
  24. Interfaces • Muito parecidas com as do Java 8 e

    Swift • Podem conter declarações de métodos abstratos e suas implementações
  25. Singletons… • Diferentemente de Java e C#, um singleton em

    Kotlin deve ser criado a partir de uma declaração de object
  26. Métodos staticos? Noup, Companion Objects • Diferente de Java e

    C#, classes não possuem metodos estáticos. • O que pode ser feito, é criar um companion object que será chamado utilizando a mesma sintaxe de um metodo estático
  27. E mais um monte de coisa…. • Generics • High

    Order Functions • Lambdas Functions • Para saber mais acesse: https://kotlinlang.org/docs/reference/