SlideShare uma empresa Scribd logo
CodeLab Android
Instrutor Houssan A. Hijazi
GDGFozCodelab Android
GDGFoz
• Houssan A. Hijazi - hussanhijazi@gmail.com
• Valmir Barbosa - valmir.php@gmail.com
• Jefferson Maran - jefferson.maran@gmail.com
GDGFozCodelab Android
Quem ajuda no Codelab ?
• Houssan Ali Hijazi
• HE:labs / 2.5 anos Android
• Lucas de Castro Oliveira
• Estágio em desenvolvimento na Eits - PTI. Formando
em Ciência da Computação pela Unioeste.
• Cassiano Peres
• Trabalha no CIH, projeto de pesquisa e
desenvolvimento com tecnologias java para web e
georreferenciamento.
GDGFozCodelab Android
Codelab
• Android SDK
• Android Studio
• UIElements e
Android XML
• Activities
• List & Adapters
• Serialização
• Json e GSON
• REST WebServices
GDGFozCodelab Android
Android Studio
• IDE Oficial do Android
• “Fork” do IntelliJ IDEA (Jetbrains)
• Versão estável atual: 1.5
GDGFozCodelab Android
Android Studio
• Pre-Requisitos
• Windows, Mac OS ou Linux (GNOME ou KDE)
• Ambiente de tempo de execução Java (JRE) 6 ou +
• Kit de desenvolvimento Java (JDK) 7 ou +
• MUITA memória
• Mínimo 2GB
• Recomendado 4GB (Minha recomendação: 8GB)
GDGFozCodelab Android
Estrutura de um projeto
Android
• Gradle
• Configuração do projeto
• Gerenciamento de dependências/build
• Java
• Classes Java (contém toda a parte lógica do app)
• Recursos
• XMLs (Layout, Strings, Estilos, etc…)
• Imagens (PNGs, Gifs, etc…)
• Assets
• Fontes, Bancos de dados pré-compilados, etc…
GDGFozCodelab Android
Let’s Code!
Java e res
Java e res
Meu app
Java e res
Meu app
Classes
Java e res
Meu app
Classes
Layout
Java e res
Animações no formato .xml utilizada no seu app
Java e res
Animações no formato .xml utilizada no seu app
Todos os ícones e imagens utilizada no seu app
Java e res
Animações no formato .xml utilizada no seu app
Todos os ícones e imagens utilizada no seu app
Todos os layout .xml do seu app
(Podem existir outras pastas layouts)
Java e res
Animações no formato .xml utilizada no seu app
Todos os ícones e imagens utilizada no seu app
Todos os layout .xml do seu app
(Podem existir outras pastas layouts)
Todos os menus .xml utilizado no seu app
Java e res
Animações no formato .xml utilizada no seu app
Todos os ícones e imagens utilizada no seu app
Todos os layout .xml do seu app
(Podem existir outras pastas layouts)
Todos os menus .xml utilizado no seu app
Somente o icon launcher do seu app.
Não confunda essa pasta com as drawable.
Java e res
Animações no formato .xml utilizada no seu app
Todos os ícones e imagens utilizada no seu app
Todos os layout .xml do seu app
(Podem existir outras pastas layouts)
Todos os menus .xml utilizado no seu app
Somente o icon launcher do seu app.
Não confunda essa pasta com as drawable.
Todos os textos, dimensões, cores,
arrays .xml utilizados no seu app
Java e res
Animações no formato .xml utilizada no seu app
Todos os ícones e imagens utilizada no seu app
Todos os layout .xml do seu app
(Podem existir outras pastas layouts)
Todos os menus .xml utilizado no seu app
Somente o icon launcher do seu app.
Não confunda essa pasta com as drawable.
Todos os textos, dimensões, cores,
arrays .xml utilizados no seu app
Declarar suas Activity, permissões, services e etc.
GDGFozCodelab Android
AndroidManifest.xml
GDGFozCodelab Android
AndroidManifest.xml
• Arquivo que descreve o conteúdo do aplicativo
• package: pacote java “default" para o App, também
usado com ID único
• Componentes presentes no App
• Activities, Services, BroadcastReceivers, etc.
• Permissões requeridas para o App
• Features de HW/SW usadas pelo App
• API Level mínimo suportado pelo App
• Algumas informações são usadas pelo Google Play Store
GDGFozCodelab Android
• View
• Classe base para qualquer componente de UI
• ViewGroup
• Tipo especial de View que podem ter Views "filhas"
• Gerenciadores de Layout
• Mais comuns:
• LinearLayout
• RelativeLayout
• FrameLayout
• GridLayout
Construção de Layout
GDGFozCodelab Android
ViewGroup
(Layout Managers)
• LinearLayout
• Organiza as Views de forma linear
• android:orientation especifica a direção linear
• “horizontal" ou “vertical”
• android:layout_gravity pode ser usada
• android:layout_weight
• Atribui uma “importância" aos filhos
• O espaço é dividido pela importância
GDGFozCodelab Android
ViewGroup
(Layout Managers)
• RelativeLayout
• Organiza as Views de forma relativa
• Com relação ao pai ou a elas mesmas
• android:layout_alignParent[Top | Bottom | Left | Right]
• Relacionado ao pai (true/false)
• android:layout_toLeftOf / layout_toRightOf
• Relacionado a outro filho (@id/child_id)
• android:layout_below / layout_above
• Relacionado a outro filho (@id/child_id)
GDGFozCodelab Android
Construção de Layout
• XML (res/layout)
• Define estrutura visual da interface
• Separa Visão/Comportamento
• Exemplo:
GDGFozCodelab Android
Construção de Layout
• Atributos
• ID (android:id)
• Definindo ID: android:id=“@+id/my_button"
• Referenciando ID: “@id/my_button” (XML) ou R.id.my_button (Java)
• LayoutParams
• Define atributos relativos ao ViewGroup pai
• android:layout_*
• android:layout_width / android:layout_height obrigatórios
• Valores possíveis: “wrap_content”, “match_parent”, valor fixo
• outros atributos
• android:layout_margin (ViewGroup)
• android:layout_gravity (LinearLayout)
• android:layout_weight (LinearLayout)
GDGFozCodelab Android
Construção de Layout
• LayoutParams
• Obrigatórios
• android:layout_width
• android:layout_height
• outros atributos
• android:layout_margin (ViewGroup)
• android:layout_gravity (LinearLayout)
• android:layout_weight (LinearLayout)
• Valores possíveis para altura/largura
• “wrap_content”
• “match_parent”
• valor inteiro fixo
GDGFozCodelab Android
Construção de Layout
• Alguns atributos de View
• android:background
• Valores possíveis: #RRGGBB, @drawable/image, @color/my_color
• Referenciando ID: “@id/my_button” (XML) ou R.id.my_button (Java)
• android:onClick
• Valor: nome do método que será chamado ao clicar na View.
• Exemplo:
• android:onClick=“viewClicked”
• public void viewClicked(View v)
• android:padding
• paddingTop, paddingBottom, paddingLeft, paddingRight
• Padding != Margin
GDGFozCodelab Android
Ligação XML - Java
• Activity
• Componente que fornece uma tela para que o usuário
possa interagir com a UI
• Um app pode ter n Activities
• Activity não é uma View, ela possui Views
• Ligando uma Activity a um XML de layout
• setContentView(R.layout.my_layout);
• deve ser chamado no método onCreate()
http://boomersurf.com/wp-content/uploads/2013/06/iphone-ca http://boomersurf.com/wp-content/
uploads/2013/06/iphone-camera-icon.jpg mera-ic http://www.thekirankumar.com/blog/wp-content/
uploads/2013/03/deadlock.jpg on.jpg
GDGFozCodelab Android
Activity
Lifecycle
GDGFozCodelab Android
Let’s Code!
GDGFozCodelab Android
RecyclerView
GDGFozCodelab Android
RecyclerView
GDGFozCodelab Android
RecyclerView
<android.support.v7.widget.RecyclerView

