SlideShare uma empresa Scribd logo
1 de 36
Baixar para ler offline
Criando Apps
                        Sociais
                      em Android
                                  @ramonrabello
                                  @androidnarede

quinta-feira, 28 de março de 13
Mas antes, “um pouco” de Android...

                                               É uma padrão      desenvolvimento
                                               móvel aberto.       em Java 5+.
                                                    Utiliza            IDE e SDK
                                                 kernel linux.        completos.

                                                   recursos e telas      fortemente
                                                   criados em XML.      documentado.

                                                                        promove boas
                                                 Otimizado para a         práticas e
                                                 máquina virtual      padrões de projeto.
                                                      Dalvik.

quinta-feira, 28 de março de 13
O framework Android




                                                        Bibliotecas que fazem
                                                        parte do Kernel Linux
quinta-feira, 28 de março de 13
O framework Android




                                                        Implementação em C/C++ das
                                                           bibliotecas essenciais da
                                                         plataforma e para a máquina
                                                                  virtual Dalvik



quinta-feira, 28 de março de 13
O framework Android



                                                        Serviços que a plataforma disponibiliza,
                                                        por meio de gerenciadores para não ser
                                                             necessário “reinventar a roda”




quinta-feira, 28 de março de 13
O framework Android
                                                        Aplicativos desenvolvidos
                                                                em Android




quinta-feira, 28 de março de 13
Por que socializar sua app?



                                                        Quase todo mundo hoje em dia tem uma
                                                        rede social (Twitter, Facebook, Google+)


                                                        As redes sociais são uma das melhores
                                                         formas de compartilhar informações


                                                          Se sua app tiver integrada com rede
                                                           social, o alcance será muito maior


quinta-feira, 28 de março de 13
O que preciso para socializar uma app?


                                                          Sua app precisa ser integrada com
                                                              alguma API de rede social

                                                        Utilizar as Intents Implícitas para que o
                                                        usuário possa usufruir dos serviços de
                                                                    compartilhamento

                                                       Dedicar uma área da sua app (ex: item da
                                                         Action Bar) para compartilhamento

quinta-feira, 28 de março de 13
O padrão Open Authentication (OAuth)


                                                                É um protocolo aberto

                                                        Permite autorização segura de forma
                                                       simples e padronizada para aplicações
                                                              web, móveis e desktop

                                                       Utilizado pelas principais redes sociais:
                                                            Twitter, Facebook, Google+, etc

                                                      autenticação facilitada: credenciais de acesso
                                                        são informadas uma única vez por sessão
quinta-feira, 28 de março de 13
Integrando sua app
                     com o Facebook:

           Aprendendo como integrar
            a sua app social com o
                   Facebook

quinta-feira, 28 de março de 13
Registrando uma app no Facebook
                                                      Acesse https://developers.facebook.com/apps
                                                                e registre uma nova app.




quinta-feira, 28 de março de 13
Registrando uma app no Facebook




                                                             Preencha as informações para a
                                                             sua app. Depois, Anote o App ID
                                                              gerado, pois você irá utilizá-lo
                                                                futuramente na sua app.




quinta-feira, 28 de março de 13
Configurando o Facebook SDK para Android




                                                              Baixar o e descompactar o
                                                                SDK do Facebook para
                                                                 Android em https://
                                                              developers.facebook.com/
                                                                 android/downloads/



quinta-feira, 28 de março de 13
Configurando o Facebook SDK para Android


                                                     Para que a integração funcione no emulador, será
                                                     necessário ter instalado o Facebook para Android.
                                                       Ela já vem no SDK do Facebook, na pasta bin/.


                                                       Caso esteja executando a app direto no dispositivo,
                                                     basta fazer download da app do Facebook para Android
                                                        em https://play.google.com/store/apps/details?
                                                                    id=com.facebook.katana.


                                                      Baixar o e descompactar o SDK do Facebook
                                                                para Android em https://
                                                          developers.facebook.com/android/.

quinta-feira, 28 de março de 13
Importando o Facebook SDK no Eclipse




                                                                   Agora, basta importar o
                                                                  facebook_sdk no Eclipse,
                                                                   indo em File > Import…
                                                                 General > Existing Projects into
                                                                 Workspace e clique em Next.



quinta-feira, 28 de março de 13
Importando o Facebook SDK no Eclipse

                                                                        Deixe Select root directory
                                                                     selecionado, clique em Browse...
                                                                     e navegue até a pasta raiz onde
                                                                    você descompactou o Facebook
                                                                                  SDK.

                                                                     Você deve visualizar um novo
                                                                     projeto na lista, com o nome
                                                                            FacebookSDK.

                                                                    Clique em Finish para concluir a
                                                                    importação do Facebook SDK
                                                                          dentro do Eclipse.

quinta-feira, 28 de março de 13
Criando um projeto novo em Android




                                                              Crie um novo projeto Android, em
                                                               File > New > Project… > Android
                                                                       Application Project.

                                                                Configure o seu projeto com as
                                                                informações necessárias e, para
                                                                    concluir, clique em Finish.



