Awesome
Esporty App Server Side
Procurando o App? Clique aqui
Este é o server side (lado servidor) do código exemplo apresentado na Trilha iOS do TDC SP 2014, Melhorando a experiência do usuário usando Background Fetching, por George Villasboas.
A keynote da talk, em PDF, pode ser baixada aqui
Ele serve para simular um serviço remoto usado para alimentar o aplicativo Esporty (App fictício de compartilhamento de fotos de esportes radicais) e enviar Remote Notifications para mostrar o funcionamento de background fetches.
Como instalar
-
Faça a instalação do ambiente Ruby/Rails em sua maquina local. Se você é novo em Ruby/Rails, sugiro seguir este tutorial passo-a-passo: http://www.createdbypete.com/articles/ruby-on-rails-development-setup-for-mac-osx/ (em inglês e para OSX).
-
Clone este repositório.
-
Crie os seus certificados de push notification no Apple Developer Portal. Instruções de como gerar o arquivo .pem, você pode encontrar aqui: https://github.com/jpoz/APNS (em inglês).
-
Mova o arquivo certs.pem para a pasta /config/apple_apns/ do repositório clonado. Caso decida colocar outro nome no seu arquivo .pem, lembre-se de atualizar o arquivo /app/controlers/posts_controller.rb (linha 111).
-
Via terminal acesse o diretório do repositório clonado
-
Execute os comandos:
$ rake db:migrate
$ rails server
- No seu browser acesse o endereço: http://localhost:3000. Sua tela deve ser semelhante à exibida abaixo:
- Não existe passo 7. :)
Como enviar um Remote Notification
-
Execute o código do repositório Esporty App em seu dispositivo iOS (detalhes sobre o app você encontra no readme do repositório).
-
Acesse http://localhost:3000
-
Clique em NEW
-
Copie e cole o token de push notification do seu device no campo Token. Para obter o token, observe o console do seu Xcode, ele aparece como no exemplo abaixo:
2014-08-09 11:49:20.409 Esporty[84530:607] Token APNS: <TOKEN>
- Informe um comentário qualquer e clique em "Create post", como na imagem abaixo:
- Observe o console do Xcode pelo recebimento do Remote Notification.
2014-08-09 11:49:20.409 Esporty[84530:607] Posts atualizados: X
Dicas
- Caso o remote notification não chegue, verifique se os certificados foram gerados corretamente.
- Teste o serviço de push, usando um Push Notification comum, comentando a linha 114 do arquivo /app/controlers/posts_controller.rb e descomentando a linha 117. Crie um novo post. Isto fará com que o serviço envie um push comum ao invés de um push silencioso. Descomente/comente novamente as linhas para usar o push remoto.
Configuração testada
- OSX 10.9+
- Ruby 2.1.2p95
- Rails 4.1.2
- Gem APNS 1.1.0
Perguntas?
Só abrir um issue.
Colaborações?
Dê um pull request.
Enjoy!