android:id="@+id/list_data"

android:layout_width="match_parent"

android:layout_height="match_parent"

/>
GDGFozCodelab Android
RecyclerView.Adapter
class CategoryAdapter
extends
RecyclerView.Adapter<CategoryAdapter.ViewHolder>
ViewHolder onCreateViewHolder(ViewGroup parent,
int viewType)
void onBindViewHolder(ViewHolder holder, final
int position)

int getItemCount()

public class ViewHolder
extends RecyclerView.ViewHolder
GDGFozCodelab Android
CardView
GDGFozCodelab Android
CardView
<android.support.v7.widget.CardView

android:id="@+id/card_view"

android:layout_width="match_parent"

android:layout_height="wrap_content"

>
GDGFozCodelab Android
RecyclerView/CardView
Grade

compile 'com.android.support:recyclerview-v7:22.1.1'

compile 'com.android.support:cardview-v7:22.1.1'
GDGFozCodelab Android
Consumindo uma api
Retrofit + Gson + Picasso
GDGFozCodelab Android
GDGFoz Todo Api
• todo.api.gdgfoz.org/api/v1
GDGFozCodelab Android
Retrofit


Gradle



compile 'com.squareup.retrofit:retrofit:1.9.0'

GDGFozCodelab Android
Retrofit
GDGFozCodelab Android
Retrofit
GDGFozCodelab Android
Retrofit
private static RestAdapter.LogLevel logLevel =
RestAdapter.LogLevel.FULL;

