um app Android • Responsável pela interface com o usuário. • Todo app que tenha UI, tem que ter pelo menos uma Activity para funcionar. Calma aí… O que é Activity ?
Possui seu próprio ciclo de vida • Pode ser inserido / removido em uma Activity • Permite reuso de código • Principal elemento para criar interfaces para múltiplos tipos de devices e tamanho de tela E esse tal de Fragment ?
? Repositório no GitHub com o código completo: → github.com/DesenvolvedoresGoogle → codelab-android-openweatherapi A cada passo será colocado o comando para clonar o estágio esperado do projeto após cada etapa.
https://github.com/DesenvolvedoresGoogle/codelab-android- openweatherapi.git Agora o download da tag: cd codeladb-android-openweatherapi git checkout step-0 Alcançando a turma
componentes de interfaces com o usuário para Android. É a classe base dos Widgets, que são criados para criar componentes de UI como botões, textos, campos e etc. E a subclasse ViewGroup é a base para os layouts, que são os containers para armazenar outras views. Tudo é uma View !
widgets que estão disponíveis na plataforma Android. Tente, por exemplo, reproduzir uma tela de algum aplicativo que você use e ache interessante. Hora do Código
listeners: setOnLongClickListener setOnTouchListener setOnDragListener onScrollChanged Pode ser criado como classe interna anônima ou definir o próprio Fragment como listener dos objetos. Listeners e mais listeners…
classe que herda de Activity • Registrar a Activity no AndroidManifest • Criar Intent que deverá ser chamada • Executar o método startActivity com a Intent criada
alguma coisa • Um outro aplicativo • Uma activity do seu próprio aplicativo • Iniciar um serviço • Fazer um Broadcast • Existem os com nomes já determinados ou você pode criar a sua própria Intent Explicando melhor: O que é uma Intent ?
aplicativos Android • Deve ser colocado na raiz do projeto • Elementos e permissões devem registrados: • Activity • Services • BroadcastReceiver • Provider • Permissões • Versões de SDK e etc… AndroidManifest.xml
forma: • Criar nova Activity para mostrar pesquisa do tempo • Quando o botão Pesquisar for pressionado: • Validar se o usuário digitou alguma cidade • Mostrar Toast se não tiver digitado e não mudar de Activity • Iniciar a nova Activity Criada Desafio: • Mostrar o nome da cidade digitada na Activity anterior.
tipos diferentes de rede • É possível saber quando conectado a WiFi ou 3G/4G • Deve ser adicionado à permissão ao AndroidManifest • <uses-permission android:name="android.permission.INTERNET"/> • Conexões de rede não podem estar na Main Thread • Operações de I/O devem ser SEMPRE deslocadas para outras threads para não travar o aplicativo. Conectando o App a Internet
thread • Mesma forma que em uma aplicação Java "convencional" • Utilização de AsyncTask • Documentação oficial: http://goo.gl/XLHZwC • Vídeo "Usando AsyncTask": http://youtu.be/UgRHopzzg9c • Utilização de um Service • Também há a sub-classe IntentService Multithreading
responsável por executar uma tarefa que não necessite de UI • Um Service não necessariamente significa que sua tarefa está sendo executada em segundo plano. • A menos que esteja utilizando um IntentService • Um service pode ser disparado por outros elementos de um aplicativo, como Activities ou BroadcastReceiver. • Mas também pode ser ativado pelo próprio sistema. Service
url = new URL("http://api.openweathermap.org/data/2.5/weather?q=Belo% 20Horizonte"); HttpURLConnection con = (HttpURLConnection) url.openConnection(); con.setRequestMethod("GET"); con.connect(); if (con.getResponseCode() == HttpURLConnection.HTTP_OK) { is = con.getInputStream(); //Método fictício para transformar em String o retorno return getStringFromInputStream(is); } else { return null; } Executando um GET na API
Código Google pode te ajudar? Comunicação Web em apps Android • Parte I: http://goo.gl/SVsY5X • Parte II: http://goo.gl/W2G7q1 • Parte III: http://goo.gl/52GuVA Endereço do blog: http://codigo-google.blogspot.com.br Mas é só ?
entrar na nova Activity executar um GET na API do OpenWeatherMap para obter as condições climáticas da cidade que o usuário digitar na Activity anterior. Se lembrar de tratar respostas inesperadas ou indesejadas do Web Service. ;-)
ser programado para efetuar determinada operação quando uma certa ação ocorrer ou alguém enviar um "sinal" para o receiver. Exemplos: • Iniciar um serviço após o boot do aparelho • Sincronizar dados quando o celular estiver na tomada • Exibir uma notificação quando uma ação acontecer BroadcastReceiver
• Fica visível ao puxar a barra de sistema para baixo • Forma de aumentar a interação com o usuário. • Lembre-o que seu app existe • Use de forma inteligente, não seja chato ! • É sincronizável com o Android Wear Documentação: Notifying the user → http://goo.gl/6gPkSD Notificações
tela inicial ou de bloqueio do dispositivo. • Aumenta o engamento do usuário. • Permite ações mais rápidas. Documentação: App Widgets → http://goo.gl/H4e3BW Homescreen e Lockscreen Widgets