quinta-feira, 28 de março de 13
Registrando o pacote da Activity no Facebook

                                                         Volte para o App Dashboard na página do
                                                                   Facebook Developers.


                                                      Adicione o pacote e o nome (ambos totalmente
                                                      qualificado) de sua Activity e habilite Facebook
                                                                           login.


                                                              Para gerar o Key Hash, utilize esse
                                                                    comando no console:
                                                               keytool -exportcert -alias androiddebugkey
                                                                   -keystore ~/.android/debug.keystore
                                                                 | openssl sha1 -binary | openssl base64


quinta-feira, 28 de março de 13
Vinculando o Facebook SDK no projeto


                                                                   No Eclipse, selecione o
                                                                  projeto > File > Properties.


                                                                 Na tela de propriedades, do lado
                                                                  esquerdo, selecione Android.


                                                                   Depois, na seção Library, na
                                                                  parte inferior direita, clique em
                                                                 Add… e selecione FacebookSDK.

quinta-feira, 28 de março de 13
Configurando a App ID no seu projeto

                                                                    Para configurar a App ID, abra o
                                                                   arquivo strings.xml na pasta res/
                                                                                values.

                                                                   Adicione a string app_id, com o
                                                                   App ID obtido durante o registro
                                                                      de sua app no Facebook.

                                                                        Se você abrir o arquivo
                                                                     strings.xml, como texto (aba
                                                                   strings.xml), você deve ver isso:

                                                                 <string name="app_id">497906953566757</
                                                                 string>

quinta-feira, 28 de março de 13
Configurando a App ID no seu projeto




                                                                    Em seguida, abra o arquivo
                                                                       AndroidManifest.xml e
                                                                       adicione a permissão
                                                                   android.permission.INTERNET,
                                                                      para que sua app possa
                                                                         acessar a internet.




quinta-feira, 28 de março de 13
Configurando a App ID no seu projeto




                                                                       Ainda no mesmo arquivo,
                                                                    adicione a tag <meta-data> com
                                                                                 o nome
                                                                    com.facebook.sdk.ApplicationId
                                                                     e o conteúdo com a app_id no
                                                                           arquivo strings.xml




quinta-feira, 28 de março de 13
Configurando a App ID no seu projeto


                                                        Para finalizar, adicione uma nova <activity>,
                                                         com o nome com.facebook.LoginActivity.




                                                            Pronto! Se você perceber, seu arquivo
                                                          manifesto terá essas três linhas adicionais:

                                                       <uses-permission android:name="android.permission.INTERNET"/>
                                                       <meta-data android:name="com.facebook.sdk.ApplicationId"
                                                       android:value="@string/app_id"/>
                                                       <activity android:name="com.facebook.LoginActivity">




quinta-feira, 28 de março de 13
Comunicando com a API do Facebook

                                                         Primeiro, vamos criar nossa classe de serviço
                                                          que irá comunicar com a API do Facebook.


                                                            Depois disso, declaramos um objeto
                                                          com.facebook.Session, que representará a
                                                                    sessão do usuário.


                                    public class FacebookServico {

                                        private Session sessao;

                                    }

quinta-feira, 28 de março de 13
Comunicando com a API do Facebook

                                                        Depois disso, declaramos uma referência para
                                                        Activity, para podermos repassar para o objeto
                                                                     Session, via construtor.


                                    public class FacebookServico {
                                    	
                                    	 private Activity activity;
                                    	 private Session sessao;

                                      public FacebookServico(Activity activity){
                                    	     this.activity = activity;
                                      }
                                    }

quinta-feira, 28 de março de 13
Comunicando com a API do Facebook

                                                         Agora, instanciamos o objeto Session,
                                                        passando a referência para o contexto da
                                                             aplicação, no caso, a Activity.


                     public class FacebookServico {
                     	
                     	 private Activity activity;
                     	 private Session sessao;

                       public FacebookServico(Activity activity){
                     	     this.activity = activity;
                           sessao = Session.openActiveSession(activity,true,callback);
                       }
                     }

quinta-feira, 28 de março de 13
Comunicando com a API do Facebook

                                                             Agora, utilizamos o objeto UiLifecycleHelper, um
                                                               ajudante que auxilia na gerência da sessão,
                                                                           similar ao ciclo de vida
                                            public class FacebookServico {
                                            	
                                            	 private Activity activity;
                                            	 private Session sessao;
                                              private UiLifecycleHelper uiHelper;

                                                // construtor omitido

                                                public UiLifecycleHelper getUiHelper(){
                                                     return uiHelper;
                                                }

                                                public Session getSessao(){
                                                     return sessao;
                                                }
                                            }
quinta-feira, 28 de março de 13
Comunicando com a API do Facebook

                                                                     Agora criamos um método auxiliar que será
                                                                     chamado, toda vez que houver mudança de
                                                                     status na sessão do usuário (ex: quando ele
                                                                               entrar e sair da sessão)

                                    public class FacebookServico {

                                        // variaveis e métodos
                                        private void monitorarStatusDaSessao(Session session,
                                                                             SessionState state,
                                                                             Exception exception) {
                                    	   	 if (state.isOpened()) {
                                    	   	 	 Log.d("FacebookService", "Logado no Facebook");
                                    	   	 } else if (state.isClosed()) {
                                    	   	 	 Log.d("FacebookService", "Saiu do Facebook");
                                    	   	 }
                                    	   }
                                    }