private static RestAdapter.Builder builder =
new RestAdapter.Builder()

.setEndpoint(Config.BASE_API)

.setLogLevel(logLevel);
GDGFozCodelab Android
Gson
public class Category {



@SerializedName("id")

@Expose

private Integer id;

@SerializedName("category")

@Expose

private String category;

@SerializedName("src")

@Expose

private String src;
}
GDGFozCodelab Android
Picasso
Grade

compile 'com.squareup.picasso:picasso:2.5.2'
GDGFozCodelab Android
Picasso
GDGFozCodelab Android
Links
• Android - http://developer.android.com/intl/pt-br/index.html
• Android Studio - http://developer.android.com/intl/pt-br/sdk/
index.html
• VirtualBox - https://www.virtualbox.org/
• Genymotion - https://www.genymotion.com
• JsonSchema2Pojo - http://www.jsonschema2pojo.org/
Obrigado

Mais conteúdo relacionado

Destaque

Course (re)design seminar
Course (re)design seminarCourse (re)design seminar
Course (re)design seminarBCcampus
 
Auguste comte la ley de los tres estados y la idea de progreso
Auguste comte la ley de los tres estados y la idea de progresoAuguste comte la ley de los tres estados y la idea de progreso
Auguste comte la ley de los tres estados y la idea de progresoFe y Alegría Argentina
 
Gender norms and changing childhoods:
Gender norms and changing childhoods: Gender norms and changing childhoods:
Gender norms and changing childhoods: Young Lives Oxford
 
NoSQL on AWSで作る最新ソーシャルゲームアーキテクチャ
NoSQL on AWSで作る最新ソーシャルゲームアーキテクチャNoSQL on AWSで作る最新ソーシャルゲームアーキテクチャ
NoSQL on AWSで作る最新ソーシャルゲームアーキテクチャYasuhiro Matsuo
 
Arrendamiento financiero
Arrendamiento financieroArrendamiento financiero
Arrendamiento financieroysmarycatherine
 

Destaque (6)

Course (re)design seminar
Course (re)design seminarCourse (re)design seminar
Course (re)design seminar
 
