SlideShare una empresa de Scribd logo
1 de 74
Desenvolvendo
Aplicativos Sociais
     Jorge Moisés Assis
        Dito Internet
  jorge.moises@dito.com.br
         @JorgeMA
Quem sou eu?


Bacharel em Ciência da Computação

Desenvolvedor de aplicativos sociais na Dito
Internet
Dito Internet


Startup

Foco em mídias sociais

Ruby On Rails
Odrible


Bolão gratuito

Orkut, Facebook e Portal

+800.000 usuários
Dengue Ville


Objetivo: combater a dengue

Governo de Minas Gerais

+500.000 usuários em 1 mês!

Indicado ao Cyber Cannes 2010
Simuladão Vestibular


PUC Minas

Público-alvo: vestibulandos

No ar há 3 vestibulares

Média de 6.000 novos usuários por vestibular
A Origem


Aplicativos Desktop

Sistemas WEB

Redes Sociais

Sistemas Sociais (estamos aqui!)
Fato!
Tanto o Facebook quanto o Orkut cresceram muito
         depois que liberaram aplicativos
Apps Sociais


O que são?

  Aplicativos WEB

  Podem estar “dentro” de uma rede social
Porque social?




Promove interação entre os participantes
Como torno meu
  aplicativo “social”?


INFINITAS maneiras

  “Game Mechanics” dão muito certo
Game Mechanics

Quando estão juntas, formam um “loop” de
diversão

  Geram fidelidade

  Aumentam o engajamento

Podem ser incluídas em QUALQUER negócio
Pontos
Pontos
Parte essencial do “círculo”

Mapeie as ações que você quer que seu
usuário faça

Distribua pontos relativos a cada uma



E como os usuários gostam de comparar seus
pontos...
Ranking
Ranking
Maneira universal de mostrar aos usuários que um
jogo está acontecendo

A chave:

  mantê-los motivados pela competição

  não desmotivá-los pela dificuldade de alcançar
  usuários acima no ranking



E quando o ranking não é o suficiente?
Badges
Badges

Recompensas por atividades específicas

De preferência, devem ser esteticamente
bonitas


E como saber quando dar badges?
Desafios
Desafios
Motivam o usuário

Devem ser aninhados - proponha um novo quando
um for completado

Exiba-os em uma lista, deixe que o usuário
escolha o que lhe agrada



Com tantos pontos, badges e desafios, o que
falta?
Níveis
Níveis

Podem se tornar complexos

  Comece com níveis simples

  Use números ou letras para nomeá-los

  Aumente o nível de dificuldade para
  chegar ao próximo nível gradativamente
Mas... isso funciona?
Depois de desenvolver vários aplicativos sociais na Dito,
percebemos um padrão

Foi criada a Plataforma Social

   Pontos

   Ranking

   Níveis

   Badges

   Estatísticas Administrativas

   Conta Única
Mas... isso funciona?
Seth Priebatsch diz:

   Facebook e Twitter formam uma “camada social”
   sobre o mundo real

   Está sendo formada a “camada de jogos”



Seth Priebatsch gerencia SCVNGR, uma “mobile
startup”

Foi palestrante no TED - Ideas Worth Spreading
Então...


Porque não apenas criar um jogo?

Porque usar redes sociais?
Simples!



Estendem os recursos das redes sociais

Estão presentes nas grandes redes
MILHÕES de usuários!
 Seu aplicativo já nasce com um potencial gigante!
Ainda não está
convencido(a)?
Cases de sucesso
Buddy Poke
Buddy Poke

Orkut             Ning

Facebook          QuePasa

MySpace           Lokalisten

hi5               Friendster

Netlog            Hyves
Buddy Poke



Jogo mais popular do Orkut

Foi desbancado por...
Colheita Feliz
Colheita Feliz
Colheita Feliz


Lançado em junho de 2009

22.000.000+ usuários

Costumava derrubar os servidores...
Enquanto isso, no
FarmVille
FarmVille


Lançado em junho de 2009

62.000.000+ usuários ATIVOS

Desenvolvido pela Zynga
Zynga

BlackJack

Café World

Mafia Wars

Vampire Wars

Receita de 500+ milhões de dólares por ano
Mais estatísticas?
  http://www.appdata.com/
Alguns detalhes
      importantes...

Um aplicativo social NÃO precisa estar dentro
de uma rede social

Aplicativos sociais NÃO são apenas jogos!

Um aplicativo NÃO é social apenas por estar
dentro de uma rede
Antes de entrar na parte
        técnica...


       The Social Network