quinta-feira, 28 de março de 13
Comunicando com a API do Facebook

                                   public class FacebookServico {

                                       // variaveis e métodos
                                       private void monitorarStatusDaSessao(Session session, SessionState state, Exception exception) {	
                                          	 	 	
                                                Request request = Request.newMeRequest(session, new Request.GraphUserCallback() {
                                   	
                                               @Override
                                   	           public void onCompleted(GraphUser user, Response response) {
                                   	
                                   	           	   // se houver sessão ativa
                                   	               if (sessao == Session.getActiveSession()) {
                                   	                   if (user != null) {
                                   	                       imagemPerfil.setProfileId(user.getId());
                                   	                       textoSocialNome.setText(user.getName());
                                   	                       textoSocialUrl.setText(user.getLink());
                                   	                   }
                                   	               }                                                             A classe Request, possui
                                   	               if (response.getError() != null) {
                                   	                   // Handle errors, will do so later.                    métodos estáticos para enviar
                                   	
                                   	           }
                                                   }
                                                                                                               requisições para o Facebook
                                   	
                                   	
                                           });
                                           request.executeAsync();
                                                                                                                retornar as relações com o
                                   }
                                                                                                              perfil do usuário, como próprio
                                                                                                                perfil, amigos, lugares, etc.
quinta-feira, 28 de março de 13
Comunicando com a API do Facebook

                                                                   Chamamos o método criado anteriormente,
                                                                      dentro do método call(), da interface
                                                                            Session.StatusCallback



                                     Session.StatusCallback callbackSessao = new Session.StatusCallback(){
                                     	 	 @Override
                                     	 	 public void call(Session session,
                                                          SessionState state,
                                                          Exception exception) {
                                     	 	 	 monitorarStatusDaSessao(session, state, exception);
                                     	 	 }
                                     	 };




quinta-feira, 28 de março de 13
Publicando no seu mural do Facebook

    // package & imports
                                                                                                                                Para publicar no seu mural,
    public class MainActivity extends FacebookActivity {
                                                                                                                                 devemos executar esse
         private void publishFeedDialog() {
                                                                                                                                    seguinte código...
    	         Bundle params = new Bundle();
    	         params.putString("name", "Integração Facebook com Android na Rede");
    	         params.putString("caption", "Testando a integração de redes sociais em aplicativos Android.");
    	         params.putString("description", "Torne sua app social integrando facilmente com o Facebook SDK para Android.");


                                                                                                                                WebDialog é uma classe que
    	         params.putString("link", "https://developers.facebook.com/android");
    	         params.putString("picture", "https://raw.github.com/fbsamples/ios-3.x-howtos/master/Images/iossdk_logo.png");



                                                                                                                                  representa uma tela de
    	            WebDialog feedDialog = (
    	                new WebDialog.FeedDialogBuilder(getActivity(),
    	                    Session.getActiveSession(),


                                                                                                                                   diálogo no Facebook
    	                    params))
    	                .setOnCompleteListener(new OnCompleteListener() {
    	                    @Override


                                                                                                                                    (ex: postar no mural)
    	                    public void onComplete(Bundle values, FacebookException error) {
    	                        // When the story is posted, echo the success and the post Id.
    	
    	                                 final String postId = values.getString("post_id");
    	       	                             if (postId != null) {
    	       	                                 Toast.makeText(getApplicationContext(),
    	       	                                     "Sua mensagem foi publicada no seu mural.", Toast.LENGTH_SHORT).show();
    	       	                                 finish();
    	       	                             }
    	
    	
    	                })
                                  	
                                  }
                                      }	
                                                                                                                                   Assim que a ação for
    	
    	
    	       }
                     .build();
                 feedDialog.show();                                                                                                finalizada, o método
    }
        }
                                                                                                                                 onComplete() é chamado.

quinta-feira, 28 de março de 13
Publicando no seu mural do Facebook

                                                                    Se for a primeira vez que
                                                                 estiver acessando o Facebook,
                                                                      será necessário logar.




quinta-feira, 28 de março de 13
Publicando no seu mural do Facebook




                                                                 Depois disso, você terá que
                                                                   instalar a aplicação que
                                                                  registrou previamente no
                                                                   Developer Dashboard no
                                                                          Facebook.




quinta-feira, 28 de março de 13
Publicando no seu mural do Facebook


                                                                Depois, basta você preencher o que
                                                                deseja publicar no seu mural e clicar
                                                                      em Compartilhar (Share)

                                                                Você pode conferir na sua própria linha
                                                                de tempo, para ver que a mensagem foi
                                                                       publicada com sucesso.


                                                                 Dessa maneira, a sua app estará
                                                                  simplesmente integrada com o
                                                                          Facebook!



quinta-feira, 28 de março de 13
Quer saber mais como criar apps sociais?




                                                                        http://goo.gl/srT0x