Auguste comte la ley de los tres estados y la idea de progreso
Auguste comte la ley de los tres estados y la idea de progresoAuguste comte la ley de los tres estados y la idea de progreso
Auguste comte la ley de los tres estados y la idea de progreso
 
LINQ to なにがし
LINQ to なにがしLINQ to なにがし
LINQ to なにがし
 
Gender norms and changing childhoods:
Gender norms and changing childhoods: Gender norms and changing childhoods:
Gender norms and changing childhoods:
 
NoSQL on AWSで作る最新ソーシャルゲームアーキテクチャ
NoSQL on AWSで作る最新ソーシャルゲームアーキテクチャNoSQL on AWSで作る最新ソーシャルゲームアーキテクチャ
NoSQL on AWSで作る最新ソーシャルゲームアーキテクチャ
 
Arrendamiento financiero
Arrendamiento financieroArrendamiento financiero
Arrendamiento financiero
 

Semelhante a Android: Por onde começar ?

Aulas Google Android
Aulas Google AndroidAulas Google Android
Aulas Google AndroidIury Teixeira
 
Introdução a Plataforma Android
Introdução a Plataforma AndroidIntrodução a Plataforma Android
Introdução a Plataforma AndroidÉdipo Souza
 
Layouts e multiplas activities
Layouts e multiplas activitiesLayouts e multiplas activities
Layouts e multiplas activitiesCalebeMiquissene
 
Desenvolvimento Android, por onde começar?
Desenvolvimento Android, por onde começar?Desenvolvimento Android, por onde começar?
Desenvolvimento Android, por onde começar?Rudson Lima
 
SESTINFO 2011 Apresentacao Android
SESTINFO 2011 Apresentacao AndroidSESTINFO 2011 Apresentacao Android
SESTINFO 2011 Apresentacao AndroidRafael Sakurai
 
Curso Android 01: Introdução
Curso Android 01: IntroduçãoCurso Android 01: Introdução
Curso Android 01: IntroduçãoAline Borges
 
Desenvolvimento de Apps e Games para Android - Parte 2
Desenvolvimento de Apps e Games para Android - Parte 2Desenvolvimento de Apps e Games para Android - Parte 2
Desenvolvimento de Apps e Games para Android - Parte 2Erisvaldo Junior
 
Desenvolvimento Ágil com Grails.
Desenvolvimento Ágil com Grails.Desenvolvimento Ágil com Grails.
Desenvolvimento Ágil com Grails.Alex Guido
 
Descomplicando o Android
Descomplicando o AndroidDescomplicando o Android
Descomplicando o AndroidHeider Lopes
 
Automatização Desenvolvimento Web com Gulp
Automatização Desenvolvimento Web com GulpAutomatização Desenvolvimento Web com Gulp
Automatização Desenvolvimento Web com GulpRicardo Costa
 
Minicurso de Android
Minicurso de AndroidMinicurso de Android
Minicurso de AndroidEdgar Eler
 
Introdução ao android e plataforma android
Introdução ao android e plataforma androidIntrodução ao android e plataforma android
Introdução ao android e plataforma androidJuarez Junior
 
Apresentação realidade aumentada para aplicações web e mobile
Apresentação   realidade aumentada para aplicações web e mobileApresentação   realidade aumentada para aplicações web e mobile
Apresentação realidade aumentada para aplicações web e mobileRWTH Aachen University
 
Case studies about Layout & View States & Scale in Windows 8 Store Apps
Case studies about Layout & View States & Scale in Windows 8 Store AppsCase studies about Layout & View States & Scale in Windows 8 Store Apps
Case studies about Layout & View States & Scale in Windows 8 Store AppsComunidade NetPonto
 
Desenvolvendo aplicacoes mobile_com_html_css_
Desenvolvendo aplicacoes mobile_com_html_css_Desenvolvendo aplicacoes mobile_com_html_css_
Desenvolvendo aplicacoes mobile_com_html_css_Rodrigo Urubatan
 

Semelhante a Android: Por onde começar ? (20)

