O documento descreve o aplicativo Ingresse para Apple Watch, que permite aos usuários visualizar ingressos e informações sobre eventos no pulso. O app oferece recursos como exibição de códigos QR dos ingressos, notificações sobre próximos eventos e navegação hierárquica entre telas para detalhes do evento. O desenvolvedor discute como aproveitar recursos do Apple Watch como compartilhamento de dados, notificações e handoff entre dispositivos.
Ingressos no pulso - Levando festas e ingressos para o Apple Watch
1. Ingressos no pulso
Rodrigo Borges
Desenvolvedor mobile @ Ingresse
Levando festas e ingressos para o
Apple Watch
2. •Startup de tecnologia aplicada a eventos
fundada em Manaus/AM
•Facilitar a compra e venda de ingressos
online
•Software móvel completo de vendas e
monitoramento de entrada
•25 milhões de reais processados em vendas
em 2014
•400 eventos cadastrados em um mês
(novembro de 2014)
Ingresse
3. • Manauara
• Formado em Ciência da Computação (UFAM)
• Mestrado em Computação Ubíqua (UFMG)
• Desenvolvedor mobile na Ingresse (Android & iOS)
Rodrigo Borges Soares
@rdgborges
rodrigo.borges@ingresse.com
hUps://br.linkedin.com/in/rdgborges
4. Ingresse no Apple Watch
• Visualização de QR-‐Codes dos
ingressos do usuário
• Visualização de informações dos
próximos eventos na cidade
• Notificações para rápido acesso
aos ingressos e eventos
5. App Ingresse e Apple Watch
• A app Ingresse utiliza quase
todos os recursos que o Apple
Watch tem a oferecer, como
Handoff, notificações, Glance,
App Groups, etc.
6. Desenvolvendo para o Apple Watch
• Um app para Apple Watch é uma
Extension de uma app para iPhone
• App Extensions é um recurso lançado
no iOS 8
• Widgets na central de notificações,
teclados customizados,
compartilhamento em redes sociais e…
relógios!
7. Navegação entre telas
• Page based: Telas não
possuem necessariamente
relação entre si
• Hierarchical: Relação hierárquica
entre telas do aplicativo
8. Navegação hierárquica
[self pushControllerWithName:@"eventDetails" context:eventId];
- (void) awakeWithContext:(id)context {
NSManagedObjectID *objectID = (NSManagedObjectID*) context;
NSManagedObject *eventObject = [managedObjectContext
objectWithID:objectID];
// ...
}
• Chama a próxima tela do aplicativo
• Na nova tela
9. Navegação hierárquica
• awakeWithContext: Carregar os dados
necessários e construir sua interface
• willActivate: Atualizar interface quando ela for
mostrada novamente para o usuário (Por
exemplo, quando tela ativar)
10. App Groups: Compartilhamento de dados
• Como acessar os dados do app principal no
Apple Watch?
• Com App Groups, os dados são salvos em um
contêiner que pode ser acessado tanto do app
para iPhone quanto do Apple Watch
• Vale para NSUserDefaults e também para
CoreData!
12. Notificações
• A lógica para mostrar
notificações é baseada no
contexto do usuário
• Notificações Estáticas e
Dinâmicas
• Limiar de tempo para carregar
notificações dinâmicas
14. Glance
• Glances são telas que mostram
conteúdo relevante das apps
instaladas no Watch
• O conteúdo deve ser rápido e fácil
de ler
• Ao clicar na Glance, usuário é
levado para a primeira tela do
aplicativo
15. Handoff
• Continuidade: permite que ações
mais complexas sejam
continuadas no iPhone
• Sem necessidade de botão “Abrir
no iPhone”
• Desenvolvedor deve declarar o
contexto de navegação para a app
principal
17. • Na InterfaceController:
Handoff
- (void) willActivate
{
[self updateUserActivity:@"com.ingresse.event.details"
userInfo:@{@"eventId": eventId} webpageURL:nil];
}
• Declarar um array com nome “NSUserActivityTypes"
no .plist da app principal
• Adicionar os identificadores das atividades no array
(Exemplo: “com.ingresse.event.details”)
19. Apple Watch drops
• É uma boa prática informar ao usuário para abrir o iPhone
para ver mais informações (Handoff). Nada de botão “Abrir
no iPhone”!
• Tanto Glances quanto notificações podem ser testadas
utilizando o simulador do Xcode
• Os números de Version e Build devem ser os mesmos na
app principal e na app para o Apple Watch
• Não esqueça de migrar seus dados para o armazenamento
compartilhado ao utilizar App Groups
20. Referências
• WatchKit (Apple Developer). Seção sobre o Apple Watch
do site de desenvolvedores da Apple.
https://developer.apple.com/watchkit/
• Ingressos no pulso (Medium). https://medium.com/
@rdgborges/ingressos-‐no-‐pulso-‐5b0b43162709
• Watch Aware: Base de dados de apps para Apple Watch
publicadas na App Store (e onde eu fiz a imagem legal do
primeiro slide ☺). http://watchaware.com/
21. That’s all folks!
Rodrigo Borges
Desenvolvedor mobile
@rdgborges
rodrigo.borges@ingresse.com
hUps://br.linkedin.com/in/rdgborges
Rodrigo Maués
Designer de UX e desenvolvedor
mobile
@rdgmaues
maues.rodrigo@ingresse.com
hUps://br.linkedin.com/in/rdgmaues
Marcelo Bissuh
Gerente de projetos
@bissuh
bissuh@ingresse.com
hUps://br.linkedin.com/in/bissuh