SlideShare una empresa de Scribd logo
1 de 30
Descargar para leer sin conexión
Ici, ajoutez un visuel à
propos du client ou projet
Benoit CAPALLERE Joffrey BOCQUET
WatchKit
1.1. LES GRANDES LIGNES
XCode 6.2 &
iOS 8.2
Utilisation couplée à un iPhone
2
swift ou obj c
Un nouveau SDK
Développement couplé à une application
2 tailles
3
Action & Outlets : pas de différence
Gestures : existent mais plus limitées
Internationalisation : pas de différence
Storyboard obligatoire
1.2. LES GRANDES LIGNES
Nouveau
Force touch
Digital crown
4
2.1. ARCHITECTURE
Ajout d’une nouvelle target
dans XCode
2 nouveaux
groupes
Watch Kit Extension : code
Watch Kit App : storyboard / ressources
5
2.2. ARCHITECTURE
Code pour gérer les interactions dans l’extension
Toute tâche plus sophistiquée devra être faite dans l’application
6
2.3. CYCLE DE VIE
Plus court
Entry point
7
2.4. CYCLE DE VIE
Les méthodes
awakeWithContext :
chargement des données
willActivate : à utiliser pour des changements
de dernière minute
didDeactive : invalider les timers ou stopper
une animation par exemple
8
App
Delegate
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
- (void)applicationWillResignActive:
(UIApplication *)application
- (void)applicationDidEnterBackground:
(UIApplication *)application
- (void)applicationWillEnterForeground:
(UIApplication *)application
2.5. CYCLE DE VIE
9
3.1. XCODE
espace de
travail
10
3.2. XCODE
visualisation
XCode & Simulateur
11
4. LES CLASSES
visualisation
WKInterfaceController
Classe WKInterfaceObject NSObject
11 éléments :
• Button, Date, Image, Label, Map, Slider, Switch, Timer
• Table
• Groupe, Separator
UI
12
5.1. POSITIONNEMENT
Empilement vertical des composants par défaut
Possible en horizontal avec un « Container Group »
Pas d’ordre
Pas de superposition
Top, center, bottom
Left, center, right
13
5.2. POSITIONNEMENT
On peut cacher ou montrer un objet
On ne peut pas ajouter un objet ou changer son ordre
On peut aussi changer :
• L’alpha
• La taille
• L’accessibilité
Au
runtime
14
6.1. NAVIGATION
Push
Page-Based par le code permet d’être dynamique sur le
nombre de pages et l’ordre
Comment ? Modal
Page-Based
15
6.2. NAVIGATION Passage de données : les contextes
VC Départ
let detailIndex: Int
init(detailIndex: Int) {
self.detailIndex = detailIndex
}
}
override func
contextForSegueWithIdentifier(segueId
entifier: String) -> AnyObject? {
if segueIdentifier == "segueDetail" {
return
DetailContextData(detailIndex: 2)
}
return nil
}
VC arrivée
override func
awakeWithContext(context:
AnyObject?) {
super.awakeWithContext(context)
if let detailContextData = context
as? DetailContextData {
detailIndex =
detailContextData.detailIndex
println(detailIndex)
self.myLabel.setText(toString(det
ailIndex))
}
}
16
7. TABLEVIEW
Avant l’affichage on donne :
• Le nombre de lignes
• Le contenu de chaque ligne
Une classe pour un type de Cell
Pas de section
Lors de la sélection (segue ou par programmation) d’une
« row » on passe les données avec le contexte
17
8. CONTEXT MENU
Appui long sur l’écran
On le définit pour un contrôleur
4 maximum
1 menu : un titre, une image, une action contextualisé
pour une View.
18
9.1. PARTAGE DE DONNÉES
- Share NSUserDefault
- Share files inside a container
- Share Keychain
- Common Framework
- Directly communicate from Watch Extension to
Companion App
19
9.2. PARTAGE DE DONNÉES
Entre l’iOS App et l’extension WatchKit
Activation de « App Group » dans Capabilities et
création d’un groupe
Share files inside a container
20
9.3. PARTAGE DE DONNÉES
Share NSUserDefault
NSString *container = @"group.com.society.groupname.sharing";
NSUserDefaults *defaults = [[NSUserDefaults alloc] initWithSuiteName:container];
//classic access to userdefault values ...
[defaults setValue:@42 forKey:@"userAge"]; //write
NSNumber* age = [defaults valueForKey:@"userAge"]; //read
21
9.4. PARTAGE DE DONNÉES
Directly communicate from Watch Extension to Companion App
- (void)application:(UIApplication *)application
handleWatchKitExtensionRequest:(NSDictionary *)userInfo
reply:(void (^)(NSDictionary *replyInfo))reply
+ (BOOL)openParentApplication:(NSDictionary *)userInfo
reply:(void (^)(NSDictionary *replyInfo, NSError *error))reply
22
10.1. GLANCES
Les Glances (« coup d’oeil »)
• Lançable manuellement par l’utilisateur depuis la home
de la montre
• Un par application
• La seule interaction possible est le clic
• Non scrollable
• Utilisation possible de handoff pour gérer le clic sur la
glance. Lance l’App Watch par défaut.
23
10.2. GLANCES
Création :
• À la création de l’App Watch
• En ajoutant un « Glance Interface Controller »
2 groupes (upper/lower) :
• Chaque partie est customizable depuis un ensemble de
templates
• Label/Image, pas de bouton/switch
• Création de sa classe
Besoin de créer un « scheme » avec le simulateur
24
11. MAPS
Possibilité d’ajouter des annotations (5 maximum)
pas d’interactivité Pour le mettre en place :
• Ajout du composant d’UI
• Définition de la région
25
13.1. NOTIFICATIONS
Notification par défaut si
rien de configuré avec une
interface « Short Look »
Diffusion d’une notification « Long Look » si
on l’a ajouté à l’app watch :
• Static notification
• Dynamic notification
Short Look
26
13.2. NOTIFICATIONS
Diffusion d’une notification
« Long Look ». Static ou
Dynamic.
Configurer des interfaces
de notifications
différentes par Category
Custom
Long Look
27
13.3. NOTIFICATIONS
Tests {
"aps": {
"alert": {
"body": "Your Booking is Available",
"title": "Optional title"
},
"category": "watch_booking_checkin"
},
"WatchKit Simulator Actions": [
{
"title": "Open App",
"identifier": "openAppButtonAction"
}
....
www.useradgents.com
A USER INTERFACE IS
LIKE A JOKE. IF YOU
HAVE TO EXPLAIN IT,
IT’S NOT THAT GOOD.
‘
’
MERCI
Benoit CAPALLERE Joffrey BOCQUET
8 rue de la Rochefoucauld
75009 PARIS
+33 1 77 75 65 90 uainfo@useradgents.com www.useradgents.com @useradgentswww.joshfire.com @joshfire
userADgents
en chiffres :
Que faisons-nous ?
Accompagnement stratégique
Etude de marché, benchmark, audit
Formation
Recherche et innovation
CONSEIL
Design Thinking
Recherche utilisateurs
Ateliers d’idéation
Design graphique des interfaces
Test & Learn
UX / DESIGN
Applications natives (iOS/Android/Windows Phone)
Web responsive & adaptive
Back-end
Gestion des stores
DÉVELOPPEMENT
Publicité mobile (media & audience planning)
App Store optimisation
Campagnes Drive to store
Interaction in store
PROMOTION
6 ans d’existence
30 experts
14 awards
userADgents est une agence
conseil « mobile first » qui aide
les marques à définir leur
stratégie, leur design, à
développer & promouvoir leurs
services et produits par le biais
d’applications & de sites pour
smartphones, tablettes &
objets connectés.
Nous sommes partenaires avec
Joshfire, la 1ère agence d’iOT
et nous dirigeons la Mobile
Marketing Association.
Qui sommes-nous ?
8 rue de la Rochefoucauld
75009 PARIS
+33 1 77 75 65 90 uainfo@useradgents.com www.useradgents.com @useradgentswww.joshfire.com @joshfire
Que faisons-nous ?
IDEATION
DESIGN
PROTOTYPAGE
INDUSTRIALISATION
Fondée en 2010, l’agence
Joshfire est spécialisée dans la
création d’objets connectés et
expériences interactives sur
mesure.
Nos fondamentaux sont
l’expérience utilisateur, le
design et l’ergonomie.
Nous sommes obsédés par
chaque détail et préférons la
qualité à la quantité.
Nous sommes partenaires avec
userADgents, une agence
conseil « mobile first ».
Qui sommes-nous ?
Nous mêlons notre expérience et expertise à votre
connaissance et vision du métier pour créer des
concepts innovants.
Assistés par de vrais designers industriels &
spécialistes dans les objets connectés, nous
savons évaluer les solutions les plus pertinentes.
Pour valider les idées, nous les prototypes avec
nos experts en électrotechniques.
L’accomplissement d’un processus créatif agile
c’est de voir votre produit en magasin. c’est aussi
notre satisfaction.

Más contenido relacionado

La actualidad más candente

CocoaHeads Rennes #6
CocoaHeads Rennes #6CocoaHeads Rennes #6
CocoaHeads Rennes #6CocoaHeadsRNS
 
How javascript core helped PAW to move from a small app to an extensible tool
How javascript core helped PAW to move from a small app to an extensible toolHow javascript core helped PAW to move from a small app to an extensible tool
How javascript core helped PAW to move from a small app to an extensible toolCocoaHeads France
 
CocoaHeads Rennes #14: Programmation Responsive par Celedev
CocoaHeads Rennes #14: Programmation Responsive par CeledevCocoaHeads Rennes #14: Programmation Responsive par Celedev
CocoaHeads Rennes #14: Programmation Responsive par CeledevCocoaHeadsRNS
 
Ionic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,SassIonic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,Sassmarwa baich
 
CocoaHeads Toulouse - Xcode et les tests - Epitez
CocoaHeads Toulouse - Xcode et les tests - EpitezCocoaHeads Toulouse - Xcode et les tests - Epitez
CocoaHeads Toulouse - Xcode et les tests - EpitezCocoaHeads France
 
Introduction to WebRTC on iOS
Introduction to WebRTC on iOSIntroduction to WebRTC on iOS
Introduction to WebRTC on iOSCocoaHeads France
 
Transition de NIBs/XIBs vers Storyboards
Transition de NIBs/XIBs vers StoryboardsTransition de NIBs/XIBs vers Storyboards
Transition de NIBs/XIBs vers StoryboardsCocoaHeads France
 
CocoaHeads Toulouse - Marc Boudou / FreezySnail - Programmation concurrente
CocoaHeads Toulouse - Marc Boudou / FreezySnail - Programmation concurrenteCocoaHeads Toulouse - Marc Boudou / FreezySnail - Programmation concurrente
CocoaHeads Toulouse - Marc Boudou / FreezySnail - Programmation concurrenteCocoaHeads France
 
Initiation Android Niveau Débutant
Initiation Android Niveau DébutantInitiation Android Niveau Débutant
Initiation Android Niveau DébutantNadim GOUIA
 
CocoaHeads An Android Overview (fr)
CocoaHeads An Android Overview (fr)CocoaHeads An Android Overview (fr)
CocoaHeads An Android Overview (fr)Mathias Seguy
 
Firebase par nicolas lehovetzki
Firebase par nicolas lehovetzkiFirebase par nicolas lehovetzki
Firebase par nicolas lehovetzkiCocoaHeads France
 
CocoaHeads Rennes #5 : iOS & Android
CocoaHeads Rennes #5 : iOS & AndroidCocoaHeads Rennes #5 : iOS & Android
CocoaHeads Rennes #5 : iOS & AndroidCocoaHeadsRNS
 
J'ai fait une app native en React Native
J'ai fait une app native en React NativeJ'ai fait une app native en React Native
J'ai fait une app native en React NativeCocoaHeads France
 
Introduction au développement Android
Introduction au développement AndroidIntroduction au développement Android
Introduction au développement AndroidSteve Tremblay
 

La actualidad más candente (20)

Test flight
Test flightTest flight
Test flight
 
CocoaHeads Rennes #6
CocoaHeads Rennes #6CocoaHeads Rennes #6
CocoaHeads Rennes #6
 
How javascript core helped PAW to move from a small app to an extensible tool
How javascript core helped PAW to move from a small app to an extensible toolHow javascript core helped PAW to move from a small app to an extensible tool
How javascript core helped PAW to move from a small app to an extensible tool
 
CocoaHeads Rennes #14: Programmation Responsive par Celedev
CocoaHeads Rennes #14: Programmation Responsive par CeledevCocoaHeads Rennes #14: Programmation Responsive par Celedev
CocoaHeads Rennes #14: Programmation Responsive par Celedev
 
Ionic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,SassIonic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,Sass
 
Plugins Xcode
Plugins XcodePlugins Xcode
Plugins Xcode
 
CocoaHeads Toulouse - Xcode et les tests - Epitez
CocoaHeads Toulouse - Xcode et les tests - EpitezCocoaHeads Toulouse - Xcode et les tests - Epitez
CocoaHeads Toulouse - Xcode et les tests - Epitez
 
Développement web mobile avec IONIC 2
Développement web mobile avec IONIC 2Développement web mobile avec IONIC 2
Développement web mobile avec IONIC 2
 
Android wear
Android wearAndroid wear
Android wear
 
Introduction to WebRTC on iOS
Introduction to WebRTC on iOSIntroduction to WebRTC on iOS
Introduction to WebRTC on iOS
 
Transition de NIBs/XIBs vers Storyboards
Transition de NIBs/XIBs vers StoryboardsTransition de NIBs/XIBs vers Storyboards
Transition de NIBs/XIBs vers Storyboards
 
CocoaHeads Toulouse - Marc Boudou / FreezySnail - Programmation concurrente
CocoaHeads Toulouse - Marc Boudou / FreezySnail - Programmation concurrenteCocoaHeads Toulouse - Marc Boudou / FreezySnail - Programmation concurrente
CocoaHeads Toulouse - Marc Boudou / FreezySnail - Programmation concurrente
 
Initiation Android Niveau Débutant
Initiation Android Niveau DébutantInitiation Android Niveau Débutant
Initiation Android Niveau Débutant
 
CocoaHeads An Android Overview (fr)
CocoaHeads An Android Overview (fr)CocoaHeads An Android Overview (fr)
CocoaHeads An Android Overview (fr)
 
Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4
 
1 tours horizon
1 tours horizon1 tours horizon
1 tours horizon
 
Firebase par nicolas lehovetzki
Firebase par nicolas lehovetzkiFirebase par nicolas lehovetzki
Firebase par nicolas lehovetzki
 
CocoaHeads Rennes #5 : iOS & Android
CocoaHeads Rennes #5 : iOS & AndroidCocoaHeads Rennes #5 : iOS & Android
CocoaHeads Rennes #5 : iOS & Android
 
J'ai fait une app native en React Native
J'ai fait une app native en React NativeJ'ai fait une app native en React Native
J'ai fait une app native en React Native
 
Introduction au développement Android
Introduction au développement AndroidIntroduction au développement Android
Introduction au développement Android
 

Destacado

158138 j hache -nxpower_lite-
158138 j hache -nxpower_lite-158138 j hache -nxpower_lite-
158138 j hache -nxpower_lite-Gerard Houdinet
 
Manejo Del BalóN
Manejo Del BalóNManejo Del BalóN
Manejo Del BalóNLOSCANGRIS
 
Planeadores de bodas ELE
Planeadores de bodas ELEPlaneadores de bodas ELE
Planeadores de bodas ELEfabiasom
 
U2 Meta2 2a2 Stl Invest P Diagnost 28feb2010
U2 Meta2 2a2 Stl Invest P Diagnost 28feb2010U2 Meta2 2a2 Stl Invest P Diagnost 28feb2010
U2 Meta2 2a2 Stl Invest P Diagnost 28feb2010jorge
 
Bibliotecología en colombia
Bibliotecología en colombiaBibliotecología en colombia
Bibliotecología en colombiaguestd3f1e3b
 
Animalesdomesticos
AnimalesdomesticosAnimalesdomesticos
Animalesdomesticosguest49d71
 
Formation du 16 au 19 mars 2015
Formation du 16 au 19 mars  2015Formation du 16 au 19 mars  2015
Formation du 16 au 19 mars 2015marouen chikhaoui
 
Traitement des matières résiduelles - Présentation Dorval
Traitement des matières résiduelles - Présentation DorvalTraitement des matières résiduelles - Présentation Dorval
Traitement des matières résiduelles - Présentation DorvalLouis-Alexandre Cazal
 
Traitement des matières résiduelles - Présentation Mtl Est
Traitement des matières résiduelles - Présentation Mtl EstTraitement des matières résiduelles - Présentation Mtl Est
Traitement des matières résiduelles - Présentation Mtl EstLouis-Alexandre Cazal
 
Parcours Thèses - Introduction
Parcours Thèses - IntroductionParcours Thèses - Introduction
Parcours Thèses - IntroductionABES
 
Entornosvirtuales aprendizaje ritasierra
Entornosvirtuales aprendizaje ritasierraEntornosvirtuales aprendizaje ritasierra
Entornosvirtuales aprendizaje ritasierraMariaAngelesSierra
 
Citizen2.0 - Facebook f8 two years before
Citizen2.0 - Facebook f8 two years beforeCitizen2.0 - Facebook f8 two years before
Citizen2.0 - Facebook f8 two years beforePierre Valade
 
Le filament 29 de mai 2013
Le filament 29 de mai 2013 Le filament 29 de mai 2013
Le filament 29 de mai 2013 Patrice Piardon
 

Destacado (20)

158138 j hache -nxpower_lite-
158138 j hache -nxpower_lite-158138 j hache -nxpower_lite-
158138 j hache -nxpower_lite-
 
Packet4manual1
Packet4manual1Packet4manual1
Packet4manual1
 
Manejo Del BalóN
Manejo Del BalóNManejo Del BalóN
Manejo Del BalóN
 
Planeadores de bodas ELE
Planeadores de bodas ELEPlaneadores de bodas ELE
Planeadores de bodas ELE
 
U2 Meta2 2a2 Stl Invest P Diagnost 28feb2010
U2 Meta2 2a2 Stl Invest P Diagnost 28feb2010U2 Meta2 2a2 Stl Invest P Diagnost 28feb2010
U2 Meta2 2a2 Stl Invest P Diagnost 28feb2010
 
Bibliotecología en colombia
Bibliotecología en colombiaBibliotecología en colombia
Bibliotecología en colombia
 
Animalesdomesticos
AnimalesdomesticosAnimalesdomesticos
Animalesdomesticos
 
Formation du 16 au 19 mars 2015
Formation du 16 au 19 mars  2015Formation du 16 au 19 mars  2015
Formation du 16 au 19 mars 2015
 
Traitement des matières résiduelles - Présentation Dorval
Traitement des matières résiduelles - Présentation DorvalTraitement des matières résiduelles - Présentation Dorval
Traitement des matières résiduelles - Présentation Dorval
 
Economie du Logiciel Libre
Economie du Logiciel LibreEconomie du Logiciel Libre
Economie du Logiciel Libre
 
Traitement des matières résiduelles - Présentation Mtl Est
Traitement des matières résiduelles - Présentation Mtl EstTraitement des matières résiduelles - Présentation Mtl Est
Traitement des matières résiduelles - Présentation Mtl Est
 
Parcours Thèses - Introduction
Parcours Thèses - IntroductionParcours Thèses - Introduction
Parcours Thèses - Introduction
 
Entornosvirtuales aprendizaje ritasierra
Entornosvirtuales aprendizaje ritasierraEntornosvirtuales aprendizaje ritasierra
Entornosvirtuales aprendizaje ritasierra
 
Art project
Art projectArt project
Art project
 
Einclusion en el SPARK2013
Einclusion en el SPARK2013Einclusion en el SPARK2013
Einclusion en el SPARK2013
 
Estrategias didacticas
Estrategias didacticasEstrategias didacticas
Estrategias didacticas
 
Liga 07 08 al completo
Liga 07 08 al completoLiga 07 08 al completo
Liga 07 08 al completo
 
Presentacion conecta ahora
Presentacion conecta ahoraPresentacion conecta ahora
Presentacion conecta ahora
 
Citizen2.0 - Facebook f8 two years before
Citizen2.0 - Facebook f8 two years beforeCitizen2.0 - Facebook f8 two years before
Citizen2.0 - Facebook f8 two years before
 
Le filament 29 de mai 2013
Le filament 29 de mai 2013 Le filament 29 de mai 2013
Le filament 29 de mai 2013
 

Similar a Apple Watch par Benoit Capallere et Joeffrey Bocquet

Mobiliteatime #2 - WatchKit, le framework de développement pour l’Apple Watch
Mobiliteatime #2 - WatchKit, le framework de développement pour l’Apple WatchMobiliteatime #2 - WatchKit, le framework de développement pour l’Apple Watch
Mobiliteatime #2 - WatchKit, le framework de développement pour l’Apple WatchUSERADGENTS
 
Google glass droidcon - DroidCon Paris 2014
Google glass droidcon - DroidCon Paris 2014Google glass droidcon - DroidCon Paris 2014
Google glass droidcon - DroidCon Paris 2014Paris Android User Group
 
Formation iPhone ENSI by (Orange Tunisie)
Formation iPhone ENSI by (Orange Tunisie)Formation iPhone ENSI by (Orange Tunisie)
Formation iPhone ENSI by (Orange Tunisie)Farouk Mezghich
 
Etendre ses applications aux smartwatches et TVs android
Etendre ses applications aux smartwatches et TVs androidEtendre ses applications aux smartwatches et TVs android
Etendre ses applications aux smartwatches et TVs androidXavier Hallade
 
Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Saber LAJILI
 
Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Sabeur LAJILI
 
Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Sabeur LAJILI
 
Windows 8: Live tiles, badges et notifications toasts [french]
Windows 8: Live tiles, badges et notifications toasts [french]Windows 8: Live tiles, badges et notifications toasts [french]
Windows 8: Live tiles, badges et notifications toasts [french]Laurent Duveau
 
Kinect en moins de 10 Minutes
Kinect en moins de 10 MinutesKinect en moins de 10 Minutes
Kinect en moins de 10 MinutesMicrosoft
 
Paris Android User Group
Paris Android User GroupParis Android User Group
Paris Android User Groupnaholyr
 
Mise en place de l'ActionBarCompat dans vos projets Android.
Mise en place de l'ActionBarCompat dans vos projets Android.Mise en place de l'ActionBarCompat dans vos projets Android.
Mise en place de l'ActionBarCompat dans vos projets Android.Mathias Seguy
 
Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...
Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...
Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...Publicis Sapient Engineering
 
Qualité & Industrialisation des développements mobiles sur iOS & Android
Qualité & Industrialisation des développements mobiles sur iOS & AndroidQualité & Industrialisation des développements mobiles sur iOS & Android
Qualité & Industrialisation des développements mobiles sur iOS & AndroidThibaud CAVIN
 
Web-In 2010: Programmation Native iOS (French)
Web-In 2010: Programmation Native iOS (French)Web-In 2010: Programmation Native iOS (French)
Web-In 2010: Programmation Native iOS (French)Fred Brunel
 
Développement d'applications mobiles.. Environnement de programmation visuelle
Développement d'applications mobiles.. Environnement de programmation visuelleDéveloppement d'applications mobiles.. Environnement de programmation visuelle
Développement d'applications mobiles.. Environnement de programmation visuelleREGIONAL ACADEMY OF EDUCATION AND TRAINING
 
Visual studio 2017 Launch keynote - Afterworks@Noumea
Visual studio 2017 Launch keynote - Afterworks@NoumeaVisual studio 2017 Launch keynote - Afterworks@Noumea
Visual studio 2017 Launch keynote - Afterworks@NoumeaJulien Chable
 
Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...
Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...
Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...Philippe Beraud
 

Similar a Apple Watch par Benoit Capallere et Joeffrey Bocquet (20)

Mobiliteatime #2 - WatchKit, le framework de développement pour l’Apple Watch
Mobiliteatime #2 - WatchKit, le framework de développement pour l’Apple WatchMobiliteatime #2 - WatchKit, le framework de développement pour l’Apple Watch
Mobiliteatime #2 - WatchKit, le framework de développement pour l’Apple Watch
 
Google glass droidcon - DroidCon Paris 2014
Google glass droidcon - DroidCon Paris 2014Google glass droidcon - DroidCon Paris 2014
Google glass droidcon - DroidCon Paris 2014
 
Formation iPhone ENSI by (Orange Tunisie)
Formation iPhone ENSI by (Orange Tunisie)Formation iPhone ENSI by (Orange Tunisie)
Formation iPhone ENSI by (Orange Tunisie)
 
Etendre ses applications aux smartwatches et TVs android
Etendre ses applications aux smartwatches et TVs androidEtendre ses applications aux smartwatches et TVs android
Etendre ses applications aux smartwatches et TVs android
 
Android201710 avrilcours3
Android201710 avrilcours3Android201710 avrilcours3
Android201710 avrilcours3
 
Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Les ateliers android_1_vers2015
Les ateliers android_1_vers2015
 
Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Les ateliers android_1_vers2015
Les ateliers android_1_vers2015
 
Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Les ateliers android_1_vers2015
Les ateliers android_1_vers2015
 
Windows 8: Live tiles, badges et notifications toasts [french]
Windows 8: Live tiles, badges et notifications toasts [french]Windows 8: Live tiles, badges et notifications toasts [french]
Windows 8: Live tiles, badges et notifications toasts [french]
 
5.ateliers avancés
5.ateliers avancés5.ateliers avancés
5.ateliers avancés
 
Kinect en moins de 10 Minutes
Kinect en moins de 10 MinutesKinect en moins de 10 Minutes
Kinect en moins de 10 Minutes
 
Paris Android User Group
Paris Android User GroupParis Android User Group
Paris Android User Group
 
Mise en place de l'ActionBarCompat dans vos projets Android.
Mise en place de l'ActionBarCompat dans vos projets Android.Mise en place de l'ActionBarCompat dans vos projets Android.
Mise en place de l'ActionBarCompat dans vos projets Android.
 
Meetup sencha
Meetup senchaMeetup sencha
Meetup sencha
 
Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...
Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...
Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...
 
Qualité & Industrialisation des développements mobiles sur iOS & Android
Qualité & Industrialisation des développements mobiles sur iOS & AndroidQualité & Industrialisation des développements mobiles sur iOS & Android
Qualité & Industrialisation des développements mobiles sur iOS & Android
 
Web-In 2010: Programmation Native iOS (French)
Web-In 2010: Programmation Native iOS (French)Web-In 2010: Programmation Native iOS (French)
Web-In 2010: Programmation Native iOS (French)
 
Développement d'applications mobiles.. Environnement de programmation visuelle
Développement d'applications mobiles.. Environnement de programmation visuelleDéveloppement d'applications mobiles.. Environnement de programmation visuelle
Développement d'applications mobiles.. Environnement de programmation visuelle
 
Visual studio 2017 Launch keynote - Afterworks@Noumea
Visual studio 2017 Launch keynote - Afterworks@NoumeaVisual studio 2017 Launch keynote - Afterworks@Noumea
Visual studio 2017 Launch keynote - Afterworks@Noumea
 
Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...
Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...
Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...
 

Más de CocoaHeads France

Más de CocoaHeads France (20)

Mutation testing for a safer Future
Mutation testing for a safer FutureMutation testing for a safer Future
Mutation testing for a safer Future
 
iOS App Group for Debugging
iOS App Group for DebuggingiOS App Group for Debugging
iOS App Group for Debugging
 
Asynchronous swift
Asynchronous swiftAsynchronous swift
Asynchronous swift
 
Visual accessibility in iOS11
Visual accessibility in iOS11Visual accessibility in iOS11
Visual accessibility in iOS11
 
My script - One year of CocoaHeads
My script - One year of CocoaHeadsMy script - One year of CocoaHeads
My script - One year of CocoaHeads
 
Ui testing dealing with push notifications
Ui testing dealing with push notificationsUi testing dealing with push notifications
Ui testing dealing with push notifications
 
CONTINUOUS DELIVERY WITH FASTLANE
CONTINUOUS DELIVERY WITH FASTLANECONTINUOUS DELIVERY WITH FASTLANE
CONTINUOUS DELIVERY WITH FASTLANE
 
L'intégration continue avec Bitrise
L'intégration continue avec BitriseL'intégration continue avec Bitrise
L'intégration continue avec Bitrise
 
Super combinators
Super combinatorsSuper combinators
Super combinators
 
Design like a developer
Design like a developerDesign like a developer
Design like a developer
 
Handle the error
Handle the errorHandle the error
Handle the error
 
Quoi de neuf dans iOS 10.3
Quoi de neuf dans iOS 10.3Quoi de neuf dans iOS 10.3
Quoi de neuf dans iOS 10.3
 
IoT Best practices
 IoT Best practices IoT Best practices
IoT Best practices
 
SwiftyGPIO
SwiftyGPIOSwiftyGPIO
SwiftyGPIO
 
Présentation de HomeKit
Présentation de HomeKitPrésentation de HomeKit
Présentation de HomeKit
 
Programme MFI retour d'expérience
Programme MFI retour d'expérienceProgramme MFI retour d'expérience
Programme MFI retour d'expérience
 
How to communicate with Smart things?
How to communicate with Smart things?How to communicate with Smart things?
How to communicate with Smart things?
 
Build a lego app with CocoaPods
Build a lego app with CocoaPodsBuild a lego app with CocoaPods
Build a lego app with CocoaPods
 
Let's migrate to Swift 3.0
Let's migrate to Swift 3.0Let's migrate to Swift 3.0
Let's migrate to Swift 3.0
 
Project Entourage
Project EntourageProject Entourage
Project Entourage
 

Apple Watch par Benoit Capallere et Joeffrey Bocquet

  • 1. Ici, ajoutez un visuel à propos du client ou projet Benoit CAPALLERE Joffrey BOCQUET WatchKit
  • 2. 1.1. LES GRANDES LIGNES XCode 6.2 & iOS 8.2 Utilisation couplée à un iPhone 2 swift ou obj c Un nouveau SDK Développement couplé à une application 2 tailles
  • 3. 3 Action & Outlets : pas de différence Gestures : existent mais plus limitées Internationalisation : pas de différence Storyboard obligatoire 1.2. LES GRANDES LIGNES Nouveau Force touch Digital crown
  • 4. 4 2.1. ARCHITECTURE Ajout d’une nouvelle target dans XCode 2 nouveaux groupes Watch Kit Extension : code Watch Kit App : storyboard / ressources
  • 5. 5 2.2. ARCHITECTURE Code pour gérer les interactions dans l’extension Toute tâche plus sophistiquée devra être faite dans l’application
  • 6. 6 2.3. CYCLE DE VIE Plus court Entry point
  • 7. 7 2.4. CYCLE DE VIE Les méthodes awakeWithContext : chargement des données willActivate : à utiliser pour des changements de dernière minute didDeactive : invalider les timers ou stopper une animation par exemple
  • 8. 8 App Delegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions - (void)applicationWillResignActive: (UIApplication *)application - (void)applicationDidEnterBackground: (UIApplication *)application - (void)applicationWillEnterForeground: (UIApplication *)application 2.5. CYCLE DE VIE
  • 11. 11 4. LES CLASSES visualisation WKInterfaceController Classe WKInterfaceObject NSObject 11 éléments : • Button, Date, Image, Label, Map, Slider, Switch, Timer • Table • Groupe, Separator UI
  • 12. 12 5.1. POSITIONNEMENT Empilement vertical des composants par défaut Possible en horizontal avec un « Container Group » Pas d’ordre Pas de superposition Top, center, bottom Left, center, right
  • 13. 13 5.2. POSITIONNEMENT On peut cacher ou montrer un objet On ne peut pas ajouter un objet ou changer son ordre On peut aussi changer : • L’alpha • La taille • L’accessibilité Au runtime
  • 14. 14 6.1. NAVIGATION Push Page-Based par le code permet d’être dynamique sur le nombre de pages et l’ordre Comment ? Modal Page-Based
  • 15. 15 6.2. NAVIGATION Passage de données : les contextes VC Départ let detailIndex: Int init(detailIndex: Int) { self.detailIndex = detailIndex } } override func contextForSegueWithIdentifier(segueId entifier: String) -> AnyObject? { if segueIdentifier == "segueDetail" { return DetailContextData(detailIndex: 2) } return nil } VC arrivée override func awakeWithContext(context: AnyObject?) { super.awakeWithContext(context) if let detailContextData = context as? DetailContextData { detailIndex = detailContextData.detailIndex println(detailIndex) self.myLabel.setText(toString(det ailIndex)) } }
  • 16. 16 7. TABLEVIEW Avant l’affichage on donne : • Le nombre de lignes • Le contenu de chaque ligne Une classe pour un type de Cell Pas de section Lors de la sélection (segue ou par programmation) d’une « row » on passe les données avec le contexte
  • 17. 17 8. CONTEXT MENU Appui long sur l’écran On le définit pour un contrôleur 4 maximum 1 menu : un titre, une image, une action contextualisé pour une View.
  • 18. 18 9.1. PARTAGE DE DONNÉES - Share NSUserDefault - Share files inside a container - Share Keychain - Common Framework - Directly communicate from Watch Extension to Companion App
  • 19. 19 9.2. PARTAGE DE DONNÉES Entre l’iOS App et l’extension WatchKit Activation de « App Group » dans Capabilities et création d’un groupe Share files inside a container
  • 20. 20 9.3. PARTAGE DE DONNÉES Share NSUserDefault NSString *container = @"group.com.society.groupname.sharing"; NSUserDefaults *defaults = [[NSUserDefaults alloc] initWithSuiteName:container]; //classic access to userdefault values ... [defaults setValue:@42 forKey:@"userAge"]; //write NSNumber* age = [defaults valueForKey:@"userAge"]; //read
  • 21. 21 9.4. PARTAGE DE DONNÉES Directly communicate from Watch Extension to Companion App - (void)application:(UIApplication *)application handleWatchKitExtensionRequest:(NSDictionary *)userInfo reply:(void (^)(NSDictionary *replyInfo))reply + (BOOL)openParentApplication:(NSDictionary *)userInfo reply:(void (^)(NSDictionary *replyInfo, NSError *error))reply
  • 22. 22 10.1. GLANCES Les Glances (« coup d’oeil ») • Lançable manuellement par l’utilisateur depuis la home de la montre • Un par application • La seule interaction possible est le clic • Non scrollable • Utilisation possible de handoff pour gérer le clic sur la glance. Lance l’App Watch par défaut.
  • 23. 23 10.2. GLANCES Création : • À la création de l’App Watch • En ajoutant un « Glance Interface Controller » 2 groupes (upper/lower) : • Chaque partie est customizable depuis un ensemble de templates • Label/Image, pas de bouton/switch • Création de sa classe Besoin de créer un « scheme » avec le simulateur
  • 24. 24 11. MAPS Possibilité d’ajouter des annotations (5 maximum) pas d’interactivité Pour le mettre en place : • Ajout du composant d’UI • Définition de la région
  • 25. 25 13.1. NOTIFICATIONS Notification par défaut si rien de configuré avec une interface « Short Look » Diffusion d’une notification « Long Look » si on l’a ajouté à l’app watch : • Static notification • Dynamic notification Short Look
  • 26. 26 13.2. NOTIFICATIONS Diffusion d’une notification « Long Look ». Static ou Dynamic. Configurer des interfaces de notifications différentes par Category Custom Long Look
  • 27. 27 13.3. NOTIFICATIONS Tests { "aps": { "alert": { "body": "Your Booking is Available", "title": "Optional title" }, "category": "watch_booking_checkin" }, "WatchKit Simulator Actions": [ { "title": "Open App", "identifier": "openAppButtonAction" } ....
  • 28. www.useradgents.com A USER INTERFACE IS LIKE A JOKE. IF YOU HAVE TO EXPLAIN IT, IT’S NOT THAT GOOD. ‘ ’ MERCI Benoit CAPALLERE Joffrey BOCQUET
  • 29. 8 rue de la Rochefoucauld 75009 PARIS +33 1 77 75 65 90 uainfo@useradgents.com www.useradgents.com @useradgentswww.joshfire.com @joshfire userADgents en chiffres : Que faisons-nous ? Accompagnement stratégique Etude de marché, benchmark, audit Formation Recherche et innovation CONSEIL Design Thinking Recherche utilisateurs Ateliers d’idéation Design graphique des interfaces Test & Learn UX / DESIGN Applications natives (iOS/Android/Windows Phone) Web responsive & adaptive Back-end Gestion des stores DÉVELOPPEMENT Publicité mobile (media & audience planning) App Store optimisation Campagnes Drive to store Interaction in store PROMOTION 6 ans d’existence 30 experts 14 awards userADgents est une agence conseil « mobile first » qui aide les marques à définir leur stratégie, leur design, à développer & promouvoir leurs services et produits par le biais d’applications & de sites pour smartphones, tablettes & objets connectés. Nous sommes partenaires avec Joshfire, la 1ère agence d’iOT et nous dirigeons la Mobile Marketing Association. Qui sommes-nous ?
  • 30. 8 rue de la Rochefoucauld 75009 PARIS +33 1 77 75 65 90 uainfo@useradgents.com www.useradgents.com @useradgentswww.joshfire.com @joshfire Que faisons-nous ? IDEATION DESIGN PROTOTYPAGE INDUSTRIALISATION Fondée en 2010, l’agence Joshfire est spécialisée dans la création d’objets connectés et expériences interactives sur mesure. Nos fondamentaux sont l’expérience utilisateur, le design et l’ergonomie. Nous sommes obsédés par chaque détail et préférons la qualité à la quantité. Nous sommes partenaires avec userADgents, une agence conseil « mobile first ». Qui sommes-nous ? Nous mêlons notre expérience et expertise à votre connaissance et vision du métier pour créer des concepts innovants. Assistés par de vrais designers industriels & spécialistes dans les objets connectés, nous savons évaluer les solutions les plus pertinentes. Pour valider les idées, nous les prototypes avec nos experts en électrotechniques. L’accomplissement d’un processus créatif agile c’est de voir votre produit en magasin. c’est aussi notre satisfaction.