Aulas Google Android
Aulas Google AndroidAulas Google Android
Aulas Google Android
 
Android - Além do HelloWord
Android - Além do HelloWordAndroid - Além do HelloWord
Android - Além do HelloWord
 
Android Libs - AndroidDevConf
Android Libs - AndroidDevConfAndroid Libs - AndroidDevConf
Android Libs - AndroidDevConf
 
Mulheres na tecnologia 2015
Mulheres na tecnologia 2015Mulheres na tecnologia 2015
Mulheres na tecnologia 2015
 
Introdução a Plataforma Android
Introdução a Plataforma AndroidIntrodução a Plataforma Android
Introdução a Plataforma Android
 
Layouts e multiplas activities
Layouts e multiplas activitiesLayouts e multiplas activities
Layouts e multiplas activities
 
Desenvolvimento Android, por onde começar?
Desenvolvimento Android, por onde começar?Desenvolvimento Android, por onde começar?
Desenvolvimento Android, por onde começar?
 
Apresentação Google Android
Apresentação Google AndroidApresentação Google Android
Apresentação Google Android
 
SESTINFO 2011 Apresentacao Android
SESTINFO 2011 Apresentacao AndroidSESTINFO 2011 Apresentacao Android
SESTINFO 2011 Apresentacao Android
 
Curso Android 01: Introdução
Curso Android 01: IntroduçãoCurso Android 01: Introdução
Curso Android 01: Introdução
 
Desenvolvimento de Apps e Games para Android - Parte 2
Desenvolvimento de Apps e Games para Android - Parte 2Desenvolvimento de Apps e Games para Android - Parte 2
Desenvolvimento de Apps e Games para Android - Parte 2
 
Grails
GrailsGrails
Grails
 
Desenvolvimento Ágil com Grails.
Desenvolvimento Ágil com Grails.Desenvolvimento Ágil com Grails.
Desenvolvimento Ágil com Grails.
 
Descomplicando o Android
Descomplicando o AndroidDescomplicando o Android
Descomplicando o Android
 
Automatização Desenvolvimento Web com Gulp
Automatização Desenvolvimento Web com GulpAutomatização Desenvolvimento Web com Gulp
Automatização Desenvolvimento Web com Gulp
 
Minicurso de Android
Minicurso de AndroidMinicurso de Android
Minicurso de Android
 
Introdução ao android e plataforma android
Introdução ao android e plataforma androidIntrodução ao android e plataforma android
Introdução ao android e plataforma android
 
Apresentação realidade aumentada para aplicações web e mobile
Apresentação   realidade aumentada para aplicações web e mobileApresentação   realidade aumentada para aplicações web e mobile
Apresentação realidade aumentada para aplicações web e mobile
 
Case studies about Layout & View States & Scale in Windows 8 Store Apps
Case studies about Layout & View States & Scale in Windows 8 Store AppsCase studies about Layout & View States & Scale in Windows 8 Store Apps
Case studies about Layout & View States & Scale in Windows 8 Store Apps
 
Desenvolvendo aplicacoes mobile_com_html_css_
Desenvolvendo aplicacoes mobile_com_html_css_Desenvolvendo aplicacoes mobile_com_html_css_
Desenvolvendo aplicacoes mobile_com_html_css_
 

Mais de GDGFoz

Apresentação GDG Foz 2023
Apresentação GDG Foz  2023Apresentação GDG Foz  2023
Apresentação GDG Foz 2023GDGFoz
 
Desenvolvimento de um Comedouro para cães com Acionamento Automático e Remoto
Desenvolvimento de um Comedouro para cães com Acionamento Automático e RemotoDesenvolvimento de um Comedouro para cães com Acionamento Automático e Remoto
Desenvolvimento de um Comedouro para cães com Acionamento Automático e RemotoGDGFoz
 
Introdução do DEVSECOPS
Introdução do DEVSECOPSIntrodução do DEVSECOPS
Introdução do DEVSECOPSGDGFoz
 
