Criando Apps Sociais em Android

8,729 views

Published on

Apresentado durante o #tasafoemacao #mobile no Pólo de Ciência e Tecnologia Guamá, no dia 27 de Março.

  • Be the first to comment

Criando Apps Sociais em Android

  1. 1. Criando Apps Sociais em Android @ramonrabello @androidnaredequinta-feira, 28 de março de 13
  2. 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. 3. O framework Android Bibliotecas que fazem parte do Kernel Linuxquinta-feira, 28 de março de 13
  4. 4. O framework Android Implementação em C/C++ das bibliotecas essenciais da plataforma e para a máquina virtual Dalvikquinta-feira, 28 de março de 13
  5. 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. 6. O framework Android Aplicativos desenvolvidos em Androidquinta-feira, 28 de março de 13
  7. 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 maiorquinta-feira, 28 de março de 13
  8. 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 compartilhamentoquinta-feira, 28 de março de 13
  9. 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ãoquinta-feira, 28 de março de 13
  10. 10. Integrando sua app com o Facebook: Aprendendo como integrar a sua app social com o Facebookquinta-feira, 28 de março de 13
  11. 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. 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. 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. 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. 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. 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. 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. 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 base64quinta-feira, 28 de março de 13
  19. 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. 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. 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. 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.xmlquinta-feira, 28 de março de 13
  23. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 35. Quer saber mais como criar apps sociais? http://goo.gl/srT0xquinta-feira, 28 de março de 13
  36. 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

×