wearable lab: progettazione per apple watch
TRANSCRIPT
![Page 1: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/1.jpg)
WEARABLE LAB: PROGETTAZIONE
PER APPLE WATCH
Paolo MusolinoErik Peruzzi
26 Settembre 2015
![Page 2: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/2.jpg)
Erik PeruzziiOS Software Engineer
Officina 31 Twitter: @ErikPeruzzi
email: [email protected]
Paolo MusolinoiOS Software Engineer
IQUII srl Twitter: @pmusolino
email: [email protected]
![Page 3: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/3.jpg)
One more thing…
![Page 4: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/4.jpg)
Force touch
Bluetooth 4.0 low energy
TAPTIC EngineDigital Crown… e molto
altro.
![Page 5: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/5.jpg)
42mm38mm
Identico aspect ratio
![Page 6: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/6.jpg)
Oltre 10000 app già disponibili
Fonte: Apple Keynote 9 Settembre 2015
![Page 7: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/7.jpg)
App fornite da Apple:• Possono funzionare senza iPhone• Hanno accesso ai dati dei sensori• Possibilità di animazioni avanzate
![Page 8: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/8.jpg)
App terze parti:• Girano interamente su iPhone• Vengono installate quando la corrispettiva
app viene installata su iPhone• SDK (Watch Kit) limitato• Con Watch Kit 2 cambiano le regole del gioco
![Page 9: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/9.jpg)
Non è (ancora) possibile
• Utilizzare le app senza un iPhone connesso
• Realizzare app che girano solo su Apple Watch
• Creare animazioni avanzate
• Utilizzare i dati dei sensori biometrici e di movimento
![Page 10: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/10.jpg)
• Accedere ai dati dell’app (parente) che gira su iPhone
• Creare animazioni basate sulle immagini
• Ricevere notifiche e visualizzarle
• Presentare delle viste e creare interfacce semplici
Ma si può
![Page 11: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/11.jpg)
SwiftObj-C
![Page 12: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/12.jpg)
WatchKit App + WatchKit Extension
![Page 13: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/13.jpg)
WatchKit Extension
• Gira su iPhone
• Ha il suo ciclo di vita (willActivate, didActivate, etc…)
• Cattura le interazioni dell’utente dall’app installata su Apple Watch
• Aggiorna l’interfaccia del watch da remoto
• Esegue piccoli e brevi task
• Accede ai dati condivisi con la WatchKit App
![Page 14: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/14.jpg)
WatchKit App
• Contiene risorse statiche
• Contiene l’interfaccia grafica (Storyboard necessario)
• Non esegue codice
![Page 15: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/15.jpg)
iPhone App• E’ l’app parente di quella
presente su Apple Watch
• Può processare task molto lunghi
• Può accedere ai dati condivisi con Apple Watch
• Esegue processi che sono separati da quelli dell’estensione.
![Page 16: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/16.jpg)
WatchKit come UIKitWatchKit UIKit
WKInterfaceController UIViewController
WKUserNotificationInterfaceController UIApplicationDelegate + UIAlertController
WKInterfaceDevice UIDevice
WKInterfaceObject UIView
WKInterfaceButton UIButton
WKInterfaceDate UILabel + NSDateFormatter
WKInterfaceGroup UIScrollView
WKInterfaceImage UIImageView
WKInterfaceLabel UILabel
WKInterfaceMap MKMapView
WKInterfaceSeparator UITableView.separatorColor / .separatorStyle
WKInterfaceSlider UIStepper + UISlider
WKInterfaceSwitch UISwitch
WKInterfaceTable UITableView
WKInterfaceTimer UILabel + NSDateFormatter + NSTimer
![Page 17: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/17.jpg)
WKInterfaceController• Tutti i controller di WatchKit sono sottoclassi
di WKInterfaceController
• E’ molto simile a UIViewController, ma con un lifecycle differente.
• Al suo interno possono essere inseriti molti dei componenti di WatchKit per realizzare interfacce complesse.
![Page 18: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/18.jpg)
WKInterfaceController gestisce gli elementi in una scena.
UIViewController gestisce View e Subview.
Gli oggetti dell’interfaccia non sono View, ma si comportano in modo simile.
Inizializzazione usando initWithContext:
override init(context: AnyObject?) { super.init(context: context)
// ...}
![Page 19: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/19.jpg)
// MARK: - WKInterfaceController
override func willActivate() { // ...}
override func didDeactivate() { // ...}
Solo 2 metodi per il Lyfecycle:That's it: 2 methods. No loading / unloading, no will / did appear / disappear, no animated:YES. Watch apps are simple by necessity. Communication between the iOS device driving the application and the watch is both time-consuming and battery-consuming, so all of the setup for the interface controller's scene is to be done in the initializer and willActivate. Both during and after didDeactivate, the Watch will ignore attempts to update the state of interface elements.
![Page 20: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/20.jpg)
Stack di navigazioneLe applicazioni hanno una navigazione Gerarchica o Page-Based.
The presentControllerWithName:context: method performs a page-based navigation equivalent to using the modal segue. The context argument allows you to pass data to the destination Interface Controller.
//Hierarchical Navigation@IBAction func btnHierarchical() { pushControllerWithName(“Page2”, context: [“segue”: “hierarchical”, “data”:“Passed through hierarchical navigation”]) }
//Page Based Navigation@IBAction func btnPagebased() { presentControllerWithName(“Page2”, context: [“segue”: “pagebased”, “data”: “Passed through page-based navigation”]) }
Page2 è l’identificativo del successivo InterfaceController. The pushControllerWithName:context: method performs a hierarchical navigation equivalent to using the push segue. The context argument allows you to pass data to the destination Interface Controller. You navigate to the specific Interface Controller you want by using its identifier.
![Page 21: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/21.jpg)
Progetto Xcode: come appare
Targets: iOS, Tests, WatchKit Extension
![Page 22: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/22.jpg)
Page3.swift
import WatchKitimport Foundation
class Page3: WKInterfaceController {
override init(context: AnyObject?) { super.init(context: context) }
override func willActivate() { super.willActivate() }
override func didDeactivate() { super.didDeactivate() }}
![Page 23: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/23.jpg)
Aggiungiamo un Interface Controller per Page 3 allo Storyboard
IC iniziale IC con navigazione gerarchica
IC con navigazione page-based
![Page 24: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/24.jpg)
Settiamo gli attributi nell’inspector
![Page 25: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/25.jpg)
Configuriamo i pulsanti@IBAction func btnPagebased() { presentControllerWithNames( [“Page2”, “Page3”], contexts: [ [“segue“: “pagebased”, “data”: “Passed through page-based navigation”], [“segue”: “pagebased”, “data”: “Passed through page-based navigation”]])}
Stiamo chiamando presentControllerWithNames:contexts: con i seguenti argomenti:
• Un array di stringhe contenenti gli identificativi degli Interface Controllers da visualizzare.
• Un array di oggetti da passare all’Interface Controller di destinazione. Il primo oggetto sarà passato a Page2, il secondo oggetto a Page3.
![Page 26: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/26.jpg)
RUN
![Page 27: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/27.jpg)
Page-Based Button -> Page 2 -> Left Swipe -> Page 3
![Page 28: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/28.jpg)
WKInterfaceObjectE’ come una UIView, con proprietà come alpha, hidden,
allineamento orizzontale e verticale, width, height.
Object Action Method
Button - (IBAction)doButtonAction
Switch - (IBAction)doSwitchMethod:(BOOL)on
Slider - (IBAction)doSliderAction:(float)value
Table - (IBAction)doTableRowTapAction:(NSInteger)rowIndex
Menu Item - (IBAction)doMenuItemAction
The most striking difference is the lack of a frame. Instead of manually specifying coordinate points or setting up Auto Layout constraints, WatchKit interface objects are laid out in a grid according to their margins and respective ordering, which is reminiscent to working with a CSS framework like Bootstrap (or for you Rubyists out there, remember Shoes?).
![Page 29: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/29.jpg)
Oggetti principali con cui costruire app complesse
• WKInterfaceButton • WKInterfaceTable • WKInterfaceLabel • WKInterfaceDate & WKInterfaceTimer • WKInterfaceSlider & WKInterfaceSwitch
WKInterfaceDate is a special kind of label that displays the current date or time. WKInterfaceTimer is similar, except that it displays a countdown until a specified date.
![Page 30: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/30.jpg)
Share Data
![Page 31: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/31.jpg)
3 Metodi per comunicare con la main app e scambiarsi informazioni
• Metodo 1: OpenParentApp • Metodo 2: Share Data
Cache con NSUserDefaults e App Groups
• Metodo 3: Update Callbacks usando il Darwin Notification Center
![Page 32: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/32.jpg)
Metodo 1openParentApplication:reply:
1) Da chiamare in MKInterfaceController. Passerà un dictionary contenente delle azioni da richiedere alla main app. 2) L’azione (es. “getUserCount”) viene ricevuta dalla main app, che risponderà con un altro Dictionary contenente delle informazioni, da visualizzare su Apple Watch. 3) E’ possibile gestire gli errori di comunicazione (blocco success, blocco failure). 4) Il più grande vantaggio è che l’app su iPhone risponde anche se non è in esecuzione.
![Page 33: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/33.jpg)
Metodo 2Share Data Cache con NSUserDefaults e App Groups.
1) E’ un metodo già rodato, e funziona in maniera simile alle estensioni introdotte da Apple in iOS 8. 2) Si utilizza per condividere dati tra elementi eseguiti su iPhone, appartenenti allo stesso gruppo, che condividono una sandbox comune. 3) Invece del metodo standardDefaults di NSUserDefault, si usa initWithSuite: che permette di salvare e leggere i dati utilizzando NSUserDefaults tra più eseguibili. 4) Non cambia nulla dal classico NSUserDefaults a cui gli sviluppatori iOS sono abituati. 5) Consigliato solo per i dati meno dinamici. Non c’è alcun modo per essere avvisati sul cambiamento di un valore in NSUserDefaults.
![Page 34: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/34.jpg)
Metodo 3Update Callbacks usando il Darwin Notification Center
1) E’ una API di basso livello scritta in C. 2) Esiste una libreria wrapper che ne semplifica l’utilizzo: MMWormhole. 3) E’ simile a NSUserDefaults, ma permette di ricevere aggiornamenti al cambio dei valori. 4) Usa il KVO tramite il quale si possono ricevere notifiche solo quando stiamo realmente utilizzando l’app. Mentre lo schermo di Apple Watch è spento, possiamo decidere di non comunicare con il telefono, e di sincronizzarsi solo quando se ne ha necessità.
![Page 35: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/35.jpg)
Quale usare?DIPENDE.
Una buona soluzione per la stragrande maggioranza dei casi è una combinazione dei metodi 1 & 3.
openParentApplication:reply: per il trigger delle azioni start/pause/resume (ad esempio per richiedere i dati da una API). + MMWormhole per l’aggiornamento dei dati persistenti.
![Page 36: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/36.jpg)
Cose da non dimenticare
• Per sviluppare un’app per Apple Watch è comunque necessario realizzare la corrispettiva app per iOS.
• Senza iPhone non si va da nessuna parte.
• Con WatchOS 2 le regole del gioco cambiano significativamente.
![Page 37: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/37.jpg)
WatchOS 2
![Page 38: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/38.jpg)
Novità in WatchOS 2• Le app girano nativamente su Apple Watch. • Le performance delle app sono notevolmente
superiori. • Le app terze sfruttano le funzioni hardware di Apple
Watch: accesso a Taptic Engine, Digital crown, Accelerometro, Cardiofrequenzimetro, Altoparlante, Microfono.
![Page 39: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/39.jpg)
App che già sfruttano le potenzialità di WatchOS 2
Ping usa l’accelerometro per misurare la velocità del tuo swing
quando giochi a golf.
Insteon usa la Digital Crown per controllare le luci della casa.
![Page 41: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/41.jpg)
![Page 42: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/42.jpg)
Share Data su WatchOS 2Le app che girano nativamente su WatchOS 2 necessitano di tenere in sincronizzazione i dati tra l’app per Apple Watch e
quella su iPhone.
Non ci sono container condivisi con App Group.
—— Apple introduce WCSession. Le sessioni sono la radice da cui
partono tutte le comunicazioni da e verso l’app WatchOS.
Ogni sessione gestisce le informazioni ad alto livello: capisce se il dispositivo in uso ha un Apple Watch abbinato, se
l’applicazione è installata sull’orologio, se l’applicazione si trova a tutto schermo, ed altro ancora.
![Page 43: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/43.jpg)
WCSession• E’ possibile accedere ad una sessione e inviare dati
attraverso esso da qualsiasi punto dell’app. • Le informazioni da una sessione vengono ricevute in un
unico posto incaricato. • La sessione va attivata su entrambe le app (solitamente
nell’AppDelegate, ma può trovarsi ovunque). • I dati vengono inviati in maniera intelligente (risparmio
batteria) non solo con la UI visibile, ma anche in background.
• La Watch App non ha bisogno di sapere ogni cosa che accade su iPhone e viceversa. Al momento opportuno chiederà: aggiornami su tutti gli aggiornamenti di stato avvenuti fino ad ora.
• WCSession ha un metodo updateApplicationContext: che serve a mantenere i dati dell’app sempre aggiornati.
![Page 44: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/44.jpg)
WCSession: esempio di invio e ricezione
1) WCSession invia i dati dalla Watch App attraverso updateApplicationContext:
2) Il delegato implementato sull’app iPhone, otterrà in
session:didReceiveApplicationContext: gli ultimi dati inviati.
3) Se la Watch App imposta un nuovo context prima che vengano inviati i dati precedenti, la
copia dei dati precedenti viene automaticamente ignorata a favore dei nuovi dati.
![Page 45: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/45.jpg)
WCSession: garantire la consegna dei dati
E se i dati che dobbiamo inviare devono essere sempre consegnati?
WCSession offre il metodo transferUserInfo:
Funziona allo stesso modo di updateApplicationContext: ma garantisce che i dati vengano consegnati in ordine
FIFO.
![Page 46: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/46.jpg)
WCSession: dati istantaneisendData:
A volte è necessario inviare i dati ad un dispositivo associato immediatamente, senza attendere che i dati si sincronizzino.
Il metodo sendData: è molto simile a openParentApplication:reply: di WatchOS 1, e permette a chi riceve di rispondere con un messaggio di conferma.
I dati vengono inviati immediatamente a condizione che: 1) Su Apple Watch l’applicazione sia attiva (anche a schermo spento).
2) iPhone ed Apple Watch siano associati e siano entrambi raggiungibili via bluetooth.
Come si fa a decidere se usare la messaggistica istantanea o quella per le attività in background?
WCSession ha una property -> isReachable
![Page 47: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/47.jpg)
WKInterfaceMap• Contenuto non interattivo • Può essere configurato dinamicamente • Massimo 5 annotazioni (pin o immagini) • Un tap apre l’app Mappe di Apple
![Page 48: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/48.jpg)
Personalizzazione della UICosa è configurabile:
- Altezza -Larghezza
- Alpha - Visibilità
- Dimensione del testo
ANCORA BEN LONTANO DA UIKIT
![Page 49: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/49.jpg)
•
Tips per migliorare le proprie app
• API Handoff • Implementare animazioni (basate su
sequenze di immagini su WatchOS 1) • Caching delle immagini • Utilizzare WCSession (solo WatchOS 2) • Non reinventare la ruota: sfruttare a
pieno le potenzialità dei framework di Apple
![Page 50: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/50.jpg)
Impatto di Apple Watch nel settore retail Beacon + Internet
Fonte: 20 Ways The Apple Watch can impact the Retail experience https://medium.com/@jpeddycoart/20-ways-the-apple-watch-can-impact-the-retail-experience-442095859b11
![Page 51: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/51.jpg)
Navigazione in store Checklist
Real time feedback Cross Selling
![Page 52: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/52.jpg)
Recensioni Contenuti solo in-store
Prodotti contestuali Acquisti degli amici
![Page 53: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/53.jpg)
Non finisce qui
1. Pagamenti (Apple Pay) 2. Fitness 3. Salute 4. IOT 5. Comunicazioni e feedback
Fonte: 5 Ideas for the Apple Watch https://medium.com/backchannel/5-ideas-for-apple-watch-393a7a16f8a1
![Page 54: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/54.jpg)
- Usare Apple Watch in maniera creativa
- Interazione con il mondo esterno, non limitarsi alla sola visualizzazione
di contenuti
- Estensione di te
Le sfide
![Page 55: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/55.jpg)
Navigazione per “sensazioni”
![Page 56: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/56.jpg)
Non dimenticare nulla
![Page 57: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/57.jpg)
Musica che risponde alla vostra attività
![Page 58: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/58.jpg)
Salva una vita
![Page 59: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/59.jpg)
Cerca qualcuno vicino a te
![Page 60: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/60.jpg)
Previsioni di vendita nel settore wearable
Fonte: BetaNews Giugno 2015
![Page 61: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/61.jpg)
Conviene investire nello sviluppo per Apple Watch?
*Stima degli analisti
1) 3 milioni di Apple Watch venduti * 2) WatchOS 2 3) Poca concorrenza sullo store 4) Tante potenzialità nel settore retail 5) Settore Health & Fitness in rapida crescita 6) Opportunità nel settore IOT 7) Un mercato potenzialmente enorme e semi inesplorato
![Page 62: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/62.jpg)
Non fate la guerra, fate gli sviluppatori.
![Page 63: Wearable Lab: Progettazione per Apple Watch](https://reader034.vdocuments.us/reader034/viewer/2022042908/58f350711a28abc1708b45b7/html5/thumbnails/63.jpg)
Grazie per l’attenzione