Aquisição de dados IoT com Event Sourcing e Microservices
Aquisição de dados IoT com Event Sourcing e MicroservicesAquisição de dados IoT com Event Sourcing e Microservices
Aquisição de dados IoT com Event Sourcing e MicroservicesGDGFoz
 
Robótica Sucational
Robótica SucationalRobótica Sucational
Robótica SucationalGDGFoz
 
A nova era do desenvolvimento mobile
A nova era do desenvolvimento mobile A nova era do desenvolvimento mobile
A nova era do desenvolvimento mobile GDGFoz
 
Qualidade em Testes de Software
Qualidade em Testes de SoftwareQualidade em Testes de Software
Qualidade em Testes de SoftwareGDGFoz
 
WebAssembly além da Web - Casos de Uso em IoT
WebAssembly além da Web - Casos de Uso em IoTWebAssembly além da Web - Casos de Uso em IoT
WebAssembly além da Web - Casos de Uso em IoTGDGFoz
 
Dart e Flutter do Server ao Client Side
Dart e Flutter do Server ao Client SideDart e Flutter do Server ao Client Side
Dart e Flutter do Server ao Client SideGDGFoz
 
UX: O que é e como pode influenciar a vida do desenvolvedor?
UX: O que é e como pode influenciar a vida do desenvolvedor?UX: O que é e como pode influenciar a vida do desenvolvedor?
UX: O que é e como pode influenciar a vida do desenvolvedor?GDGFoz
 
Dicas de como entrar no mundo do DevSecOps
Dicas de como entrar no mundo do DevSecOpsDicas de como entrar no mundo do DevSecOps
Dicas de como entrar no mundo do DevSecOpsGDGFoz
 
Angular >= 2 - One Framework Mobile & Desktop
Angular >= 2 - One Framework Mobile & DesktopAngular >= 2 - One Framework Mobile & Desktop
Angular >= 2 - One Framework Mobile & DesktopGDGFoz
 
Automação Residencial Extrema com Opensource
Automação Residencial Extrema com OpensourceAutomação Residencial Extrema com Opensource
Automação Residencial Extrema com OpensourceGDGFoz
 
Brasil.IO COVID-19: Dados por Municípios. Quais os Desafios?
Brasil.IO COVID-19: Dados por Municípios. Quais os Desafios?Brasil.IO COVID-19: Dados por Municípios. Quais os Desafios?
Brasil.IO COVID-19: Dados por Municípios. Quais os Desafios?GDGFoz
 
Desmistificando a programação funcional
Desmistificando a programação funcionalDesmistificando a programação funcional
Desmistificando a programação funcionalGDGFoz
 
Microsserviços com Kotlin
Microsserviços com KotlinMicrosserviços com Kotlin
Microsserviços com KotlinGDGFoz
 
Autenticação de dois fatores
Autenticação de dois fatores Autenticação de dois fatores
Autenticação de dois fatores GDGFoz
 
Fique em casa seguro (ou tente)!
Fique em casa seguro (ou tente)!Fique em casa seguro (ou tente)!
Fique em casa seguro (ou tente)!GDGFoz
 
Hooks em React: o novo jeito de fazer componentes funcionais
Hooks em React: o novo jeito de fazer componentes funcionaisHooks em React: o novo jeito de fazer componentes funcionais
Hooks em React: o novo jeito de fazer componentes funcionaisGDGFoz
 
Angular, React ou Vue? Comparando os favoritos do JS reativo
Angular, React ou Vue? Comparando os favoritos do JS reativoAngular, React ou Vue? Comparando os favoritos do JS reativo
Angular, React ou Vue? Comparando os favoritos do JS reativoGDGFoz
 

Mais de GDGFoz (20)

Apresentação GDG Foz 2023
Apresentação GDG Foz  2023Apresentação GDG Foz  2023
Apresentação GDG Foz 2023
 
