SlideShare a Scribd company logo
T W O R Z E N I E A P L I K A C J I N A
P L AT F O R M Ę WAT C H O S 2
S M A R T WA T C H W W Y D A N I U A P P L E
K R Ó T K A A G E N D A
• Dlaczego Swift (w GetResponse)?
• Różnice w projektowaniu aplikacji na
watchOS2
• Lifecycle i Komunikacja w aplikacjach
na tej platformie
• Implementacja aplikacji GetResponse
na watchOS2 oraz napotkane problemy
• Glances & Complications
• Co jest nie tak z tworzeniem aplikacji na
Apple Watcha?
D L A C Z E G O S W I F T ?
Mimo tego, że Apple chwaliło się, ze aplikacja WWDC była
napisana w Swifcie, tak naprawdę tylko 3 z 13 klas w całej
aplikacji było napisane w Swifcie.
Jedyna aplikacja w pełni napisana w Swifcie w systemie iOS to
systemowy Kalkulator.
C Z Y M WAT C H R Ó Ż N I S I Ę O D I P H O N E ?
P R O J E K T O WA N I E A P L I K A C J I
O C Z Y M P O W I N N I Ś M Y PA M I Ę TA Ć P O D C Z A S
P R O J E K T O WA N I A   A P L I K A C J I N A A P P L E WAT C H ?
• Ma być to rozszerzenie najważniejszych funkcji
aplikacji, a nie jej lustrzana kopia
• Użytkownik ma korzystać z aplikacji góra kilka(naście)
sekund!
• W komunikacji nie powinnismy wysyłać dużych zbiorów
danych ze względu na ograniczony tzw. „daily
budget” narzucony przez Apple
O R Ó Ż N I C A C H W
P R O J E K T O WA N I U I N T E R F E J S Ó W
G D Z I E M O J E W I D O K I , C Z Y L I
R Ó Ż N I C E M I Ę D Z Y P R O J E K T O WA N I E M
I N T E R F E J S Ó W
• Największy problem - brak UIView który jest postawą wszystkich widoków w
normalnym iOS, ogranicza ilość bibliotek z których można skorzystać
• Brak natywnych animacji - jedynie animacje poklatkowe zlozone z obrazkow
• Nie ma dowolności w tworzeniu interfejsu, wszystkie elementy układamy na
tzw. siatce, w następujących po sobie grupach interfejsu
(WKInterfaceGroup)
• Ilość elementów interfejsu jest ograniczona do odpowiedników na Apple
Watch
• W przypadku Glances i Complications sytuacja jest jeszcze bardziej
utrudniona, ale o tym potem
K O M U N I K A C J A I
L I F E C Y C L E
B U D O WA A P L I K A C J I
L I F E C Y C L E A P L I K A C J I
L I F E C Y C L E K O N T R O L E R A
L I F E C Y C L E - N A C O U WA Ż A Ć
• W przypadku gdy korzystamy
z interfejsu typu page-based,
podczas uruchamiania
interefejsu aplikacja wywoła
willActivate i
willDeactivate dla
każdego kontrolera
znajdującego się na liście -
by przygotować cache
widoków
K O M U N I K A C J A Z E G A R K A I I P H O N E
C A Ł O Ś Ć K O M U N I K A C J I M A O D B Y WA Ć S I Ę A S Y N C H R O N I C Z N I E
P R Z E D K O R Z Y S TA N I E M Z N I E K T Ó RY C H M E T O D K O M U N I K A C J I ,
Z E G A R E K I T E L E F O N M U S Z Ą D Z I E L I Ć A K T Y W N Ą S E S J Ę
B L U E T O O T H
K O M U N I K A C J A - D O S T Ę P N E M E T O D Y
u p d a t e A p p l i c a t i o n C o n t e x t
Do wykonywania update kontekstu aplikacji, niezależnie od stanu
aktualnej sesji komunikacji - w przypadku utraty połączenia,
wiadomości są kolejkowane. Komunikacja jednokierunkowa.
t r a n s f e r F i l e
Do asynchronicznego przesyłania plików między telefonem a
zegarkiem.
s e n d M e s s a g e
Do asynchronicznego przesyłania danych między zegarkiem a
telefonem tylko podczas aktywnej sesji Bluetooth, najczęściej
wykorzystywana, wiadomości mogą się powtarzać. Komunikacja jest
dwukierunkowa - metoda zawiera replyHandler
A P L I K A C J A G E T R E S P O N S E N A
WAT C H O S 2
P R Z Y K Ł A D Z Ż Y C I A
C O M P L I C AT I O N S
N I E S K O M P L I K O WA N E
C Z Y M I J A K W Y G L Ą D A J Ą
C O M P L I C A T I O N S
P L U S Y I M I N U S Y
C O M P L I C A T I O N S
• Predefiniowane
templatki
• Klasy typu Provider
do formatowania
tekstu w zależności od
typu
• Time Travel
• Time Budget
• Czas odpowiedzi z
telefonu/API zrywa
połączenia
• Nie można
określić dokładnego
czasu odświeżenia
danych
T I M E T R AV E L
C O M P L I C A T I O N S
G L A N C E S
TA K I D U Ż Y W I D G E T
C Z Y M S Ą ?
G L A N C E S
Glances to duże widgety które wyświetlają się po
wykonaniu gestu na ekranie głównym zegarka - mają być
najszybszym sposobem na dotarcie do najważniejszej
informacji z naszej aplikacji
Technicznie to jeden dodatkowy kontroler którego
metoda willActivate jest wywoływana za każdym
razem gdy użytkownik chce skorzystać z Glance.
P L U S Y
G L A N C E S
• Łatwość implementacji
- jeden controller
• Prostota użycia
• Wysoko oceniany przez
użytkowników feature -
must have!
M I N U S Y
G L A N C E S
• Predefiniowane
templatki - aby
zrealizować mockup
graficzny należy znależć
odpowiedni layout
• Trudny w testowaniu -
potrzebny osobny
scheme który nie zawsze
chce dobrze działać
N A P O T K A N E P R O B L E M Y P O D C Z A S
T W O R Z E N I A A P L I K A C J I
C o c o a P o d s ( i O S d e p e n d e n c y m a n a g e r )
Aby korzystać z CocoaPods zarówno w Swifcie jak i Objective-C, w ustawieniach
należało dodać dyrektywę use_frameworks! co wprowadza sporo
zamieszania w projekcie
Ty p y d a n y c h n a s t y k u j ę z y k ó w S w i f t / O b j e c t i v e - C
Ze względu na różnice językowe, nie mogliśmy skorzystać z modeli używanych w
głównym projekcie (brak odpowiednika JsonModel w Swifcie)
Przesyłanie danych między telefonem/zegarkiem odbywa się za pomocą
przesyłanych słowników (tablic wielowymiarowych)
Niestety i tutaj pojawiał się problem - gdy wysyłaliśmy nieodpowiedni typ danych
liczbowych wewnątrz słownika, liczba zero była traktowana jako null po
konwersji danych na Swift’a
N A P O T K A N E P R O B L E M Y P O D C Z A S
T W O R Z E N I A A P L I K A C J I C . D .
P ro b l e m y z k o m u n i k a c j ą
Gdy korzystamy z WatchConnectivity, nie mamy dostępu do informacji dotyczących
tzw. „daily budget” - czyli dziennego/godzinnego limitu odświeżania danych oraz
ogólnej komunikacji między zegarkiem a telefonem
Częste wysyłanie dużych zbiorów danych powoduje zerwanie sesji między zegarkiem
a telefonem i brak reakcji na to zachowanie ze strony aplikacji.
O d s w i e ż a n i e C o m p l i c a t i o n s
W y k re s n a G l a n c e s
D E V E L O P M E N T E M A P L I K A C J I
N A A P P L E WAT C H ?
C O J E S T N I E TA K Z
C O J E S T N I E TA K Z T W O R Z E N I E M
A P L I K A C J I N A WAT C H O S 2 ?
• Symulator i jego błędy
• Uruchamianie debugowe na prawdziwym urządzeniu to droga przez mękę
• Debugowanie dwóch urządzeń na raz (aplikacji i zegarka), wymaga
podłączenia się do procesu, co nie zawsze działa
• Problemy z komunikacją między symulatorami
• Mało wartościowej dokumentacji od developerów
• Nieudokumentowany time budget oraz ograniczenie wielkości wiadomości
• Jeśli aplikacja była wcześniej pisana w Objective-C, a zegarek pisany jest w
Swifcie, to czeka Cię droga przez piekło
P Y TA N I A ?
@ m ko l e k / m ko l e k @ g e t re s p o n s e . c o m