quinta-feira, 28 de março de 13
Obrigado!


                      @tasafo                                              tasafo.org

                            @androidnarede

                            facebook.com/androidnarede

                            https://plus.google.com/u/0/b/
                            108790256666272382470/108790256666272382470/
quinta-feira, 28 de março de 13

Mais conteúdo relacionado

Destaque

php4android: desenvolva aplicações android em PHP
php4android: desenvolva aplicações android em PHPphp4android: desenvolva aplicações android em PHP
php4android: desenvolva aplicações android em PHPRamon Ribeiro Rabello
 
Desenvolvimento Mobile Web usando PHP e Software Livre
Desenvolvimento Mobile Web usando PHP e Software LivreDesenvolvimento Mobile Web usando PHP e Software Livre
Desenvolvimento Mobile Web usando PHP e Software LivreBruno Fernandes "PorKaria"
 
Mercado de trabalho de TI em números, fatos e exemplos
Mercado de trabalho de TI em números, fatos e exemplosMercado de trabalho de TI em números, fatos e exemplos
Mercado de trabalho de TI em números, fatos e exemplosBruno Fernandes "PorKaria"
 
Apostila de redes socias
Apostila de redes sociasApostila de redes socias
Apostila de redes sociasfernandomns
 
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Daniel Makiyama
 
Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)Willian Magalhães
 
Curso de PHP Básico ao Avançado
Curso de PHP Básico ao AvançadoCurso de PHP Básico ao Avançado
Curso de PHP Básico ao AvançadoLuiz Junior
 

Destaque (10)

php4android: desenvolva aplicações android em PHP
php4android: desenvolva aplicações android em PHPphp4android: desenvolva aplicações android em PHP
php4android: desenvolva aplicações android em PHP
 
Desenvolvimento Mobile Web usando PHP e Software Livre
Desenvolvimento Mobile Web usando PHP e Software LivreDesenvolvimento Mobile Web usando PHP e Software Livre
Desenvolvimento Mobile Web usando PHP e Software Livre
 
Mercado de trabalho de TI em números, fatos e exemplos
Mercado de trabalho de TI em números, fatos e exemplosMercado de trabalho de TI em números, fatos e exemplos
Mercado de trabalho de TI em números, fatos e exemplos
 
pfa
pfapfa
pfa
 
Desenvolvimento Mobile Web e PHP na FIPAR
Desenvolvimento Mobile Web e PHP na FIPARDesenvolvimento Mobile Web e PHP na FIPAR
Desenvolvimento Mobile Web e PHP na FIPAR
 
Desenvolvimento Mobile Web usando PHP
Desenvolvimento Mobile Web usando PHPDesenvolvimento Mobile Web usando PHP
Desenvolvimento Mobile Web usando PHP
 
Apostila de redes socias
Apostila de redes sociasApostila de redes socias
Apostila de redes socias
 
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
 
Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)
 
Curso de PHP Básico ao Avançado
Curso de PHP Básico ao AvançadoCurso de PHP Básico ao Avançado
Curso de PHP Básico ao Avançado
 

Semelhante a Criando Apps Sociais em Android

Appinventor 120429141244-phpapp02
Appinventor 120429141244-phpapp02Appinventor 120429141244-phpapp02
Appinventor 120429141244-phpapp02Cesar Luis Teixeira
 
Atividade 10
Atividade 10Atividade 10
Atividade 10Tony Hara
 
Plataformas de remixagem e distribuição direta de dados
Plataformas de remixagem e distribuição direta de dadosPlataformas de remixagem e distribuição direta de dados
Plataformas de remixagem e distribuição direta de dadosdouglasbritobd
 
Projeto 2 api_do_facebook
Projeto 2 api_do_facebookProjeto 2 api_do_facebook
Projeto 2 api_do_facebookGedeon Santos
 
André Projeto De Viabilidade
André Projeto De ViabilidadeAndré Projeto De Viabilidade
André Projeto De ViabilidadeAndreLuiz
 
Open Social + Perguntas
Open Social + PerguntasOpen Social + Perguntas
Open Social + Perguntasdmaiavieira
 
Solução web de scrum para o apoio a comunicação entre equipes remotas
Solução web de scrum para o apoio a  comunicação entre equipes remotasSolução web de scrum para o apoio a  comunicação entre equipes remotas
Solução web de scrum para o apoio a comunicação entre equipes remotasfelipe bastosweb
 
2015 1 ciencia_da_computacao_1_sistemas_aplicacoes_multimidia
2015 1 ciencia_da_computacao_1_sistemas_aplicacoes_multimidia2015 1 ciencia_da_computacao_1_sistemas_aplicacoes_multimidia
2015 1 ciencia_da_computacao_1_sistemas_aplicacoes_multimidiaFábio Costa
 

Semelhante a Criando Apps Sociais em Android (20)

Android
AndroidAndroid
Android
 
Appinventor 120429141244-phpapp02
Appinventor 120429141244-phpapp02Appinventor 120429141244-phpapp02
Appinventor 120429141244-phpapp02
 