Apps sociais no Twitter

 Usam a Twitter API

   Postar na timeline

   Ler a timeline

   Follow/Unfollow


 Ex.: DengueVille
Prós/Contras

Vantagens

  A API é bastante simples

  Amplamente utilizado

Desvantagem

  O Twitter é limitado em relação a outras
  redes sociais
Apps sociais no Orkut
OpenSocial API

  Plataforma da Google

  Baseada em HTML e JavaScript

  Lançada em novembro de 2007

É possível criar aplicativos nas redes Orkut,
MySpace, Friendster, Linkedin, hi5, XING,
Plaxo, Ning, Oracle, Viadeo e SalesForce
Apps sociais no Orkut


Outubro de 2008

  600 aplicativos

Setembro de 2010

  +16.000 aplicativos
OpenSocial API
People & Friends

Activities

Persistence Data

3 tipos de usuário

   Owner

   Viewer

   Guest
OpenSocial API



2 tipos de visualização

  Canvas

  Profile
Como funciona?
Client-side!   AJAX!   Server-side!


 JavaScript!           Ruby on Rails!
      +!                    ou!
   HTML !                  Java!
     +!                     ou!
    CSS!                   PHP!
                            ou!
                           APIs!
E a segurança?

Todo aplicativo que se comunica com o Orkut
funciona como uma API

Suas requisições devem ser protegidas!

  gadgets.io.AuthorizationType.SIGNED;

  no server-side, valida-se a assinatura
Detalhe importante!


No Orkut, o cache pode ser um amigo ou um
inimigo

  ByPassCache (bpc=1)

  Se bem utilizado, é uma grande ajuda
Vantagens

Aproveitar o grafo social já criado pela
pessoa

Acesso fácil para a imensa base de usuários
do Orkut no Brasil

Não é necessário implementar os recursos já
existentes no Orkut (scraps, fotos, amizades,
etc)
Desvantagem


Não é nada fácil testar e achar erros no
código JavaScript (client side)
Fazendo uma requisição
function request() {!
var url = "http://odrible.com/confrontos";! !     !

// Dados para serem enviados por POST.!
var postData = {};postData["aposta_placar_casa"] = document.getElementById
("aposta_placar_casa").value;postData["partida_id"] = document.getElementById("partida_id").value;!

// Parâmetros que podem ser passados para a função.!
var params = {};!
params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.POST;params
[gadgets.io.RequestParameters.POST_DATA] = gadgets.io.encodeValues(postData);! !
// Opções Content Type: DOM, TEXT, JSON!
params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.DOM;!
gadgets.io.makeRequest(url, response, params);!
}!
XML de retorno