Desenvolvimento de um Comedouro para cães com Acionamento Automático e Remoto
Desenvolvimento de um Comedouro para cães com Acionamento Automático e RemotoDesenvolvimento de um Comedouro para cães com Acionamento Automático e Remoto
Desenvolvimento de um Comedouro para cães com Acionamento Automático e Remoto
 
Introdução do DEVSECOPS
Introdução do DEVSECOPSIntrodução do DEVSECOPS
Introdução do DEVSECOPS
 
Aquisição de dados IoT com Event Sourcing e Microservices
Aquisição de dados IoT com Event Sourcing e MicroservicesAquisição de dados IoT com Event Sourcing e Microservices
Aquisição de dados IoT com Event Sourcing e Microservices
 
Robótica Sucational
Robótica SucationalRobótica Sucational
Robótica Sucational
 
A nova era do desenvolvimento mobile
A nova era do desenvolvimento mobile A nova era do desenvolvimento mobile
A nova era do desenvolvimento mobile
 
Qualidade em Testes de Software
Qualidade em Testes de SoftwareQualidade em Testes de Software
Qualidade em Testes de Software
 
WebAssembly além da Web - Casos de Uso em IoT
WebAssembly além da Web - Casos de Uso em IoTWebAssembly além da Web - Casos de Uso em IoT
WebAssembly além da Web - Casos de Uso em IoT
 
Dart e Flutter do Server ao Client Side
Dart e Flutter do Server ao Client SideDart e Flutter do Server ao Client Side
Dart e Flutter do Server ao Client Side
 
UX: O que é e como pode influenciar a vida do desenvolvedor?
UX: O que é e como pode influenciar a vida do desenvolvedor?UX: O que é e como pode influenciar a vida do desenvolvedor?
UX: O que é e como pode influenciar a vida do desenvolvedor?
 
Dicas de como entrar no mundo do DevSecOps
Dicas de como entrar no mundo do DevSecOpsDicas de como entrar no mundo do DevSecOps
Dicas de como entrar no mundo do DevSecOps
 
Angular >= 2 - One Framework Mobile & Desktop
Angular >= 2 - One Framework Mobile & DesktopAngular >= 2 - One Framework Mobile & Desktop
Angular >= 2 - One Framework Mobile & Desktop
 
Automação Residencial Extrema com Opensource
Automação Residencial Extrema com OpensourceAutomação Residencial Extrema com Opensource
Automação Residencial Extrema com Opensource
 
Brasil.IO COVID-19: Dados por Municípios. Quais os Desafios?
Brasil.IO COVID-19: Dados por Municípios. Quais os Desafios?Brasil.IO COVID-19: Dados por Municípios. Quais os Desafios?
Brasil.IO COVID-19: Dados por Municípios. Quais os Desafios?
 
Desmistificando a programação funcional
Desmistificando a programação funcionalDesmistificando a programação funcional
Desmistificando a programação funcional
 
Microsserviços com Kotlin
Microsserviços com KotlinMicrosserviços com Kotlin
Microsserviços com Kotlin
 
Autenticação de dois fatores
Autenticação de dois fatores Autenticação de dois fatores
Autenticação de dois fatores
 
Fique em casa seguro (ou tente)!
Fique em casa seguro (ou tente)!Fique em casa seguro (ou tente)!
Fique em casa seguro (ou tente)!
 
Hooks em React: o novo jeito de fazer componentes funcionais
Hooks em React: o novo jeito de fazer componentes funcionaisHooks em React: o novo jeito de fazer componentes funcionais
Hooks em React: o novo jeito de fazer componentes funcionais
 
Angular, React ou Vue? Comparando os favoritos do JS reativo
Angular, React ou Vue? Comparando os favoritos do JS reativoAngular, React ou Vue? Comparando os favoritos do JS reativo
Angular, React ou Vue? Comparando os favoritos do JS reativo
 

Android: Por onde começar ?