Apple Watch
Juliana Chahoud
@jchahoud
Apple Watch
Juliana Chahoud
2
Prof.a no MBA de Mobile da FIAP
Appsterdammer!
Antiga Desenvolvedora iOS do ZAP
Líder Técnica iOS na Movile - São Paulo
@jchahoud
Apple Watch 3
• Set/2014 é
anunciado o
Apple Watch
WatchKit
• Primeira release em
Novembro de 2014 (*)
(*) https://www.apple.com/pr/library/2014/11/18Developers-Start-Designing-Apps-for-Apple-Watch.html
Apple Watch
JAN 2015
https://www.youtube.com/watch?v=BYU8TcHlHFI
PlayKids
Abril 2015
Apple Watch 7

WWDC (Jun/15) : Apple Anuncia o watchOS 2
I know watchOS
Warning!
• watchOS 2 anunciado em 08 de junho
O que preciso saber?
1. Conhecer o hardware
2. Conhecer o sistema operacional watchOS
3. Entender o human interface guideline
4. Framework WatchKit
5. Framework WatchConnectivity : comunicação Watch - iOS
Devices
• Hardware
• watchOS
• Human interface guideline
• WatchKit
• WatchConnectivity
Ok, como é esse
tal de Watch?
Dois tamanhos
Três coleções
Watch
• aço inoxidável
• cristal safira
• pulseira de couro, de elos
Sport
• alumínio anodizado leve
• vidro de Íon
• 30% mais leves que os
modelos de aço inoxidável
Edition
• ouro 18 quilates
• a partir da bagatela de $10.000
Características gerais
• Processador Apple S1
• Resistente a água
• Bluetooth LE e WiFi
• 8 GB armazenamento
• Taptic engine
Sensores
• Frequência cardíaca
• Acelerômetro
• Giroscópio
• Luz ambiente
Bateria
• 18 horas
• 2.5 horas para carregar
100%
Vendas
• 2.79 milhões de
unidades nos EUA (*)
• 17% compraram
pulseira adicional
http://appleinsider.com/articles/15/06/18/apple-watch-sales-estimated-at-279m-17-of-buyers-spring-for-extra-bands
Disponível em 16 Países
• Abril: EUA, UK, Austrália, Canadá, China, França, Alemanha,
Hong Kong e Japão
• Junho: Itália, México, Singapura, Coréia do Sul, Espanha, Suíça
e Taiwan
• Hardware
• watchOS
• Human interface guideline
• WatchKit
• WatchConnectivity
watchOS 2
Faces (mostradores)
• Time-lapse: vídeos de 24hrs
• Fotos
• Complications
Built-in Apps
• Message, Phone, Calendar
• Activity, Stopwatch, Camera Remote
• Music, Maps, Workout
• etc…
Outras características
• Time travel
• Nightstand
• Friends
• Siri
• Apple Pay
• Rascunhos
Iniciando um app para watchOS 2
Arquitetura
Três targets
Pastas relativas aos targets
Simuladores separados
• Hardware
• watchOS
• Human interface guideline
• WatchKit
• WatchConnectivity
HIG
https://developer.apple.com/watch/human-interface-guidelines/
Gestos
• Tap: inicia uma ação
• Swipe Vertical: scroll
• Swipe Horizontal: Paginação
• Canto esquerdo: volta para tela "pai"
Force Touch
http://designmodo.com/design-apple-watch/
Digital Crown (coroa) e Side Button
• Crown: Scroll, Zoom Pressiona:
volta a tela de início
• Side Button: Friends
• Se pressionados juntos: screenshot
Navegação hierárquica
Storyboard: Navegação hierárquica
Storyboard: Navegação hierárquica
Storyboard: Navegação hierárquica
Navegação paginada
Storyboard: Navegação paginada
Storyboard: Navegação paginada
Storyboard: Navegação paginada
Elementos da UI
Glances e Notificações
Iniciação separada no Storyboard
• Hardware
• watchOS
• Human interface guideline
• WatchKit
• WatchConnectivity
WatchKit para watchOS 2
• Acesso ao Digital Crown
• Tocar vídeos e audios
• Acesso ao microfone para gravação de audio
• Acesso ao Taptic engine
• Sensores de health (batimento cardíaco)
• Acesso ao acelerômetro
APIs
https://developer.apple.com/library/prerelease/watchos
WKExtensionDelegate
import WatchKit
class ExtensionDelegate: NSObject, WKExtensionDelegate {
func applicationDidFinishLaunching() {
}
func applicationDidBecomeActive() {
}
func applicationWillResignActive() {
}
}
WKInterfaceController
class InterfaceController: WKInterfaceController {
override func awakeWithContext(context: AnyObject?) {
super.awakeWithContext(context)
}
override func willActivate() {
super.willActivate()
}
override func didDeactivate() {
super.didDeactivate()
}
}
Tabelas: WKInterfaceTable
var table: WKInterfaceTable
• Alguns Métodos
func setNumberOfRows(numberOfRows: Int, withRowType rowType: String)
var numberOfRows: Int { get }
func rowControllerAtIndex(index: Int) -> AnyObject?
func insertRowsAtIndexes(rows: NSIndexSet, withRowType rowType: String)
Outros: Core Motion
• Acelerômetro: CMAccelerometerHandler
• Giroscopio: CMGyroHandler
• Pedometro: CMPedometer
• Hardware
• watchOS
• Human interface guideline
• WatchKit
• WatchConnectivity
Watch Connectivity
• Transmissão de dados entre watch e iPhone
• Apps em foreground: comunicação "live"
• Background: dados ficam disponíveis quando o app é aberto
WCSession
• Classe WCSession: controla a comunicação
• Uso através do singleton: defaultSession
• Criar um objeto que tenha conformidade com o protocolo
WCSessionDelegate
• Invocar activateSession()
WCSession
class MsgToPhone:..., WCSessionDelegate
...
if (WCSession.isSupported()) {
let session = WCSession.defaultSession()
session.delegate = self
session.activateSession()
}
Métodos
• updateApplicationContext: usado para transferir um dicionário quando o
app par estiver ativo
• A outra parte recebe o dicionário através de session(_:didReceiveUpdate:)
• sendMessage: usado para transferir dados imediatamente, através de uma
fila
• transferFile(_:metadata:) usado para transferir arquivos em background
class ... WCSessionDelegate
WCSession.defaultSession().sendMessage...
class ... WCSessionDelegate
func session(session: WCSession,
didReceiveMessage message:
ClockKit
Complications
CLKComplicationDataSource
import ClockKit
class ComplicationController: NSObject,
CLKComplicationDataSource
Mais sobre watchOS 2
• Start Developing for watchOS 2
• https://developer.apple.com/watchos/pre-release/
• WWDC Videos
• https://developer.apple.com/videos/wwdc/2015/
• SampleCode:
• https://github.com/shu223/watchOS-2-Sampler
Apple Watch
Dúvidas? Obrigada!
Juliana Chahoud
69
Ç
Ö
Website
E-mail
Linkedin
Twitter
http://www.jchahoud.com
jchahoud@gmail.com
https://www.linkedin.com/in/julianachahoud
@jchahoud
ą
!

Apple Watch - Digital Day da CI&T