<?xml version="1.0" encoding="UTF-8" ?><odrible
stat="ok">!
<confronto id="12">! <infos>Brasileirão, 2ª rodada, no
Mineirão</infos>! <time_casa id="1">CRUZEIRO</
time_casa>! <time_visitante id="4">SÃO PAULO</
time_visitante></confronto>!
...!
</odrible>!
Tratando a resposta
function response(obj) {!
!      var itemList = obj.data.getElementsByTagName("confronto");!
 !     for(var i = 0; i < itemList.length; i++ ) {!
!      !      var nodeList = itemList.item(i).childNodes;!
!      !      for(var j = 0; j < nodeList.length; j++) {!
!      !      !      var node = nodeList.item(j);!
!      !      !      if(node.nodeName == "infos" && node.firstChild != null) {!
!      !      !      !       var infos = node.firstChild.nodeValue;!
!      !      !      }!
         ...!
    }!
    // Cria dinamicamente o HTML!
}!
Quero criar um app
 usando OpenSocial!

Crie uma conta no Orkut Sandbox

  Utilizada para testar aplicativos

Desenvolva o aplicativo

Submeta-o ao diretório de aplicativos do
Orkut
Apps sociais no Facebook

 Facebook Platform

   Conjunto de API’s e ferramentas

   Integra aplicações do Facebook ou sites
   externos

   Graph API

   Lançada em maio de 2007
Estatísticas da Facebook
         Platform
 Maio - 2010

    + de 1 milhão de desenvolvedores e
    empresas em + de 180 países

    + de 550 mil aplicativos ativos

    + de 70% dos usuários utilizam
    aplicativos mensalmente

    + de 250 mil websites integrados

    + de 100 milhões de usuários usam
    Facebook em outros websites
    mensalmente
Alternativas de
    desenvolvimento

IFrame

Facebook Connect

FBML (to be DIScontinued)
Vantagens

Base GIGANTE de usuários

  Brasileiros migram cada vez mais

Excelente documentação

É possível fazer quase tudo que o próprio
Facebook faz!
Quero criar um
aplicativo no Facebook!

Cadastre-se como desenvolvedor

Registre seu aplicativo

Desenvolva-o

Pronto! Agora é só submetê-lo ao diretório
de aplicativos do Facebook
O que é possível coletar
     no Facebook?

 Usuários      Apps

 Eventos       Notas

 Fotos         Grupos

 Vídeos        Status Messages
Como?

Graph API

  Tudo tem um ID - tudo MESMO

  Se um objeto possui username, pode ser
  buscado também por ele

  O retorno é sempre um JSON ou um
  binário
Exemplo!
http://graph.facebook.com/jorgemoisesassis




http://graph.facebook.com/jorgemoisesassis/
picture
Posso acessar o que eu
       quiser???
 Para alguns dados, precisamos de permissão
 extra

   Escrita (publish_stream, create_event, sms,
   offline_access, rsvp)

   Leitura (user_about_me, user_photos,
   email, read_stream, etc...)
Obtendo permissões

Registre sua aplicação (http://facebook.com/
developers)

  Application ID

  API Key

  Application Secret
Obtendo permissões
Obtendo permissões
Oauth 2.0

  Redireciona usuário para URL de
  autorização

  Após autorizado, redireciona para URL da
  aplicação, enviando o parâmetro “code”

  “code” pode ser trocado por um
  access_token, que é utilizado para acessar
  os dados do usuário
Vamos testar!

http://oauth.twoalex.com/
Dúvidas?
jorge.moises@dito.com.br
       @JorgeMA
Referências

http://dev.twitter.com/

http://code.google.com/apis/opensocial/

http://developers.facebook.com/

http://mashable.com/2010/04/07/funware-
game-mechanics/

http://www.ted.com/
Estamos contratando!
              vagas@dito.com.br

Más contenido relacionado

Similar a Desenvolvendo Aplicativos Sociais

Open Social + Perguntas
Open Social + PerguntasOpen Social + Perguntas
Open Social + Perguntasdmaiavieira
 
Monitoramento de redes sociais
Monitoramento de redes sociaisMonitoramento de redes sociais
Monitoramento de redes sociaisVinícius Pinto
 
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana ChahoudDesenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana ChahoudiMasters
 
Apresentação projeto 8
Apresentação projeto 8Apresentação projeto 8
Apresentação projeto 8Vitor Fonseca
 
Redes Sociais na Indústria - Wagner Aneas Moldes ABM
Redes Sociais na Indústria - Wagner Aneas Moldes ABMRedes Sociais na Indústria - Wagner Aneas Moldes ABM
Redes Sociais na Indústria - Wagner Aneas Moldes ABMWagner Aneas
 
Wagner Aneas Redes Sociais Moldes ABM mar2011
Wagner Aneas Redes Sociais Moldes ABM mar2011Wagner Aneas Redes Sociais Moldes ABM mar2011
Wagner Aneas Redes Sociais Moldes ABM mar2011Moldes ABM
 
Parse - Backend As A Service
Parse - Backend As A ServiceParse - Backend As A Service
Parse - Backend As A ServiceHenrique Morbin
 
Desenvolvimento de aplicações móveis, IOS, Android, Windows Phone 7
Desenvolvimento de aplicações móveis, IOS, Android, Windows Phone 7Desenvolvimento de aplicações móveis, IOS, Android, Windows Phone 7
Desenvolvimento de aplicações móveis, IOS, Android, Windows Phone 7Dirceu Belém
 
Desenvolvimento de Aplicativos para Facebook
Desenvolvimento de Aplicativos para FacebookDesenvolvimento de Aplicativos para Facebook
Desenvolvimento de Aplicativos para FacebookBruno Leite
 
Projeto 2 api_do_facebook
Projeto 2 api_do_facebookProjeto 2 api_do_facebook
Projeto 2 api_do_facebookGedeon Santos
 
Visão Geral De Desenvolvimento Web Sre 2012
Visão Geral De Desenvolvimento Web   Sre 2012Visão Geral De Desenvolvimento Web   Sre 2012
Visão Geral De Desenvolvimento Web Sre 2012Carlos Casalicchio
 
Utilizando a API do Live Messenger (MSN) com PHP
Utilizando a API do Live Messenger (MSN) com PHPUtilizando a API do Live Messenger (MSN) com PHP
Utilizando a API do Live Messenger (MSN) com PHPAlex Piaz
 
Percepções sobre mídias sociais e números do mercado brasileiro
Percepções sobre mídias sociais e números do mercado brasileiroPercepções sobre mídias sociais e números do mercado brasileiro
Percepções sobre mídias sociais e números do mercado brasileiroEdney Souza
 
Desvendando os APLICATIVOS SOCIAIS
Desvendando os APLICATIVOS SOCIAISDesvendando os APLICATIVOS SOCIAIS
Desvendando os APLICATIVOS SOCIAISCampanha Digital
 
8ºConnecting Knowledge Web ou App
8ºConnecting Knowledge Web ou App8ºConnecting Knowledge Web ou App
8ºConnecting Knowledge Web ou AppHeider Lopes
 

Similar a Desenvolvendo Aplicativos Sociais (20)

Open Social + Perguntas
Open Social + PerguntasOpen Social + Perguntas
Open Social + Perguntas
 
Monitoramento de redes sociais
Monitoramento de redes sociaisMonitoramento de redes sociais
Monitoramento de redes sociais
 
MOBILE USER XP
MOBILE USER XPMOBILE USER XP
MOBILE USER XP
 
Os1
Os1Os1
Os1
 
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana ChahoudDesenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
 
Apresentação projeto 8
Apresentação projeto 8Apresentação projeto 8
Apresentação projeto 8
 
Redes Sociais na Indústria - Wagner Aneas Moldes ABM
Redes Sociais na Indústria - Wagner Aneas Moldes ABMRedes Sociais na Indústria - Wagner Aneas Moldes ABM
Redes Sociais na Indústria - Wagner Aneas Moldes ABM
 
Wagner Aneas Redes Sociais Moldes ABM mar2011
Wagner Aneas Redes Sociais Moldes ABM mar2011Wagner Aneas Redes Sociais Moldes ABM mar2011
Wagner Aneas Redes Sociais Moldes ABM mar2011
 
Parse - Backend As A Service
Parse - Backend As A ServiceParse - Backend As A Service
Parse - Backend As A Service
 
Desenvolvimento de aplicações móveis, IOS, Android, Windows Phone 7
Desenvolvimento de aplicações móveis, IOS, Android, Windows Phone 7Desenvolvimento de aplicações móveis, IOS, Android, Windows Phone 7
Desenvolvimento de aplicações móveis, IOS, Android, Windows Phone 7
 
Desenvolvimento de Aplicativos para Facebook
Desenvolvimento de Aplicativos para FacebookDesenvolvimento de Aplicativos para Facebook
Desenvolvimento de Aplicativos para Facebook
 
Projeto 2 api_do_facebook
Projeto 2 api_do_facebookProjeto 2 api_do_facebook
Projeto 2 api_do_facebook
 
Visão Geral De Desenvolvimento Web Sre 2012
Visão Geral De Desenvolvimento Web   Sre 2012Visão Geral De Desenvolvimento Web   Sre 2012
Visão Geral De Desenvolvimento Web Sre 2012
 
Utilizando a API do Live Messenger (MSN) com PHP
Utilizando a API do Live Messenger (MSN) com PHPUtilizando a API do Live Messenger (MSN) com PHP
Utilizando a API do Live Messenger (MSN) com PHP
 
BrazilJS 2012
BrazilJS 2012BrazilJS 2012
BrazilJS 2012
 
Percepções sobre mídias sociais e números do mercado brasileiro
Percepções sobre mídias sociais e números do mercado brasileiroPercepções sobre mídias sociais e números do mercado brasileiro
Percepções sobre mídias sociais e números do mercado brasileiro
 
Desvendando os APLICATIVOS SOCIAIS
Desvendando os APLICATIVOS SOCIAISDesvendando os APLICATIVOS SOCIAIS
Desvendando os APLICATIVOS SOCIAIS
 
Apresentação 3 de asoso
Apresentação 3 de asosoApresentação 3 de asoso
Apresentação 3 de asoso
 
8ºConnecting Knowledge Web ou App
8ºConnecting Knowledge Web ou App8ºConnecting Knowledge Web ou App
8ºConnecting Knowledge Web ou App
 
Web ou App?
Web ou App?Web ou App?
Web ou App?
 

Último

Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuisKitota
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfSamaraLunas
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 

Último (9)

Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 

Desenvolvendo Aplicativos Sociais

Notas del editor