SlideShare uma empresa Scribd logo
1 de 49
Baixar para ler offline
Construindo sua
    aplicação para
conquistar os usuários
André Silva
@andreronsilva
github.com/andrelrs
Desenvolvedor Android não
 gosta de fazer aplicações
         bonitas.
             Autor não revelado
Qualquer um de nós ficaria
chateado, desmotivado ou
         abatido.
              Joseph Climber
Vamos pensar no layout...
  por que não usar o do
      concorrente?
d.android.com/design
androidniceties.tumblr.com
youtube.com/user/
androiddevelopers
Com o layout definido, está
  na hora de começar o
        projeto!?
www.androidbootstrap.com
ActionBar é obrigatório em
   qualquer aplicativo!
Independente da versão do
        android.
www.actionbarsherlock.com
MainActivity.java
res/values/styles.xml
AndroidManifest.xml
jgilfelt.github.com/android-
  actionbarstylegenerator
Temos o layout, a estrutura
 do código e agora mão na
    massa no projeto?
Usabilidade (UX)
Como fazer o envio das
imagens sem afetar a UX
    do aplicativo?
3G no Brasil
Deixar a tela do aplicativo
"esperando" ou "carregando"
Deixar a tela "livre" para que
 o usuário continue usando o
aplicativo, e o envio será feito
       em background.
Deixar a usabilidade fluente.
       Como assim?
Vamos então falar das
técnicas de background.
AsyncTask
Handler
Looper
loopj.com/android-async-http
Mas e quando a timeline tem
  muitas imagens qual a
    melhor estratégia?
1   2   3
Service / IntentService
Não tem bala de prata
UrlImageViewHelper
github.com/koush/UrlImageViewHelper


    UrlImageViewHelper.setUrlDrawable
 (imageView, "http://example.com/image.
                  png");
Injeção de
    dependência.
(Dependency Injection)
DI Frameworks MVC
No Android...
Roboguice
Exemplo do Roboguice
@ContentView(R.layout.main)
public class AstroboyMasterConsole extends RoboActivity {
  @InjectView(R.id.self_destruct) Button selfDestructButton;
  @InjectView(R.id.say_text)     EditText sayText;
  @InjectView(R.id.brush_teeth) Button brushTeethButton;
  @InjectView(tag="fightevil") Button fightEvilButton;
  @Inject AstroboyRemoteControl remoteControl;
  @InjectResource(R.anim.expletive_animation) Animation
expletiveAnimation;
  @Inject Vibrator vibrator;



    @Override
    public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);

    }
}
Android         Annotations
github.com/excilys/androidannotations
@EActivity(R.layout.my_activity)
public class MyActivity extends Activity {

    @ViewById EditText myEditText;

    @ViewById(R.id.myTextView) TextView textView;

    @StringRes(R.string.hello) String helloFormat;

    @ColorRes int androidColor;

    @BooleanRes boolean someBoolean;

    @SystemService NotificationManager notificationManager;

    @Click void myButtonClicked() {
      String name = myEditText.getText().toString();
      setProgressBarIndeterminateVisibility(true);
      someBackgroundWork(name, 5);
    }
}
Muito Obrigado!

Mais conteúdo relacionado

Mais procurados

AppInventor - Conhecendo o ambiente e seus principais componentes
AppInventor - Conhecendo o ambiente e seus principais componentesAppInventor - Conhecendo o ambiente e seus principais componentes
AppInventor - Conhecendo o ambiente e seus principais componentesSérgio Souza Costa
 
TDC2018SP | Trilha Realidade Virtual - Realidade Virtual do zero ao produto f...
TDC2018SP | Trilha Realidade Virtual - Realidade Virtual do zero ao produto f...TDC2018SP | Trilha Realidade Virtual - Realidade Virtual do zero ao produto f...
TDC2018SP | Trilha Realidade Virtual - Realidade Virtual do zero ao produto f...tdc-globalcode
 
Quer fazer jogos? Conheça as tecnologias utilizadas pelo Izyplay Game Studio
Quer fazer jogos? Conheça as tecnologias utilizadas pelo Izyplay Game StudioQuer fazer jogos? Conheça as tecnologias utilizadas pelo Izyplay Game Studio
Quer fazer jogos? Conheça as tecnologias utilizadas pelo Izyplay Game StudioLuiz Nörnberg
 