App inventor
App inventorApp inventor
App inventor
 
Android - Notas de aula
Android - Notas de aulaAndroid - Notas de aula
Android - Notas de aula
 
Apostilaandroidfatecnormal
ApostilaandroidfatecnormalApostilaandroidfatecnormal
Apostilaandroidfatecnormal
 
Atividade 10
Atividade 10Atividade 10
Atividade 10
 
Plataformas de remixagem e distribuição direta de dados
Plataformas de remixagem e distribuição direta de dadosPlataformas de remixagem e distribuição direta de dados
Plataformas de remixagem e distribuição direta de dados
 
Projeto 2 api_do_facebook
Projeto 2 api_do_facebookProjeto 2 api_do_facebook
Projeto 2 api_do_facebook
 
André Projeto De Viabilidade
André Projeto De ViabilidadeAndré Projeto De Viabilidade
André Projeto De Viabilidade
 
Programe seu androide
Programe seu androidePrograme seu androide
Programe seu androide
 
Programe seu androide
Programe seu androidePrograme seu androide
Programe seu androide
 
Programe seu androide
Programe seu androidePrograme seu androide
Programe seu androide
 
Apresentação Mural TIC ihc
Apresentação Mural TIC ihcApresentação Mural TIC ihc
Apresentação Mural TIC ihc
 
Cronograma final 13maio
Cronograma final 13maioCronograma final 13maio
Cronograma final 13maio
 
Open Social + Perguntas
Open Social + PerguntasOpen Social + Perguntas
Open Social + Perguntas
 
Solução web de scrum para o apoio a comunicação entre equipes remotas
Solução web de scrum para o apoio a  comunicação entre equipes remotasSolução web de scrum para o apoio a  comunicação entre equipes remotas
Solução web de scrum para o apoio a comunicação entre equipes remotas
 
Apis Abertos
Apis AbertosApis Abertos
Apis Abertos
 
Tecnologia
TecnologiaTecnologia
Tecnologia
 
Ferramentas Web2.0
Ferramentas Web2.0Ferramentas Web2.0
Ferramentas Web2.0
 
2015 1 ciencia_da_computacao_1_sistemas_aplicacoes_multimidia
2015 1 ciencia_da_computacao_1_sistemas_aplicacoes_multimidia2015 1 ciencia_da_computacao_1_sistemas_aplicacoes_multimidia
2015 1 ciencia_da_computacao_1_sistemas_aplicacoes_multimidia
 

Mais de Ramon Ribeiro Rabello

Declarative UIs with Jetpack Compose
Declarative UIs with Jetpack ComposeDeclarative UIs with Jetpack Compose
Declarative UIs with Jetpack ComposeRamon Ribeiro Rabello
 
Android Jetpack + Coroutines: To infinity and beyond
Android Jetpack + Coroutines: To infinity and beyondAndroid Jetpack + Coroutines: To infinity and beyond
Android Jetpack + Coroutines: To infinity and beyondRamon Ribeiro Rabello
 
Create Modern Apps with Android Jetpack
Create Modern Apps with Android JetpackCreate Modern Apps with Android Jetpack
Create Modern Apps with Android JetpackRamon Ribeiro Rabello
 
Ninja Productivity in Android Studio
Ninja Productivity in Android StudioNinja Productivity in Android Studio
Ninja Productivity in Android StudioRamon Ribeiro Rabello
 
Produtividade ninja com android studio
Produtividade ninja com android studioProdutividade ninja com android studio
Produtividade ninja com android studioRamon Ribeiro Rabello
 
Automatize seus testes de UI com a Espresso!
Automatize seus testes de UI com a Espresso!Automatize seus testes de UI com a Espresso!
Automatize seus testes de UI com a Espresso!Ramon Ribeiro Rabello
 
Os caminhos da Agilidade em Empresa Pública
Os caminhos da Agilidade em Empresa PúblicaOs caminhos da Agilidade em Empresa Pública
Os caminhos da Agilidade em Empresa PúblicaRamon Ribeiro Rabello
 
Making your app see with Mobile Vision API
Making your app see with Mobile Vision APIMaking your app see with Mobile Vision API
Making your app see with Mobile Vision APIRamon Ribeiro Rabello
 
Inovar em tempos de crise? Yes, We Can!
Inovar em tempos de crise?  Yes, We Can!Inovar em tempos de crise?  Yes, We Can!
Inovar em tempos de crise? Yes, We Can!Ramon Ribeiro Rabello
 
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
 
O caminho de um desenvolvedor android
O caminho de um desenvolvedor androidO caminho de um desenvolvedor android
O caminho de um desenvolvedor androidRamon Ribeiro Rabello
 
Workshop Android em Ambientes de Integração
Workshop Android em Ambientes de IntegraçãoWorkshop Android em Ambientes de Integração
Workshop Android em Ambientes de IntegraçãoRamon Ribeiro Rabello
 
De idealista à empreendedor - como desenvolver aplicações em android que conq...
De idealista à empreendedor - como desenvolver aplicações em android que conq...De idealista à empreendedor - como desenvolver aplicações em android que conq...
De idealista à empreendedor - como desenvolver aplicações em android que conq...Ramon Ribeiro Rabello
 
