36
Criando Apps Sociais em Android @androidnarede @ramonrabello quinta-feira, 28 de março de 13

Criando Apps Sociais em Android

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: Criando Apps Sociais em Android

Criando Apps Sociais

em Android

@androidnarede@ramonrabello

quinta-feira, 28 de março de 13

Page 2: Criando Apps Sociais em Android

Mas antes, “um pouco” de Android...

É uma padrão móvel aberto.

Utiliza kernel linux.

desenvolvimento em Java 5+.

recursos e telas criados em XML.

promove boaspráticas e

padrões de projeto.

fortemente documentado.

IDE e SDKcompletos.

Otimizado para a máquina virtual

Dalvik.

quinta-feira, 28 de março de 13

Page 3: Criando Apps Sociais em Android

O framework Android

Bibliotecas que fazem parte do Kernel Linux

quinta-feira, 28 de março de 13

Page 4: Criando Apps Sociais em Android

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

Page 5: Criando Apps Sociais em Android

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

Page 6: Criando Apps Sociais em Android

O framework Android

Aplicativos desenvolvidos em Android

quinta-feira, 28 de março de 13

Page 7: Criando Apps Sociais em Android

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

Por que socializar sua app?

quinta-feira, 28 de março de 13

Page 8: Criando Apps Sociais em Android

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

O que preciso para socializar uma app?

quinta-feira, 28 de março de 13

Page 9: Criando Apps Sociais em Android

É 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

O padrão Open Authentication (OAuth)

quinta-feira, 28 de março de 13

Page 10: Criando Apps Sociais em Android

Integrando sua app com o Facebook:

Aprendendo como integrar a sua app social com o

Facebook

quinta-feira, 28 de março de 13

Page 11: Criando Apps Sociais em Android

Acesse https://developers.facebook.com/apps e registre uma nova app.

Registrando uma app no Facebook

quinta-feira, 28 de março de 13

Page 12: Criando Apps Sociais em Android

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

futuramente na sua app.

Registrando uma app no Facebook

quinta-feira, 28 de março de 13

Page 14: Criando Apps Sociais em 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/.

Configurando o Facebook SDK para Android

quinta-feira, 28 de março de 13

Page 15: Criando Apps Sociais em Android

Agora, basta importar o facebook_sdk no Eclipse, indo em File > Import…

General > Existing Projects into Workspace e clique em Next.

Importando o Facebook SDK no Eclipse

quinta-feira, 28 de março de 13

Page 16: Criando Apps Sociais em Android

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.

Importando o Facebook SDK no Eclipse

quinta-feira, 28 de março de 13

Page 17: Criando Apps Sociais 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.

Criando um projeto novo em Android

quinta-feira, 28 de março de 13

Page 18: Criando Apps Sociais em Android

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

login.

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

Para gerar o Key Hash, utilize esse comando no console:

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore

| openssl sha1 -binary | openssl base64

Registrando o pacote da Activity no Facebook

quinta-feira, 28 de março de 13

Page 19: Criando Apps Sociais em Android

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.

Vinculando o Facebook SDK no projeto

quinta-feira, 28 de março de 13

Page 20: Criando Apps Sociais em Android

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>

Configurando a App ID no seu projeto

quinta-feira, 28 de março de 13

Page 21: Criando Apps Sociais em Android

Em seguida, abra o arquivo AndroidManifest.xml e adicione a permissão

android.permission.INTERNET, para que sua app possa

acessar a internet.

Configurando a App ID no seu projeto

quinta-feira, 28 de março de 13

Page 22: Criando Apps Sociais em Android

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

Configurando a App ID no seu projeto

quinta-feira, 28 de março de 13

Page 23: Criando Apps Sociais em Android

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">

Configurando a App ID no seu projeto

quinta-feira, 28 de março de 13

Page 24: Criando Apps Sociais em Android

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.

Comunicando com a API do Facebook

public class FacebookServico {

private Session sessao;

}

quinta-feira, 28 de março de 13

Page 25: Criando Apps Sociais em Android

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; }}

Comunicando com a API do Facebook

quinta-feira, 28 de março de 13

Page 26: Criando Apps Sociais em Android

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); }}

Comunicando com a API do Facebook

quinta-feira, 28 de março de 13

Page 27: Criando Apps Sociais em Android

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; }}

Comunicando com a API do Facebook

quinta-feira, 28 de março de 13

Page 28: Criando Apps Sociais em Android

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"); } }}

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)

quinta-feira, 28 de março de 13

Page 29: Criando Apps Sociais em Android

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()); } } if (response.getError() != null) { // Handle errors, will do so later. } } }); request.executeAsync();}

Comunicando com a API do Facebook

A classe Request, possui métodos estáticos para enviar requisições para o Facebook 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

Page 30: Criando Apps Sociais em Android

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

Page 31: Criando Apps Sociais em Android

Para publicar no seu mural, devemos executar esse

seguinte código...

// package & imports

public class MainActivity extends FacebookActivity {

private void publishFeedDialog() { 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."); 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");

WebDialog feedDialog = ( new WebDialog.FeedDialogBuilder(getActivity(), Session.getActiveSession(), params)) .setOnCompleteListener(new OnCompleteListener() { @Override 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(); } } } }) .build(); feedDialog.show(); } }}

WebDialog é uma classe que representa uma tela de diálogo no Facebook (ex: postar no mural)

Assim que a ação for finalizada, o método

onComplete() é chamado.

Publicando no seu mural do Facebook

quinta-feira, 28 de março de 13

Page 32: Criando Apps Sociais em Android

Se for a primeira vez que estiver acessando o Facebook,

será necessário logar.

Publicando no seu mural do Facebook

quinta-feira, 28 de março de 13

Page 33: Criando Apps Sociais em Android

Depois disso, você terá que instalar a aplicação que

registrou previamente no Developer Dashboard no

Facebook.

Publicando no seu mural do Facebook

quinta-feira, 28 de março de 13

Page 34: Criando Apps Sociais em Android

Depois, basta você preencher o que deseja publicar no seu mural e clicar

em Compartilhar (Share)

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

Facebook!

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

publicada com sucesso.

Publicando no seu mural do Facebook

quinta-feira, 28 de março de 13

Page 35: Criando Apps Sociais em Android

Quer saber mais como criar apps sociais?

http://goo.gl/srT0x

quinta-feira, 28 de março de 13