Talk testes em flutter
Talk testes em flutterTalk testes em flutter
Talk testes em flutterJhonatas Matos
 
Android Wear: Estendendo sua app para relógios inteligentes
Android Wear: Estendendo sua app para relógios inteligentesAndroid Wear: Estendendo sua app para relógios inteligentes
Android Wear: Estendendo sua app para relógios inteligentesRamon Ribeiro Rabello
 
Slides - minicurso app inventor
Slides - minicurso app inventorSlides - minicurso app inventor
Slides - minicurso app inventorMichel de Souza
 
Livelo - Arquitetura com Atomic Design
Livelo - Arquitetura com Atomic DesignLivelo - Arquitetura com Atomic Design
Livelo - Arquitetura com Atomic DesignWillian Ribeiro Angelo
 
HTML Robusto e Elegante com Template Engines
HTML Robusto e Elegante com Template EnginesHTML Robusto e Elegante com Template Engines
HTML Robusto e Elegante com Template EnginesDev PP
 
Desenvolvimento de Aplicativos para a Plataforma Android
Desenvolvimento de Aplicativos para a Plataforma AndroidDesenvolvimento de Aplicativos para a Plataforma Android
Desenvolvimento de Aplicativos para a Plataforma AndroidJosé Alexandre Macedo
 
Da introdução à prática no desenvolvimento Android
Da introdução à prática no desenvolvimento AndroidDa introdução à prática no desenvolvimento Android
Da introdução à prática no desenvolvimento AndroidRodolfo Faquin Della Justina
 

Mais procurados (17)

7 Masters sobre Android
7 Masters sobre Android7 Masters sobre Android
7 Masters sobre Android
 
Android - Notas de aula
Android - Notas de aulaAndroid - Notas de aula
Android - Notas de aula
 
AppInventor - Conhecendo o ambiente e seus principais componentes
AppInventor - Conhecendo o ambiente e seus principais componentesAppInventor - Conhecendo o ambiente e seus principais componentes
AppInventor - Conhecendo o ambiente e seus principais componentes
 
TDC2018SP | Trilha Realidade Virtual - Realidade Virtual do zero ao produto f...
TDC2018SP | Trilha Realidade Virtual - Realidade Virtual do zero ao produto f...TDC2018SP | Trilha Realidade Virtual - Realidade Virtual do zero ao produto f...
TDC2018SP | Trilha Realidade Virtual - Realidade Virtual do zero ao produto f...
 
Pug: HTML robusto e elegante
Pug: HTML robusto e elegantePug: HTML robusto e elegante
Pug: HTML robusto e elegante
 
Android Wear Androidos 2015
Android Wear Androidos 2015Android Wear Androidos 2015
Android Wear Androidos 2015
 
App Inventor
App InventorApp Inventor
App Inventor
 
Lidando com Erros - Android
Lidando com Erros - AndroidLidando com Erros - Android
Lidando com Erros - Android
 
Quer fazer jogos? Conheça as tecnologias utilizadas pelo Izyplay Game Studio
Quer fazer jogos? Conheça as tecnologias utilizadas pelo Izyplay Game StudioQuer fazer jogos? Conheça as tecnologias utilizadas pelo Izyplay Game Studio
Quer fazer jogos? Conheça as tecnologias utilizadas pelo Izyplay Game Studio
 
Talk testes em flutter
Talk testes em flutterTalk testes em flutter
Talk testes em flutter
 
Android Wear: Estendendo sua app para relógios inteligentes
Android Wear: Estendendo sua app para relógios inteligentesAndroid Wear: Estendendo sua app para relógios inteligentes
Android Wear: Estendendo sua app para relógios inteligentes
 
Slides - minicurso app inventor
Slides - minicurso app inventorSlides - minicurso app inventor
Slides - minicurso app inventor
 
Aula maps 23_2
Aula maps 23_2Aula maps 23_2
Aula maps 23_2
 