More Related Content

Similar to Tworzenie aplikacji na platformę watchOS2

MVP - Model View Presenter (polish)
MVP - Model View Presenter (polish)MVP - Model View Presenter (polish)
MVP - Model View Presenter (polish)
Przemyslaw Lusnia
 
[Request 2017] Przygotuj się do zbierania wymagań. Czy wiesz czego nie wiesz?
[Request 2017] Przygotuj się do zbierania wymagań. Czy wiesz czego nie wiesz?[Request 2017] Przygotuj się do zbierania wymagań. Czy wiesz czego nie wiesz?
[Request 2017] Przygotuj się do zbierania wymagań. Czy wiesz czego nie wiesz?
Stowarzyszenie Jakości Systemów Informatycznych (SJSI)
 
CI oraz CD w złożonym projekcie o małym budżecie
CI oraz CD w złożonym projekcie o małym budżecieCI oraz CD w złożonym projekcie o małym budżecie
CI oraz CD w złożonym projekcie o małym budżecie
Grzegorz Godlewski
 
Jaki framework wybrać
Jaki framework wybraćJaki framework wybrać
Jaki framework wybrać
Paweł Tekliński
 
Responsywność - jak zacząć? - Wiesław Kotecki, Piotr Słowik, Uselab
Responsywność - jak zacząć? - Wiesław Kotecki, Piotr Słowik, UselabResponsywność - jak zacząć? - Wiesław Kotecki, Piotr Słowik, Uselab
Responsywność - jak zacząć? - Wiesław Kotecki, Piotr Słowik, Uselab
Sektor 3.0
 
