Upload
the-software-house
View
364
Download
0
Embed Size (px)
Citation preview
Programowanie aplikacji na Apple Watch
Aleksander Kania [email protected] Developer
@aleksanderkania
Watch Sport Watch Watch Edition
Watch Sport Watch Watch Edition
Od 1699 PLN
Watch Sport Watch Watch Edition
Od 1699 PLN Od 2749 PLN
Watch Sport Watch Watch Edition
Od 1699 PLN Od 2749 PLN
Watch Sport Watch Watch Edition
Od 1699 PLN Od 2749 PLN Od 47 000 PLN
Watch Sport Watch Watch Edition
Od 1699 PLN Od 2749 PLN Od 47 000 PLN
- Wysyłanie i odbieranie smsów !- Odbieranie i prowadzenie rozmów !- Sterowanie kamerą iPhone'a !- Mierzenie tętna
Udostępnianie swojego tętna znajomym
... ale tylko posiadającym Apple Watcha
Amazing.
Brak GPS'a.
WatchKit
HealthKit
Core Data Core Location
HomeKit
https://developer.apple.com/watchkit/
Standardowe aplikacje
https://developer.apple.com/watchkit/
Standardowe aplikacje
Aplikacje posiadające w pełni funkcjonalny interfejs użytkownika.
Glances
Glances
Ekran aplikacji wyświetlający najbardziej istotne rzeczy np. godzinę w Warszawie i Moskwie.
Notyfikacje
Standardowe notyfikacje mówiące nam np. o nadchodzącej wiadomości lub połączeniu. Mogą one być statyczne jak i
dynamiczne.
Liczenie przebytego dystansu
Wyświetlanie przewidywanego czasu dla zadanego dystansu
Wyliczanie maksymalnego minutowego poboru tlenu (v02max)
Licznik wyświetlajacy przebyty dystans i czas
Licznik wyświetlajacy przebyty dystans i czas
Wyświetlanie aktualnego wskaźnika vo2max
Architektura aplikacji watchOS
https://developer.apple.com/library/watchos/documentation/General/Conceptual/AppleWatch2TransitionGuide/index.html#//apple_ref/doc/uid/TP40015234-CH2-SW1
Cykl życia aplikacji watchOS
https://developer.apple.com/library/watchos/documentation/General/Conceptual/AppleWatch2TransitionGuide/UpdatetheAppCode.html#//apple_ref/doc/uid/TP40015234-CH6-SW2
iOS ViewController
watchOS InterfaceController
InterfaceController: WKInterfaceController {
InterfaceController: WKInterfaceController {
func awakeWithContext(context: AnyObject?) {
InterfaceController: WKInterfaceController {
func awakeWithContext(context: AnyObject?) {func willActivate() {
InterfaceController: WKInterfaceController {
func awakeWithContext(context: AnyObject?) {func willActivate() {func didDeactivate() {
DEMO
Problem z synchronizacją
Rozwiązanie?
Istnieje.
Watch Connectivity Framework
Watch Connectivity Frameworkimport WatchConnectivity
if(WCSession.isSupported()) {
if(WCSession.isSupported()) {let session = WCSession.defaultSession()
if(WCSession.isSupported()) {let session = WCSession.defaultSession() session.delegate = self
if(WCSession.isSupported()) {let session = WCSession.defaultSession() session.delegate = self session.activateSession()
}
do {self.contextDictionary["timeValue"] = self.currentTimeLabel.text
self.contextDictionary["timerCount"] = self.timerCountlet context = self.contextDictionarytry WCSession.defaultSession().
updateApplicationContext(context)
} catch {
}
Apple Watch side
func session(session: WCSession, didReceiveApplicationContext applicationContext: [String : AnyObject]) {
func session(session: WCSession, didReceiveApplicationContext applicationContext: [String : AnyObject]) {
dispatch_async(dispatch_get_main_queue()) {
func session(session: WCSession, didReceiveApplicationContext applicationContext: [String : AnyObject]) {
dispatch_async(dispatch_get_main_queue()) {self.currentTimeLabel.setText(applicationContext["timeValue"] as? String)
func session(session: WCSession, didReceiveApplicationContext applicationContext: [String : AnyObject]) {
dispatch_async(dispatch_get_main_queue()) {self.currentTimeLabel.setText(applicationContext["timeValue"] as? String)
self.timerCount = applicationContext["timerCount"] as? Int}
Pytania?