Livelo - Arquitetura com Atomic Design
Livelo - Arquitetura com Atomic DesignLivelo - Arquitetura com Atomic Design
Livelo - Arquitetura com Atomic Design
 
HTML Robusto e Elegante com Template Engines
HTML Robusto e Elegante com Template EnginesHTML Robusto e Elegante com Template Engines
HTML Robusto e Elegante com Template Engines
 
Desenvolvimento de Aplicativos para a Plataforma Android
Desenvolvimento de Aplicativos para a Plataforma AndroidDesenvolvimento de Aplicativos para a Plataforma Android
Desenvolvimento de Aplicativos para a Plataforma Android
 
Da introdução à prática no desenvolvimento Android
Da introdução à prática no desenvolvimento AndroidDa introdução à prática no desenvolvimento Android
Da introdução à prática no desenvolvimento Android
 

Semelhante a Mobileconf

Aprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma práticaAprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma práticaJosué Rockefeller
 
Aprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma práticaAprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma práticaJosué Rockefeller
 
Desenvolvimento de Aplicações para Dispositivos Móveis - Android Studio - Par...
Desenvolvimento de Aplicações para Dispositivos Móveis - Android Studio - Par...Desenvolvimento de Aplicações para Dispositivos Móveis - Android Studio - Par...
Desenvolvimento de Aplicações para Dispositivos Móveis - Android Studio - Par...Elmano Cavalcanti
 
Como criar interfaces gráficas com android
Como criar interfaces gráficas com androidComo criar interfaces gráficas com android
Como criar interfaces gráficas com androidRicardo Ogliari
 
Introdução ao Android
Introdução ao AndroidIntrodução ao Android
Introdução ao AndroidJugVale
 
Indrodução ao android 1º Encontro JUG VALE 2012
Indrodução ao android 1º Encontro JUG VALE 2012Indrodução ao android 1º Encontro JUG VALE 2012
Indrodução ao android 1º Encontro JUG VALE 2012Pedro Henrique
 
Memorias das trincheiras
Memorias das trincheirasMemorias das trincheiras
Memorias das trincheirasElton Minetto
 
Palestra Iniciando o desenvolvimento de aplicativos com o Club do Android
Palestra Iniciando o desenvolvimento de aplicativos com o Club do AndroidPalestra Iniciando o desenvolvimento de aplicativos com o Club do Android
Palestra Iniciando o desenvolvimento de aplicativos com o Club do AndroidMessias Batista
 
Android Wear - Workshop por @cesarnogcps
Android Wear - Workshop por @cesarnogcpsAndroid Wear - Workshop por @cesarnogcps
Android Wear - Workshop por @cesarnogcpsCesar Augusto Nogueira
 
Usando React Native & Multi Módulos para Escalar App Creditas
Usando React Native & Multi Módulos para Escalar App CreditasUsando React Native & Multi Módulos para Escalar App Creditas
Usando React Native & Multi Módulos para Escalar App CreditasJuliana Chahoud
 
Introdução ao ReactNative
Introdução ao ReactNativeIntrodução ao ReactNative
Introdução ao ReactNativeDiego Teles
 
2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao androidMessias Batista
 
O novo desenvolvedor android conceitos básicos e a comunidade em joão pessoa
O novo desenvolvedor android conceitos básicos e a comunidade em joão pessoaO novo desenvolvedor android conceitos básicos e a comunidade em joão pessoa
O novo desenvolvedor android conceitos básicos e a comunidade em joão pessoaMessias Batista
 
Introdução ao desenvolvimento de apps para Android - Dia 2/2
Introdução ao desenvolvimento de apps para Android - Dia 2/2Introdução ao desenvolvimento de apps para Android - Dia 2/2
Introdução ao desenvolvimento de apps para Android - Dia 2/2Matheus Calegaro
 
Material Design - Melhorando a experiência de seu App
Material Design - Melhorando a experiência de seu AppMaterial Design - Melhorando a experiência de seu App
Material Design - Melhorando a experiência de seu Appalissin
 
