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