Sentio
SentioSentio
Architektura z bliska i daleka #CodeteCon
Architektura z bliska i daleka #CodeteConArchitektura z bliska i daleka #CodeteCon
Architektura z bliska i daleka #CodeteCon
Paweł Janusz
 
Jak stworzyć udany system informatyczny
Jak stworzyć udany system informatycznyJak stworzyć udany system informatyczny
Jak stworzyć udany system informatyczny
qbeuek
 
university day 1
university day 1university day 1
university day 1
Sławomir Borowiec
 
Presentation about AVLRescue - Android application for detecting avlanches (i...
Presentation about AVLRescue - Android application for detecting avlanches (i...Presentation about AVLRescue - Android application for detecting avlanches (i...
Presentation about AVLRescue - Android application for detecting avlanches (i...
wm36
 
Narzędzie content marketera - czy możemy bez nich żyć?
Narzędzie content marketera - czy możemy bez nich żyć?Narzędzie content marketera - czy możemy bez nich żyć?
Narzędzie content marketera - czy możemy bez nich żyć?
Stowarzyszenie Content Marketing Polska
 
XVI Targi eHandlu - Global4Net - Andrzej Szylar " Jak Progressive Web App zmi...
XVI Targi eHandlu - Global4Net - Andrzej Szylar " Jak Progressive Web App zmi...XVI Targi eHandlu - Global4Net - Andrzej Szylar " Jak Progressive Web App zmi...
XVI Targi eHandlu - Global4Net - Andrzej Szylar " Jak Progressive Web App zmi...
ecommerce poland expo
 
ELO DMS - prezentacja polska
ELO DMS - prezentacja polskaELO DMS - prezentacja polska
ELO DMS - prezentacja polskaWojciech Hodura
 
Produkcja aplikacji internetowych
Produkcja aplikacji internetowychProdukcja aplikacji internetowych
Produkcja aplikacji internetowych
Tomasz Borowski
 
Praktyczne aspekty projektów aplikacji mobilnych
Praktyczne aspekty projektów aplikacji mobilnychPraktyczne aspekty projektów aplikacji mobilnych
Praktyczne aspekty projektów aplikacji mobilnych
Maciej Michałek
 
Programowanie Komponentowe: #3 Podstawy programowania komponentów
Programowanie Komponentowe: #3 Podstawy programowania komponentówProgramowanie Komponentowe: #3 Podstawy programowania komponentów
Programowanie Komponentowe: #3 Podstawy programowania komponentówMikołaj Olszewski
 
Programowanie na wiele platform mobilnych - 2012
Programowanie na wiele platform mobilnych - 2012Programowanie na wiele platform mobilnych - 2012
Programowanie na wiele platform mobilnych - 2012
Cezary Walenciuk
 
Internetowy przybornik - narzędzia, które poprawią Twoją efektywność
Internetowy przybornik - narzędzia, które poprawią Twoją efektywnośćInternetowy przybornik - narzędzia, które poprawią Twoją efektywność
Internetowy przybornik - narzędzia, które poprawią Twoją efektywność
Oscar Rak
 
Architektura aplikacji android
Architektura aplikacji androidArchitektura aplikacji android
Architektura aplikacji android
Sages
 
Czy Mobile może uratować Świat?
Czy Mobile może uratować Świat? Czy Mobile może uratować Świat?
Czy Mobile może uratować Świat?
GoldenSubmarine – niezależna agencja postdigitalowa.
 

Similar to Tworzenie aplikacji na platformę watchOS2 (20)

MVP - Model View Presenter (polish)
MVP - Model View Presenter (polish)MVP - Model View Presenter (polish)
MVP - Model View Presenter (polish)
 
[Request 2017] Przygotuj się do zbierania wymagań. Czy wiesz czego nie wiesz?
[Request 2017] Przygotuj się do zbierania wymagań. Czy wiesz czego nie wiesz?[Request 2017] Przygotuj się do zbierania wymagań. Czy wiesz czego nie wiesz?
[Request 2017] Przygotuj się do zbierania wymagań. Czy wiesz czego nie wiesz?
 
CI oraz CD w złożonym projekcie o małym budżecie
CI oraz CD w złożonym projekcie o małym budżecieCI oraz CD w złożonym projekcie o małym budżecie
CI oraz CD w złożonym projekcie o małym budżecie
 
Jaki framework wybrać
Jaki framework wybraćJaki framework wybrać
Jaki framework wybrać
 
Responsywność - jak zacząć? - Wiesław Kotecki, Piotr Słowik, Uselab
Responsywność - jak zacząć? - Wiesław Kotecki, Piotr Słowik, UselabResponsywność - jak zacząć? - Wiesław Kotecki, Piotr Słowik, Uselab
Responsywność - jak zacząć? - Wiesław Kotecki, Piotr Słowik, Uselab
 
Sentio
SentioSentio
Sentio
 
Architektura z bliska i daleka #CodeteCon
Architektura z bliska i daleka #CodeteConArchitektura z bliska i daleka #CodeteCon
Architektura z bliska i daleka #CodeteCon
 
Jak stworzyć udany system informatyczny
Jak stworzyć udany system informatycznyJak stworzyć udany system informatyczny
Jak stworzyć udany system informatyczny
 
university day 1
university day 1university day 1
university day 1
 
Presentation about AVLRescue - Android application for detecting avlanches (i...
Presentation about AVLRescue - Android application for detecting avlanches (i...Presentation about AVLRescue - Android application for detecting avlanches (i...
Presentation about AVLRescue - Android application for detecting avlanches (i...
 
Narzędzie content marketera - czy możemy bez nich żyć?
Narzędzie content marketera - czy możemy bez nich żyć?Narzędzie content marketera - czy możemy bez nich żyć?
Narzędzie content marketera - czy możemy bez nich żyć?
 
XVI Targi eHandlu - Global4Net - Andrzej Szylar " Jak Progressive Web App zmi...
XVI Targi eHandlu - Global4Net - Andrzej Szylar " Jak Progressive Web App zmi...XVI Targi eHandlu - Global4Net - Andrzej Szylar " Jak Progressive Web App zmi...
XVI Targi eHandlu - Global4Net - Andrzej Szylar " Jak Progressive Web App zmi...
 
ELO DMS - prezentacja polska
ELO DMS - prezentacja polskaELO DMS - prezentacja polska
ELO DMS - prezentacja polska
 
Produkcja aplikacji internetowych
Produkcja aplikacji internetowychProdukcja aplikacji internetowych
Produkcja aplikacji internetowych
 
Praktyczne aspekty projektów aplikacji mobilnych
Praktyczne aspekty projektów aplikacji mobilnychPraktyczne aspekty projektów aplikacji mobilnych
Praktyczne aspekty projektów aplikacji mobilnych
 
Programowanie Komponentowe: #3 Podstawy programowania komponentów
Programowanie Komponentowe: #3 Podstawy programowania komponentówProgramowanie Komponentowe: #3 Podstawy programowania komponentów
Programowanie Komponentowe: #3 Podstawy programowania komponentów
 
Programowanie na wiele platform mobilnych - 2012
Programowanie na wiele platform mobilnych - 2012Programowanie na wiele platform mobilnych - 2012
Programowanie na wiele platform mobilnych - 2012
 
Internetowy przybornik - narzędzia, które poprawią Twoją efektywność
Internetowy przybornik - narzędzia, które poprawią Twoją efektywnośćInternetowy przybornik - narzędzia, które poprawią Twoją efektywność
Internetowy przybornik - narzędzia, które poprawią Twoją efektywność
 
Architektura aplikacji android
Architektura aplikacji androidArchitektura aplikacji android
Architektura aplikacji android
 
Czy Mobile może uratować Świat?
Czy Mobile może uratować Świat? Czy Mobile może uratować Świat?
Czy Mobile może uratować Świat?
 

Tworzenie aplikacji na platformę watchOS2

  • 1. T W O R Z E N I E A P L I K A C J I N A P L AT F O R M Ę WAT C H O S 2 S M A R T WA T C H W W Y D A N I U A P P L E
  • 2. K R Ó T K A A G E N D A • Dlaczego Swift (w GetResponse)? • Różnice w projektowaniu aplikacji na watchOS2 • Lifecycle i Komunikacja w aplikacjach na tej platformie • Implementacja aplikacji GetResponse na watchOS2 oraz napotkane problemy • Glances & Complications • Co jest nie tak z tworzeniem aplikacji na Apple Watcha?
  • 3. D L A C Z E G O S W I F T ? Mimo tego, że Apple chwaliło się, ze aplikacja WWDC była napisana w Swifcie, tak naprawdę tylko 3 z 13 klas w całej aplikacji było napisane w Swifcie. Jedyna aplikacja w pełni napisana w Swifcie w systemie iOS to systemowy Kalkulator.
  • 4. C Z Y M WAT C H R Ó Ż N I S I Ę O D I P H O N E ? P R O J E K T O WA N I E A P L I K A C J I
  • 5. O C Z Y M P O W I N N I Ś M Y PA M I Ę TA Ć P O D C Z A S P R O J E K T O WA N I A   A P L I K A C J I N A A P P L E WAT C H ? • Ma być to rozszerzenie najważniejszych funkcji aplikacji, a nie jej lustrzana kopia • Użytkownik ma korzystać z aplikacji góra kilka(naście) sekund! • W komunikacji nie powinnismy wysyłać dużych zbiorów danych ze względu na ograniczony tzw. „daily budget” narzucony przez Apple
  • 6. O R Ó Ż N I C A C H W P R O J E K T O WA N I U I N T E R F E J S Ó W G D Z I E M O J E W I D O K I , C Z Y L I
  • 7. R Ó Ż N I C E M I Ę D Z Y P R O J E K T O WA N I E M I N T E R F E J S Ó W • Największy problem - brak UIView który jest postawą wszystkich widoków w normalnym iOS, ogranicza ilość bibliotek z których można skorzystać • Brak natywnych animacji - jedynie animacje poklatkowe zlozone z obrazkow • Nie ma dowolności w tworzeniu interfejsu, wszystkie elementy układamy na tzw. siatce, w następujących po sobie grupach interfejsu (WKInterfaceGroup) • Ilość elementów interfejsu jest ograniczona do odpowiedników na Apple Watch • W przypadku Glances i Complications sytuacja jest jeszcze bardziej utrudniona, ale o tym potem
  • 8. K O M U N I K A C J A I L I F E C Y C L E B U D O WA A P L I K A C J I
  • 9. L I F E C Y C L E A P L I K A C J I
  • 10. L I F E C Y C L E K O N T R O L E R A
  • 11. L I F E C Y C L E - N A C O U WA Ż A Ć • W przypadku gdy korzystamy z interfejsu typu page-based, podczas uruchamiania interefejsu aplikacja wywoła willActivate i willDeactivate dla każdego kontrolera znajdującego się na liście - by przygotować cache widoków
  • 12. K O M U N I K A C J A Z E G A R K A I I P H O N E C A Ł O Ś Ć K O M U N I K A C J I M A O D B Y WA Ć S I Ę A S Y N C H R O N I C Z N I E P R Z E D K O R Z Y S TA N I E M Z N I E K T Ó RY C H M E T O D K O M U N I K A C J I , Z E G A R E K I T E L E F O N M U S Z Ą D Z I E L I Ć A K T Y W N Ą S E S J Ę B L U E T O O T H
  • 13. K O M U N I K A C J A - D O S T Ę P N E M E T O D Y u p d a t e A p p l i c a t i o n C o n t e x t Do wykonywania update kontekstu aplikacji, niezależnie od stanu aktualnej sesji komunikacji - w przypadku utraty połączenia, wiadomości są kolejkowane. Komunikacja jednokierunkowa. t r a n s f e r F i l e Do asynchronicznego przesyłania plików między telefonem a zegarkiem. s e n d M e s s a g e Do asynchronicznego przesyłania danych między zegarkiem a telefonem tylko podczas aktywnej sesji Bluetooth, najczęściej wykorzystywana, wiadomości mogą się powtarzać. Komunikacja jest dwukierunkowa - metoda zawiera replyHandler
  • 14. A P L I K A C J A G E T R E S P O N S E N A WAT C H O S 2 P R Z Y K Ł A D Z Ż Y C I A
  • 15. C O M P L I C AT I O N S N I E S K O M P L I K O WA N E
  • 16. C Z Y M I J A K W Y G L Ą D A J Ą C O M P L I C A T I O N S
  • 17. P L U S Y I M I N U S Y C O M P L I C A T I O N S • Predefiniowane templatki • Klasy typu Provider do formatowania tekstu w zależności od typu • Time Travel • Time Budget • Czas odpowiedzi z telefonu/API zrywa połączenia • Nie można określić dokładnego czasu odświeżenia danych
  • 18. T I M E T R AV E L C O M P L I C A T I O N S
  • 19. G L A N C E S TA K I D U Ż Y W I D G E T
  • 20. C Z Y M S Ą ? G L A N C E S Glances to duże widgety które wyświetlają się po wykonaniu gestu na ekranie głównym zegarka - mają być najszybszym sposobem na dotarcie do najważniejszej informacji z naszej aplikacji Technicznie to jeden dodatkowy kontroler którego metoda willActivate jest wywoływana za każdym razem gdy użytkownik chce skorzystać z Glance.
  • 21. P L U S Y G L A N C E S • Łatwość implementacji - jeden controller • Prostota użycia • Wysoko oceniany przez użytkowników feature - must have!
  • 22. M I N U S Y G L A N C E S • Predefiniowane templatki - aby zrealizować mockup graficzny należy znależć odpowiedni layout • Trudny w testowaniu - potrzebny osobny scheme który nie zawsze chce dobrze działać
  • 23. N A P O T K A N E P R O B L E M Y P O D C Z A S T W O R Z E N I A A P L I K A C J I C o c o a P o d s ( i O S d e p e n d e n c y m a n a g e r ) Aby korzystać z CocoaPods zarówno w Swifcie jak i Objective-C, w ustawieniach należało dodać dyrektywę use_frameworks! co wprowadza sporo zamieszania w projekcie Ty p y d a n y c h n a s t y k u j ę z y k ó w S w i f t / O b j e c t i v e - C Ze względu na różnice językowe, nie mogliśmy skorzystać z modeli używanych w głównym projekcie (brak odpowiednika JsonModel w Swifcie) Przesyłanie danych między telefonem/zegarkiem odbywa się za pomocą przesyłanych słowników (tablic wielowymiarowych) Niestety i tutaj pojawiał się problem - gdy wysyłaliśmy nieodpowiedni typ danych liczbowych wewnątrz słownika, liczba zero była traktowana jako null po konwersji danych na Swift’a
  • 24. N A P O T K A N E P R O B L E M Y P O D C Z A S T W O R Z E N I A A P L I K A C J I C . D . P ro b l e m y z k o m u n i k a c j ą Gdy korzystamy z WatchConnectivity, nie mamy dostępu do informacji dotyczących tzw. „daily budget” - czyli dziennego/godzinnego limitu odświeżania danych oraz ogólnej komunikacji między zegarkiem a telefonem Częste wysyłanie dużych zbiorów danych powoduje zerwanie sesji między zegarkiem a telefonem i brak reakcji na to zachowanie ze strony aplikacji. O d s w i e ż a n i e C o m p l i c a t i o n s W y k re s n a G l a n c e s
  • 25. D E V E L O P M E N T E M A P L I K A C J I N A A P P L E WAT C H ? C O J E S T N I E TA K Z
  • 26. C O J E S T N I E TA K Z T W O R Z E N I E M A P L I K A C J I N A WAT C H O S 2 ? • Symulator i jego błędy • Uruchamianie debugowe na prawdziwym urządzeniu to droga przez mękę • Debugowanie dwóch urządzeń na raz (aplikacji i zegarka), wymaga podłączenia się do procesu, co nie zawsze działa • Problemy z komunikacją między symulatorami • Mało wartościowej dokumentacji od developerów • Nieudokumentowany time budget oraz ograniczenie wielkości wiadomości • Jeśli aplikacja była wcześniej pisana w Objective-C, a zegarek pisany jest w Swifcie, to czeka Cię droga przez piekło
  • 27. P Y TA N I A ? @ m ko l e k / m ko l e k @ g e t re s p o n s e . c o m