Bootstrap desenvolvendo e customizando interfaces para web, introduzindo aos ...
Bootstrap desenvolvendo e customizando interfaces para web, introduzindo aos ...Bootstrap desenvolvendo e customizando interfaces para web, introduzindo aos ...
Bootstrap desenvolvendo e customizando interfaces para web, introduzindo aos ...Cristofer Sousa
 
Primeira aula desenvolvimento para Android
Primeira aula desenvolvimento para AndroidPrimeira aula desenvolvimento para Android
Primeira aula desenvolvimento para AndroidHelton Ritter
 

Semelhante a Mobileconf (20)

Aprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma práticaAprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma prática
 
Aprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma práticaAprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma prática
 
Desenvolvimento de Aplicações para Dispositivos Móveis - Android Studio - Par...
Desenvolvimento de Aplicações para Dispositivos Móveis - Android Studio - Par...Desenvolvimento de Aplicações para Dispositivos Móveis - Android Studio - Par...
Desenvolvimento de Aplicações para Dispositivos Móveis - Android Studio - Par...
 
Ionic
IonicIonic
Ionic
 
Como criar interfaces gráficas com android
Como criar interfaces gráficas com androidComo criar interfaces gráficas com android
Como criar interfaces gráficas com android
 
Introdução ao Android
Introdução ao AndroidIntrodução ao Android
Introdução ao Android
 
Indrodução ao android 1º Encontro JUG VALE 2012
Indrodução ao android 1º Encontro JUG VALE 2012Indrodução ao android 1º Encontro JUG VALE 2012
Indrodução ao android 1º Encontro JUG VALE 2012
 
Memorias das trincheiras
Memorias das trincheirasMemorias das trincheiras
Memorias das trincheiras
 
Palestra Iniciando o desenvolvimento de aplicativos com o Club do Android
Palestra Iniciando o desenvolvimento de aplicativos com o Club do AndroidPalestra Iniciando o desenvolvimento de aplicativos com o Club do Android
Palestra Iniciando o desenvolvimento de aplicativos com o Club do Android
 
Android Wear - Workshop por @cesarnogcps
Android Wear - Workshop por @cesarnogcpsAndroid Wear - Workshop por @cesarnogcps
Android Wear - Workshop por @cesarnogcps
 
Usando React Native & Multi Módulos para Escalar App Creditas
Usando React Native & Multi Módulos para Escalar App CreditasUsando React Native & Multi Módulos para Escalar App Creditas
Usando React Native & Multi Módulos para Escalar App Creditas
 
Introdução ao ReactNative
Introdução ao ReactNativeIntrodução ao ReactNative
Introdução ao ReactNative
 
2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android
 
O novo desenvolvedor android conceitos básicos e a comunidade em joão pessoa
O novo desenvolvedor android conceitos básicos e a comunidade em joão pessoaO novo desenvolvedor android conceitos básicos e a comunidade em joão pessoa
O novo desenvolvedor android conceitos básicos e a comunidade em joão pessoa
 
Introdução ao desenvolvimento de apps para Android - Dia 2/2
Introdução ao desenvolvimento de apps para Android - Dia 2/2Introdução ao desenvolvimento de apps para Android - Dia 2/2
Introdução ao desenvolvimento de apps para Android - Dia 2/2
 
Material Design - Melhorando a experiência de seu App
Material Design - Melhorando a experiência de seu AppMaterial Design - Melhorando a experiência de seu App
Material Design - Melhorando a experiência de seu App
 
Bootstrap desenvolvendo e customizando interfaces para web, introduzindo aos ...
Bootstrap desenvolvendo e customizando interfaces para web, introduzindo aos ...Bootstrap desenvolvendo e customizando interfaces para web, introduzindo aos ...
Bootstrap desenvolvendo e customizando interfaces para web, introduzindo aos ...
 
Primeira aula desenvolvimento para Android
Primeira aula desenvolvimento para AndroidPrimeira aula desenvolvimento para Android
Primeira aula desenvolvimento para Android
 
Workshop frontend
Workshop   frontendWorkshop   frontend
Workshop frontend
 
Curso Básico Android - Aula 01
Curso Básico Android - Aula 01Curso Básico Android - Aula 01
Curso Básico Android - Aula 01
 

Mobileconf