Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Levando sua aplicação a outro nível

Levando sua aplicação a outro nível

usando bigdoor e outras gems de gamificação

5dedfa2aa296b09ffa0a8b013491a5bb?s=128

Rodrigo Franco

November 03, 2011
Tweet

Transcript

  1. Levando sua aplicação a outro nível usando bigdoor e outras

    gems de gamificação
  2. @caffo

  3. None
  4. rails-br

  5. Tópicos 1. Gamificação? 2. No mundo real 3. Em aplicações

    web 4. Utilizando Ruby
  6. None
  7. 'When you play a game of thrones you win or

    you die. There is no middle ground.' George R.R. Martin
  8. None
  9. 'When you play a game of rubies you win or

    you die. There is no middle ground.' Caffo
  10. None
  11. akita em busca do ruby gigante 1 -- press start

    --
  12. Manual do Jogo

  13. Tópicos 1. Gamificação? 2. No mundo real 3. Em aplicações

    web 4. Utilizando Ruby
  14. Tópicos 1. Gamificação? 2. No mundo real 3. Em aplicações

    web 4. Utilizando Ruby
  15. Tópicos 1. Gamificação? 2. No mundo real 3. Em aplicações

    web 4. Utilizando Ruby
  16. Tópicos 1. Gamificação? 2. No mundo real 3. Em aplicações

    web 4. Utilizando Ruby
  17. Hora da Porta!!!1

  18. ??? 1 2 3

  19. Tatuagem grátis! self.happy=false :(

  20. None
  21. “Eu quero ajudar o @akita a encontrar o ruby gigante

    no final da palestra do @caffo na #rubyconfbr”
  22. @caffo + #rubyconfbr

  23. self.happy=true :) Testes passaram!

  24. None
  25. recompensa pela AJUDA ou ou w00t

  26. 2x

  27. Gamificação?

  28. Gamificação? A aplicação de elementos de jogos e game design

    para resolver problemas e aumentar o engajamento dos seus usuários.
  29. Na prática... Transformando a experiência do usuário em um jogo,

    podemos produzir grandes mudanças em como o usuário visualiza internamente a aplicação.
  30. No mundo real

  31. Hora da Porta!!!1

  32. Programas de Milhagem

  33. Fidelidade no café

  34. Na Web

  35. None
  36. None
  37. Porque fazer algo do tipo? Quando executada corretamente, a gamificação

    amplifica a motivação dos seus usuários a continuarem usando seu produto.
  38. Funciona mesmo? Funciona. A gamificação ‘hackeia’ o seu cérebro.

  39. Hora da Porta!!!1

  40. Em Ruby

  41. http://bigdoor.com/

  42. BigDoor - Mecânicas ✓ Ranking de usuários ✓ Níveis (noob,

    pro, veterano, elite) ✓ Badges com ‘milestones' ✓ Goods (items de valor econômico)
  43. BigDoor - Prós • GPL, com suporte premium • Configuração

    de interações simplificada • API (em Ruby) ou JS • Vários relatórios prontos
  44. BigDoor - Contras • Gem com pouca documentação • Lógica

    fica distribuida • Dependencia externa
  45. BigDoor - Exemplo require 'rubygems' require 'bigdoor' APP_KEY = '28d3da80bf36fad415ab57b3130c6cb6'

    APP_SECRET = 'B66F956ED83AE218612CB0FBAC2EF01C' client = BigDoor::Client.new( APP_SECRET, APP_KEY ) currency = BigDoor::Currency.new({ 'pub_title' => 'Moedas', 'end_user_title' => 'Moeda', 'end_user_description' => 'compradas com XP', 'currency_type_id' => '1', 'currency_type_title' => 'Purchase', 'exchange_rate' => 100.00, 'relative_weight' => 2, }) currency.save( client )
  46. Hora da Porta!!!1

  47. http://code.google.com/p/userinfuser UserInfuser

  48. UserInfuser - Mecânicas ✓ Sistema básico de pontuação ✓ Ranking

    de usuários ✓ Badges com ‘milestones’
  49. UserInfuser - Prós • Sua própria cópia da plataforma •

    Configuração de interações simplificada • Documentação relativamente boa
  50. UserInfuser - Contras • UI baseada em Widgets • Plataforma

    não pode ser customizada usando Ruby • Dependência externa • Fragmentacão da base de código
  51. UserInfuser - Widgets

  52. UserInfuser - Exemplo require 'rubygems' require 'userinfuser' ui = UserInfuser.new("usuario@rubyconf.com.br",

    "123-456-789") ui.award_badge(current_user_email, "assistiu-palestra-caffo") ui.award_points(current_user_email, 10) # Mostra o widget de pontos points_widget = ui.get_widget(current_user_email, "points", 100, 100) puts points_widget # Mostra o widget de ranking rank_widget = ui.get_widget(current_user_email, "rank", 100, 100) puts rank_widget # Mostra o widget de badges (trophys no userinfuser) trophy_case_widget = ui.get_widget(current_user_email, "trophy_case") puts trophy_case_widget
  53. Hora da Porta!!!1

  54. https://github.com/scottburton11/Badgeable Badgeable

  55. Badgeable - Mecânicas ✓ Sistema básico de pontuação ✓ Badges

    ✓ O que voce quiser
  56. Badgeable - Prós • Muito simples • Nenhuma dependência externa

    • Extremamente customizável
  57. Badgeable - Contras • Muito simples • Compatível apenas com

    Mongoid and ActiveRecord • Extremamente customizável
  58. Badgeable - Exemplo require 'rubygems' require 'badgeable' require 'mongoid' class

    Person include Mongoid::Document include Badgeable::Subject embeds_many :nachos end badge "Nacho Nacho Man" do thing Nacho count 40 subject :person conditions do |nacho| nacho.spicy? end end # Ou ainda jose = Person.create(:name => "Jose da Silva") jose.award_badge("Total Badass")
  59. Hora da Porta!!!1 FINAL

  60. None
  61. Obrigado! (^o^)b