Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Xebia WatchKit TechEvent
Search
Simone Civetta
December 03, 2014
Programming
0
170
Xebia WatchKit TechEvent
Simone Civetta
December 03, 2014
Tweet
Share
More Decks by Simone Civetta
See All by Simone Civetta
2021: CI for Mobile: State of The Art
viteinfinite
0
370
MVI : une architecture robuste et moderne pour vos applications mobiles
viteinfinite
2
520
Cross-Platform Modules with Kotlin/Native (v. 2018.10)
viteinfinite
0
98
Face Recognition with Vision & Core ML
viteinfinite
1
1.1k
Shared Cross-Platform Modules with Kotlin/Native
viteinfinite
1
310
Server-Side Swift @ Devoxx FR
viteinfinite
0
110
Swift on the Raspberry PI
viteinfinite
0
120
Server-Side Swift
viteinfinite
0
76
Be the Quality You Want to See in Your App [Swift Edition]
viteinfinite
1
420
Other Decks in Programming
See All in Programming
認証・認可の基本を学ぼう後編
kouyuume
0
250
Navigation 3: 적응형 UI를 위한 앱 탐색
fornewid
1
450
実はマルチモーダルだった。ブラウザの組み込みAI🧠でWebの未来を感じてみよう #jsfes #gemini
n0bisuke2
3
1.3k
Graviton と Nitro と私
maroon1st
0
130
GoLab2025 Recap
kuro_kurorrr
0
780
Giselleで作るAI QAアシスタント 〜 Pull Requestレビューに継続的QAを
codenote
0
290
Full-Cycle Reactivity in Angular: SignalStore mit Signal Forms und Resources
manfredsteyer
PRO
0
170
AIエンジニアリングのご紹介 / Introduction to AI Engineering
rkaga
8
3.3k
AI Agent Dojo #4: watsonx Orchestrate ADK体験
oniak3ibm
PRO
0
110
ゲームの物理 剛体編
fadis
0
370
脳の「省エネモード」をデバッグする ~System 1(直感)と System 2(論理)の切り替え~
panda728
PRO
0
120
ローカルLLMを⽤いてコード補完を⾏う VSCode拡張機能を作ってみた
nearme_tech
PRO
0
160
Featured
See All Featured
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
0
63
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
1k
Music & Morning Musume
bryan
46
7k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
400
A designer walks into a library…
pauljervisheath
210
24k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
0
130
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.4k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.3k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
The Limits of Empathy - UXLibs8
cassininazir
1
190
Facilitating Awesome Meetings
lara
57
6.7k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
61
47k
Transcript
None
Développeurs ?
Watch
Le produit
None
Modèles —Sport (349$) —Classic —Edition Versions, 2 tailles : —42mm
(312x390px ~335ppi) —38mm (272x340px ~335ppi)
Personnalisation
OS
Apple Watch et iOS Compatible uniquement avec iOS 8.2+
Interface
Interface —1 couronne (digital crown) —sélection —zoom in/out —1 bouton
physique (conversation button) —favoris — Pay
Interface —Siri
Interface —Feedback haptique
Interface graphique
Interface graphique —Home screen —Glances —Applications
Home screen
Glances
Capteurs —Accéleromètre —Gyroscope —GPS —Moniteur cardiaque
Pay
Batterie —~1 jour environ —rechargement avec connecteur magnétique
Date de sortie —Printemps 2015 —(St Valentin ?)
None
Le SDK —Première release le 18 nov. 2014 —Deuxième version
en mi-2015 (WWDC ?)
Les fonctionnalités —Gérer notifications —Écrans glances —Applications non natives1 1
La logique est exécutée sur l'iPhone
Les fonctionnalités / 2 —Applications natives en V2
WatchKit en détail
Aujourd'hui... Une application WatchKit est : —une extension d'une application
iPhone —un écran secondaire
Pour commencer : glossaire —Watch App : executé sur la
montre —Extension : executé sur iPhone
Extensions iOS
Extension iOS / 1
Extension iOS / 2 —L'extension est un applicatif indépendant contenu
dans le bundle d'un .app iOS
Architecture
Architecture / 1 —La Watch App est lancée depuis un
bundle contenant storyboard et ressources statiques
Architecture / 2 —L'interaction de l'utilisateur déclenche l'exécution de code
dans l'extension
None
Interface utilisateur
Interface utilisateur / 1 —L'interface est réalisable seulement via Storyboard
—L'IHM est installée dans la Watch App
Interface utilisateur / 2 —Les Scenes du Storyboard ne peuvent
pas être modifiées par l'extension iPhone à runtime —L'extension peut afficher/cacher des éléments à l'intérieur de la Watch App
Les composants
Les composants / 1 —Les composants WatchKit (buttons, labels, etc)
sont proxifiés —L'extension manipule un objet proxy (WKInterface*) —Il n'est pas possible de créer programmatiquement des éléments visuels
Les composants / 2 —Une extension peut contrôler : —Taille
(Height/Width) —Alpha —Visibilité (propriété hidden) —Hidden = Gone
Les composants / 3 —WKInterfaceController —WKInterfaceGroup —WKInterfaceTable —WKInterfaceButton —WKInterfaceDate —WKInterfaceImage
—WKInterfaceLabel —WKInterfaceMap —WKInterfaceSeparator —WKInterfaceSlider
Les composants / 3 —WKInterfaceController —WKInterfaceGroup —WKInterfaceTable —WKInterfaceButton —WKInterfaceDate —WKInterfaceImage
—WKInterfaceLabel —WKInterfaceMap —WKInterfaceSeparator —WKInterfaceSlider
WKInterfaceController —Équivalent de UIViewController —Un controlleur par écran —Target/Action pattern
—Peu modulaire —Context-based
WKInterfaceController Context —init(context context: AnyObject!) — contextForSegueWithIdentifier(_ :) —pushControllerWithName(_ name:
String!, context context: AnyObject!)
Cycle de vie —WA : Create Storyboard —E : initWithContext:
—E : willActivate —E : action methods —E : didDeactivate
None
WKInterfaceGroup —cf. Layout sur Android —Horizontaux/Verticaux —Taille paramétrable, qui peut
dépendre du contenu/conteneur —Fit content —Relative to container
WKInterfaceTable —Similaires aux tableaux de iOS —Pas de sections /
footers / headers
WKInterfaceTable —Chaque row est associée à un type de row
(rowType) —Chaque rowType est associé à un controller —setNumberOfRows(_:withRowType:) —setRowTypes(_ rowTypes: [AnyObject]!) —table(_ table: WKInterfaceTable!, didSelectRowAtIndex rowIndex:
WKInterfaceTable Toutes les méthodes de délégation de la Table sont
déclarées dans le Controller
None
WKInterfaceMap —Plan statique qui peut contenir max 5. annotations —Dessiné
par l'extension et envoyé ensuite à la Watch App
WKInterfaceDate —Libellé de date avec format paramétrable —La valeur est
calculée directement par la Watch App
Navigation
Navigation —Pop/Push (cf. UINavigationController) —Page-based —Présentation modale
Navigation techniques —Segues —pushControllerWithName(_ name: String!, context context: AnyObject!) —
presentControllerWithName(_:con text:) — presentControllerWithNames(_:co ntexts:)
Notes
Glances —Un écran Glance est une micro- application mono-page —Il
est le launcher d'une application Watch App
Storyboard —Le storyboard est l'outil de définition de l'interface utilisateur
d'une Watch App
Tips 'n Tricks —Utilisez les frameworks dynamiques —Modifiez les propriétés
des Schemes —Activez le mode "External display -> Apple Watch" dans le menu du simulateur
Hands on !