Agora é Android, Tá Safo? - #tasafoemacaocastanhal
Agora é Android, Tá Safo? - #tasafoemacaocastanhalAgora é Android, Tá Safo? - #tasafoemacaocastanhal
Agora é Android, Tá Safo? - #tasafoemacaocastanhalRamon Ribeiro Rabello
 

Mais de Ramon Ribeiro Rabello (20)

Declarative UIs with Jetpack Compose
Declarative UIs with Jetpack ComposeDeclarative UIs with Jetpack Compose
Declarative UIs with Jetpack Compose
 
Android Jetpack + Coroutines: To infinity and beyond
Android Jetpack + Coroutines: To infinity and beyondAndroid Jetpack + Coroutines: To infinity and beyond
Android Jetpack + Coroutines: To infinity and beyond
 
Create Modern Apps with Android Jetpack
Create Modern Apps with Android JetpackCreate Modern Apps with Android Jetpack
Create Modern Apps with Android Jetpack
 
Cultura de testes em times mobile
Cultura de testes em times mobileCultura de testes em times mobile
Cultura de testes em times mobile
 
Ninja Productivity in Android Studio
Ninja Productivity in Android StudioNinja Productivity in Android Studio
Ninja Productivity in Android Studio
 
Produtividade ninja com android studio
Produtividade ninja com android studioProdutividade ninja com android studio
Produtividade ninja com android studio
 
Automatize seus testes de UI com a Espresso!
Automatize seus testes de UI com a Espresso!Automatize seus testes de UI com a Espresso!
Automatize seus testes de UI com a Espresso!
 
Os caminhos da Agilidade em Empresa Pública
Os caminhos da Agilidade em Empresa PúblicaOs caminhos da Agilidade em Empresa Pública
Os caminhos da Agilidade em Empresa Pública
 
Making your app see with Mobile Vision API
Making your app see with Mobile Vision APIMaking your app see with Mobile Vision API
Making your app see with Mobile Vision API
 
Inovar em tempos de crise? Yes, We Can!
Inovar em tempos de crise?  Yes, We Can!Inovar em tempos de crise?  Yes, We Can!
Inovar em tempos de crise? Yes, We Can!
 
O ecossistema android
O ecossistema androidO ecossistema android
O ecossistema android
 
Android Marshmallow na prática
Android Marshmallow na práticaAndroid Marshmallow na prática
Android Marshmallow na prática
 
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
 
Introdução ao Android Studio
Introdução ao Android StudioIntrodução ao Android Studio
Introdução ao Android Studio
 
O caminho de um desenvolvedor android
O caminho de um desenvolvedor androidO caminho de um desenvolvedor android
O caminho de um desenvolvedor android
 
Porque Aprender Android
Porque Aprender AndroidPorque Aprender Android
Porque Aprender Android
 
Workshop Android em Ambientes de Integração
Workshop Android em Ambientes de IntegraçãoWorkshop Android em Ambientes de Integração
Workshop Android em Ambientes de Integração
 
De idealista à empreendedor - como desenvolver aplicações em android que conq...
De idealista à empreendedor - como desenvolver aplicações em android que conq...De idealista à empreendedor - como desenvolver aplicações em android que conq...
De idealista à empreendedor - como desenvolver aplicações em android que conq...
 
Agora é Android, Tá Safo? - #tasafoemacaocastanhal
Agora é Android, Tá Safo? - #tasafoemacaocastanhalAgora é Android, Tá Safo? - #tasafoemacaocastanhal
Agora é Android, Tá Safo? - #tasafoemacaocastanhal
 
Boas Práticas em Android
Boas Práticas em AndroidBoas Práticas em Android
Boas Práticas em Android
 

