Eu odeio OpenSocial

1,952 views

Published on

Uma introdução ao OpenSocial com foco nos problemas encontrados no desenvolvimento para a plataforma. E a solução encontrada para tornar o desenvolvimento de aplicativos sociais mais divertido.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,952
On SlideShare
0
From Embeds
0
Number of Embeds
987
Actions
Shares
0
Downloads
22
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Eu odeio OpenSocial

    1. 1. Eu odeio OpenSocial por Carlos Brando
    2. 2. www.nomedojogo.com
    3. 3. Agenda • O que é OpenSocial? • Por que OpenSocial? • Como funciona? • Quais são os problemas? • Coçando a minha coceira
    4. 4. O que é?
    5. 5. Por quê?
    6. 6. • +350 milhões de usuários • +150 milhões de instalações • +5 mil aplicativos • +100 containers • +25 mil desenvolvedores • 10 milhões de acessos por dia
    7. 7. Como?
    8. 8. OpenSocial 0.8
    9. 9. 1. Container
    10. 10. 2. API JavaScript
    11. 11. 2. API JavaScript Três áreas principais de funcionalidade: • Pessoas • Atividades • Persistência
    12. 12. 3. API RESTful
    13. 13. 4. XML
    14. 14. 4. XML <?xml version="1.0" encoding="UTF-8" ?> <Module>  <ModulePrefs title="Standard gadget structure">   <Require feature="opensocial-0.8"/>  </ModulePrefs>  <Content type="html">  <![CDATA[       Olá galera do Rails for Kids!  ]]>  </Content> </Module>
    15. 15. <?xml version="1.0" encoding="UTF-8" ?> 4. XML <Module>   <ModulePrefs title="List Friends Example">     <Require feature="opensocial-0.8"/>   </ModulePrefs>   <Content type="html">   <![CDATA[     <script type="text/javascript">       /**        * Request the OWNER and OWNER's friends.        */       function request() {         var idspec = opensocial.newIdSpec({ "userId" : "OWNER", "groupId" : "FRIENDS" });         var req = opensocial.newDataRequest();         req.add(req.newFetchPersonRequest(opensocial.IdSpec.PersonId.OWNER), "get_owner");         req.add(req.newFetchPeopleRequest(idspec), "get_friends");         req.send(response);       };       /**        * Parses the response and generates html to list the names of the owner and        * his or her friends.        *        * @param {Object} dataResponse Friend information that was requested.        */       function response(dataResponse) {         var owner = dataResponse.get('get_owner').getData();         var friends = dataResponse.get('get_friends').getData();         var html = 'Friends of ' + owner.getDisplayName();         html += ':<br><ul>';         friends.each(function(person) {           html += '<li>' + person.getDisplayName() + '</li>';         });         html += '</ul>';         document.getElementById('message').innerHTML = html;       };       // Execute the request function when the application is finished loading.       gadgets.util.registerOnLoadHandler(request);     </script>     <div id="message"> </div>   ]]>   </Content> </Module>
    16. 16. Problemas?
    17. 17. Instabilidade
    18. 18. API RESTful Read Only
    19. 19. XML
    20. 20. XML • +1000 linhas • Dificuldade em dividir o trabalho • Dificuldade no design • Conflitos no código
    21. 21. EU ODEIO OPENSOCIAL
    22. 22. Coçando a minha própria coceira...
    23. 23. Ruby on Rails Não era a resposta
    24. 24. Framework Framework conceitual é um conjunto de conceitos usado para resolver um problema de um domínio
    25. 25. CONTINUA...

    ×