Criando Apps Sociais em Android

  • 1. Criando Apps Sociais em Android @ramonrabello @androidnarede quinta-feira, 28 de março de 13
  • 2. Mas antes, “um pouco” de Android... É uma padrão desenvolvimento móvel aberto. em Java 5+. Utiliza IDE e SDK kernel linux. completos. recursos e telas fortemente criados em XML. documentado. promove boas Otimizado para a práticas e máquina virtual padrões de projeto. Dalvik. quinta-feira, 28 de março de 13
  • 3. O framework Android Bibliotecas que fazem parte do Kernel Linux quinta-feira, 28 de março de 13
  • 4. O framework Android Implementação em C/C++ das bibliotecas essenciais da plataforma e para a máquina virtual Dalvik quinta-feira, 28 de março de 13
  • 5. O framework Android Serviços que a plataforma disponibiliza, por meio de gerenciadores para não ser necessário “reinventar a roda” quinta-feira, 28 de março de 13
  • 6. O framework Android Aplicativos desenvolvidos em Android quinta-feira, 28 de março de 13
  • 7. Por que socializar sua app? Quase todo mundo hoje em dia tem uma rede social (Twitter, Facebook, Google+) As redes sociais são uma das melhores formas de compartilhar informações Se sua app tiver integrada com rede social, o alcance será muito maior quinta-feira, 28 de março de 13
  • 8. O que preciso para socializar uma app? Sua app precisa ser integrada com alguma API de rede social Utilizar as Intents Implícitas para que o usuário possa usufruir dos serviços de compartilhamento Dedicar uma área da sua app (ex: item da Action Bar) para compartilhamento quinta-feira, 28 de março de 13
  • 9. O padrão Open Authentication (OAuth) É um protocolo aberto Permite autorização segura de forma simples e padronizada para aplicações web, móveis e desktop Utilizado pelas principais redes sociais: Twitter, Facebook, Google+, etc autenticação facilitada: credenciais de acesso são informadas uma única vez por sessão quinta-feira, 28 de março de 13
  • 10. Integrando sua app com o Facebook: Aprendendo como integrar a sua app social com o Facebook quinta-feira, 28 de março de 13
  • 11. Registrando uma app no Facebook Acesse https://developers.facebook.com/apps e registre uma nova app. quinta-feira, 28 de março de 13
  • 12. Registrando uma app no Facebook Preencha as informações para a sua app. Depois, Anote o App ID gerado, pois você irá utilizá-lo futuramente na sua app. quinta-feira, 28 de março de 13
  • 13. Configurando o Facebook SDK para Android Baixar o e descompactar o SDK do Facebook para Android em https:// developers.facebook.com/ android/downloads/ quinta-feira, 28 de março de 13
  • 14. Configurando o Facebook SDK para Android Para que a integração funcione no emulador, será necessário ter instalado o Facebook para Android. Ela já vem no SDK do Facebook, na pasta bin/. Caso esteja executando a app direto no dispositivo, basta fazer download da app do Facebook para Android em https://play.google.com/store/apps/details? id=com.facebook.katana. Baixar o e descompactar o SDK do Facebook para Android em https:// developers.facebook.com/android/. quinta-feira, 28 de março de 13
  • 15. Importando o Facebook SDK no Eclipse Agora, basta importar o facebook_sdk no Eclipse, indo em File > Import… General > Existing Projects into Workspace e clique em Next. quinta-feira, 28 de março de 13
  • 16. Importando o Facebook SDK no Eclipse Deixe Select root directory selecionado, clique em Browse... e navegue até a pasta raiz onde você descompactou o Facebook SDK. Você deve visualizar um novo projeto na lista, com o nome FacebookSDK. Clique em Finish para concluir a importação do Facebook SDK dentro do Eclipse. quinta-feira, 28 de março de 13
  • 17. Criando um projeto novo em Android Crie um novo projeto Android, em File > New > Project… > Android Application Project. Configure o seu projeto com as informações necessárias e, para concluir, clique em Finish. quinta-feira, 28 de março de 13
  • 18. Registrando o pacote da Activity no Facebook Volte para o App Dashboard na página do Facebook Developers. Adicione o pacote e o nome (ambos totalmente qualificado) de sua Activity e habilite Facebook login. Para gerar o Key Hash, utilize esse comando no console: keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64 quinta-feira, 28 de março de 13
  • 19. Vinculando o Facebook SDK no projeto No Eclipse, selecione o projeto > File > Properties. Na tela de propriedades, do lado esquerdo, selecione Android. Depois, na seção Library, na parte inferior direita, clique em Add… e selecione FacebookSDK. quinta-feira, 28 de março de 13
  • 20. Configurando a App ID no seu projeto Para configurar a App ID, abra o arquivo strings.xml na pasta res/ values. Adicione a string app_id, com o App ID obtido durante o registro de sua app no Facebook. Se você abrir o arquivo strings.xml, como texto (aba strings.xml), você deve ver isso: <string name="app_id">497906953566757</ string> quinta-feira, 28 de março de 13
  • 21. Configurando a App ID no seu projeto Em seguida, abra o arquivo AndroidManifest.xml e adicione a permissão android.permission.INTERNET, para que sua app possa acessar a internet. quinta-feira, 28 de março de 13
  • 22. Configurando a App ID no seu projeto Ainda no mesmo arquivo, adicione a tag <meta-data> com o nome com.facebook.sdk.ApplicationId e o conteúdo com a app_id no arquivo strings.xml quinta-feira, 28 de março de 13
  • 23. Configurando a App ID no seu projeto Para finalizar, adicione uma nova <activity>, com o nome com.facebook.LoginActivity. Pronto! Se você perceber, seu arquivo manifesto terá essas três linhas adicionais: <uses-permission android:name="android.permission.INTERNET"/> <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/app_id"/> <activity android:name="com.facebook.LoginActivity"> quinta-feira, 28 de março de 13
  • 24. Comunicando com a API do Facebook Primeiro, vamos criar nossa classe de serviço que irá comunicar com a API do Facebook. Depois disso, declaramos um objeto com.facebook.Session, que representará a sessão do usuário. public class FacebookServico { private Session sessao; } quinta-feira, 28 de março de 13
  • 25. Comunicando com a API do Facebook Depois disso, declaramos uma referência para Activity, para podermos repassar para o objeto Session, via construtor. public class FacebookServico { private Activity activity; private Session sessao; public FacebookServico(Activity activity){ this.activity = activity; } } quinta-feira, 28 de março de 13
  • 26. Comunicando com a API do Facebook Agora, instanciamos o objeto Session, passando a referência para o contexto da aplicação, no caso, a Activity. public class FacebookServico { private Activity activity; private Session sessao; public FacebookServico(Activity activity){ this.activity = activity; sessao = Session.openActiveSession(activity,true,callback); } } quinta-feira, 28 de março de 13
  • 27. Comunicando com a API do Facebook Agora, utilizamos o objeto UiLifecycleHelper, um ajudante que auxilia na gerência da sessão, similar ao ciclo de vida public class FacebookServico { private Activity activity; private Session sessao; private UiLifecycleHelper uiHelper; // construtor omitido public UiLifecycleHelper getUiHelper(){ return uiHelper; } public Session getSessao(){ return sessao; } } quinta-feira, 28 de março de 13
  • 28. Comunicando com a API do Facebook Agora criamos um método auxiliar que será chamado, toda vez que houver mudança de status na sessão do usuário (ex: quando ele entrar e sair da sessão) public class FacebookServico { // variaveis e métodos private void monitorarStatusDaSessao(Session session, SessionState state, Exception exception) { if (state.isOpened()) { Log.d("FacebookService", "Logado no Facebook"); } else if (state.isClosed()) { Log.d("FacebookService", "Saiu do Facebook"); } } } quinta-feira, 28 de março de 13
  • 29. Comunicando com a API do Facebook public class FacebookServico { // variaveis e métodos private void monitorarStatusDaSessao(Session session, SessionState state, Exception exception) { Request request = Request.newMeRequest(session, new Request.GraphUserCallback() { @Override public void onCompleted(GraphUser user, Response response) { // se houver sessão ativa if (sessao == Session.getActiveSession()) { if (user != null) { imagemPerfil.setProfileId(user.getId()); textoSocialNome.setText(user.getName()); textoSocialUrl.setText(user.getLink()); } } A classe Request, possui if (response.getError() != null) { // Handle errors, will do so later. métodos estáticos para enviar } } requisições para o Facebook }); request.executeAsync(); retornar as relações com o } perfil do usuário, como próprio perfil, amigos, lugares, etc. quinta-feira, 28 de março de 13
  • 30. Comunicando com a API do Facebook Chamamos o método criado anteriormente, dentro do método call(), da interface Session.StatusCallback Session.StatusCallback callbackSessao = new Session.StatusCallback(){ @Override public void call(Session session, SessionState state, Exception exception) { monitorarStatusDaSessao(session, state, exception); } }; quinta-feira, 28 de março de 13
  • 31. Publicando no seu mural do Facebook // package & imports Para publicar no seu mural, public class MainActivity extends FacebookActivity { devemos executar esse private void publishFeedDialog() { seguinte código... Bundle params = new Bundle(); params.putString("name", "Integração Facebook com Android na Rede"); params.putString("caption", "Testando a integração de redes sociais em aplicativos Android."); params.putString("description", "Torne sua app social integrando facilmente com o Facebook SDK para Android."); WebDialog é uma classe que params.putString("link", "https://developers.facebook.com/android"); params.putString("picture", "https://raw.github.com/fbsamples/ios-3.x-howtos/master/Images/iossdk_logo.png"); representa uma tela de WebDialog feedDialog = ( new WebDialog.FeedDialogBuilder(getActivity(), Session.getActiveSession(), diálogo no Facebook params)) .setOnCompleteListener(new OnCompleteListener() { @Override (ex: postar no mural) public void onComplete(Bundle values, FacebookException error) { // When the story is posted, echo the success and the post Id. final String postId = values.getString("post_id"); if (postId != null) { Toast.makeText(getApplicationContext(), "Sua mensagem foi publicada no seu mural.", Toast.LENGTH_SHORT).show(); finish(); } }) } } Assim que a ação for } .build(); feedDialog.show(); finalizada, o método } } onComplete() é chamado. quinta-feira, 28 de março de 13
  • 32. Publicando no seu mural do Facebook Se for a primeira vez que estiver acessando o Facebook, será necessário logar. quinta-feira, 28 de março de 13
  • 33. Publicando no seu mural do Facebook Depois disso, você terá que instalar a aplicação que registrou previamente no Developer Dashboard no Facebook. quinta-feira, 28 de março de 13
  • 34. Publicando no seu mural do Facebook Depois, basta você preencher o que deseja publicar no seu mural e clicar em Compartilhar (Share) Você pode conferir na sua própria linha de tempo, para ver que a mensagem foi publicada com sucesso. Dessa maneira, a sua app estará simplesmente integrada com o Facebook! quinta-feira, 28 de março de 13
  • 35. Quer saber mais como criar apps sociais? http://goo.gl/srT0x quinta-feira, 28 de março de 13
  • 36. Obrigado! @tasafo tasafo.org @androidnarede facebook.com/androidnarede https://plus.google.com/u/0/b/ 108790256666272382470/108790256666272382470/ quinta-feira, 28 de março de 13