TouchID, Handoff, Spotlight oraz Multitasking: Nowości W Projektowaniu Interf...Maciej Kołek
Prezentacja z drugiej edycji gdańskich spotkań branży UX - TipiUX. Tym razem prezentacja dotyczy nowości w projektowaniu interfejsów mobilnych na platformie iOS.
#MTC2017: Od U do Z - jaka powinna być Twoja aplikacja na platformie iOS? - M...Mobile Trends
Tworzysz aplikację mobilną na platformę iOS i szukasz sposobów na to, by Twoja aplikacja była bardziej konkurencyjna w AppStore? Zanurzmy się w świat funkcji platformy iOS które Twoja aplikacja powinna posiadać. Prelekcja wygłoszona podczas Mobile Trends Conference, 8-10 marca 2017 r. w Krakowie. www.MobileTrends.pl
TipiUX#4: Od pomysłu do wdrożenia - proces projektowania interfejsów aplikacj...Maciej Kołek
Mamy pomysł na aplikację na iPhone i co dalej? Skąd brać inspiracje? Na co najbardziej zwracać uwagę podczas projektowania? Z jakich narzędzi korzystać by usprawnić sobie pracę?
Prezentacja ze spotkania TipiUX#4 które odbyło się w strefie startupów PPNT Gdynia.
Apple Watch - Jak tworzyć aplikacje na SmartWatcha z problemami wieku dziecię...Maciej Kołek
This document discusses developing applications for the Apple Watch. It begins with an overview of the different components of an Apple Watch application, including the app, complications, notifications, and glances. It then covers limitations in Apple Watch app development, such as slow loading times and lack of access to sensors. Tips are provided for designing good Apple Watch interfaces, such as prioritizing simplicity over functionality. Examples of well-designed Apple Watch apps are shown and discussed. The presentation concludes by encouraging learning from the best app designs and following Apple's human interface guidelines.
TouchID, Handoff, Spotlight oraz Multitasking: Nowości W Projektowaniu Interf...Maciej Kołek
Prezentacja z drugiej edycji gdańskich spotkań branży UX - TipiUX. Tym razem prezentacja dotyczy nowości w projektowaniu interfejsów mobilnych na platformie iOS.
#MTC2017: Od U do Z - jaka powinna być Twoja aplikacja na platformie iOS? - M...Mobile Trends
Tworzysz aplikację mobilną na platformę iOS i szukasz sposobów na to, by Twoja aplikacja była bardziej konkurencyjna w AppStore? Zanurzmy się w świat funkcji platformy iOS które Twoja aplikacja powinna posiadać. Prelekcja wygłoszona podczas Mobile Trends Conference, 8-10 marca 2017 r. w Krakowie. www.MobileTrends.pl
TipiUX#4: Od pomysłu do wdrożenia - proces projektowania interfejsów aplikacj...Maciej Kołek
Mamy pomysł na aplikację na iPhone i co dalej? Skąd brać inspiracje? Na co najbardziej zwracać uwagę podczas projektowania? Z jakich narzędzi korzystać by usprawnić sobie pracę?
Prezentacja ze spotkania TipiUX#4 które odbyło się w strefie startupów PPNT Gdynia.
Apple Watch - Jak tworzyć aplikacje na SmartWatcha z problemami wieku dziecię...Maciej Kołek
This document discusses developing applications for the Apple Watch. It begins with an overview of the different components of an Apple Watch application, including the app, complications, notifications, and glances. It then covers limitations in Apple Watch app development, such as slow loading times and lack of access to sensors. Tips are provided for designing good Apple Watch interfaces, such as prioritizing simplicity over functionality. Examples of well-designed Apple Watch apps are shown and discussed. The presentation concludes by encouraging learning from the best app designs and following Apple's human interface guidelines.
Głównym przesłaniem wystąpienia będzie pokazanie kilku błędnych założeń jakie możemy przyjmować jeszcze zanim zaczniemy zbierać wymagania. Wskażę kluczowe aspekty, na które analityk powinien zwracać uwagę na początku swojej pracy aby nie wpaść w pułapkę.
Rozpoczynając analizę, szczególnie w świecie agile, gdy nie ma czasu, zespół czeka, klient oczekuje na efekt właściwie natychmiast, łatwo w zawirowaniu stracić głowę i zapomnieć o takich aspektach jak:
- dla kogo naprawdę robimy zmianę,
- w jakim celu robimy zmianę – czy znamy prawdziwy powód zmian i jaki efekt powinniśmy osiągnąć,
- jaki proces wspieramy zmianą.
Zdarza się nam również dobrać taką technikę zbierania wymagań, która nie doprowadza nas do właściwych odpowiedzi. W wielu przypadkach zadowalamy się tylko przygotowaniem się do wywiadu. Bez zaplanowania swojej pracy w powyżej wymienionych kluczowych aspektach łatwo ograniczyć się tylko do stworzenia wrażenia dobrze zebranych wymagań.
Klient jest zadowolony, niestety na krótko. Za chwilę do zakresu dochodzi kolejna zmiana – okazuje się bowiem, że poprzednio chodziło o coś zupełnie innego. Problemy te wydają się być klasyczne; postawione w prezentacji tezy banalne – jednak w dalszym ciągu spora liczba analityków wpada w pułapkę niewłaściwego pozyskiwania wymagań.
Jakie jest rozwiązanie? Jedni powiedzą – nauczyć się na błędach wynikających z doświadczenia. Warto jednak skorzystać z doświadczeń innych i uczyć się na cudzych błędach. W prezentacji podam kilka rzeczywistych sytuacji projektowych, w których analitycy nie uniknęli błędów.
Jak zorganizować sobie Continuous Integration i Continuous Delivery w projekcie o niezwykle małym budżecie
W trakcie prezentacji dotknięte zostaną następujące zagadnienia:
- sposób organizacji projektu pod kątem wprowadzania CI / CD
- użycie kontenerów w celu przeprowadzania wyżej wymienionych procesów
- zalecenia odnośnie stosowania narzędzi takich jak TeamCity, Docker, Ansible, Git, Make, skrypty Bash, Phing itp.
- wskazanie pułapek o których trzeba pamiętać
Spróbujemy odpowiedzieć na pytanie: Jaki framework będzie dla nas najlepszy? Opowiem dlaczego to pytanie jest takie ważne oraz o tym czego potrzebujemy by znaleźć na nie odpowiedz, która wcale nie jest taka trywialna.
Responsywność - jak zacząć? - Wiesław Kotecki, Piotr Słowik, UselabSektor 3.0
Jakiej struktury informacji użytkownik spodziewa się po mobilnej wersji Twojego serwisu?
Z czym wiąże się przygotowanie strony do stworzenia wersji mobilnej?
Jak myśleć mobilnie?
Jakie narzędzia mają do dyspozycji projektanci stron mobilnych - czego technologicznie nie da się przenieść ze standardowej przeglądarki?
Architektura z bliska i daleka #CodeteConPaweł Janusz
Przegląd najpopularniejszych architektur oprogramowania wraz z ich analizą. Dodatkowo suplement w postaci dobrych praktyk w tworzeniu architektury oprogramowania
Presentation about AVLRescue - Android application for detecting avlanches (i...wm36
More info:
http://avl.wm.lapy.pl/
Mobilny Alarm Lawinowy, czyli aplikacja której zadaniem będzie wykrycie momentu porwania turysty przez lawinę i wezwanie pomocy.
XVI Targi eHandlu - Global4Net - Andrzej Szylar " Jak Progressive Web App zmi...ecommerce poland expo
Opis zalet technologii Progressive Web App oraz tego jak ta technologia wpływa na sposób odbioru treści przez użytkowników. Wady i zalety wdrożeń PWA, przykłady największych wdrożeń, omówienie zasad działania technologii oraz jej przewag nad tradycyjnym modelem wyświetlania treści.
O zagadnieniu:
Czy następuje taki moment w życiu programisty, kiedy może on stwierdzić, że jego warsztat jest już doskonały? Nie, jeżeli pracuje w technologiach internetowych. Ta dziedzina informatyki rozwija się w niesamowicie szybkim tempie, a stworzone wczoraj rozwiązania warto stosować już dziś!
Cel i korzyści spotkania:
Podczas spotkania słuchacze poznają aktualnie wykorzystywane technologie oraz kluczowe umiejętności w produkcji aplikacji internetowych, jak również metody programowania ekstremalnego i techniki zwinnego wytwarzania oprogramowania. Osobom, które dopiero zaczynają swoją przygodę z web development, zostanie przedstawiona propozycja działań, których sumienne podjęcie się gwarantuje odniesienie sukcesu zawodowego.
Prezentujący omówi, co zrobić, aby wytworzenie aplikacji nie stało się sztuką dla sztuki. Uczuli, dlaczego wszystko od analizy powinno się zaczynać i na niej kończyć. Przekona, że mniej może znaczyć więcej, a “mobile” wcale nie musi być taki ruchliwy. Jeśli jesteś ciekawy, jak praktyk z doświadczeniem widzi proces wytwarzania aplikacji mobilnych i na czym może polegać rola analityka w tym procesie, ta prezentacja jest dla Ciebie.
Głównym przesłaniem wystąpienia będzie pokazanie kilku błędnych założeń jakie możemy przyjmować jeszcze zanim zaczniemy zbierać wymagania. Wskażę kluczowe aspekty, na które analityk powinien zwracać uwagę na początku swojej pracy aby nie wpaść w pułapkę.
Rozpoczynając analizę, szczególnie w świecie agile, gdy nie ma czasu, zespół czeka, klient oczekuje na efekt właściwie natychmiast, łatwo w zawirowaniu stracić głowę i zapomnieć o takich aspektach jak:
- dla kogo naprawdę robimy zmianę,
- w jakim celu robimy zmianę – czy znamy prawdziwy powód zmian i jaki efekt powinniśmy osiągnąć,
- jaki proces wspieramy zmianą.
Zdarza się nam również dobrać taką technikę zbierania wymagań, która nie doprowadza nas do właściwych odpowiedzi. W wielu przypadkach zadowalamy się tylko przygotowaniem się do wywiadu. Bez zaplanowania swojej pracy w powyżej wymienionych kluczowych aspektach łatwo ograniczyć się tylko do stworzenia wrażenia dobrze zebranych wymagań.
Klient jest zadowolony, niestety na krótko. Za chwilę do zakresu dochodzi kolejna zmiana – okazuje się bowiem, że poprzednio chodziło o coś zupełnie innego. Problemy te wydają się być klasyczne; postawione w prezentacji tezy banalne – jednak w dalszym ciągu spora liczba analityków wpada w pułapkę niewłaściwego pozyskiwania wymagań.
Jakie jest rozwiązanie? Jedni powiedzą – nauczyć się na błędach wynikających z doświadczenia. Warto jednak skorzystać z doświadczeń innych i uczyć się na cudzych błędach. W prezentacji podam kilka rzeczywistych sytuacji projektowych, w których analitycy nie uniknęli błędów.
Jak zorganizować sobie Continuous Integration i Continuous Delivery w projekcie o niezwykle małym budżecie
W trakcie prezentacji dotknięte zostaną następujące zagadnienia:
- sposób organizacji projektu pod kątem wprowadzania CI / CD
- użycie kontenerów w celu przeprowadzania wyżej wymienionych procesów
- zalecenia odnośnie stosowania narzędzi takich jak TeamCity, Docker, Ansible, Git, Make, skrypty Bash, Phing itp.
- wskazanie pułapek o których trzeba pamiętać
Spróbujemy odpowiedzieć na pytanie: Jaki framework będzie dla nas najlepszy? Opowiem dlaczego to pytanie jest takie ważne oraz o tym czego potrzebujemy by znaleźć na nie odpowiedz, która wcale nie jest taka trywialna.
Responsywność - jak zacząć? - Wiesław Kotecki, Piotr Słowik, UselabSektor 3.0
Jakiej struktury informacji użytkownik spodziewa się po mobilnej wersji Twojego serwisu?
Z czym wiąże się przygotowanie strony do stworzenia wersji mobilnej?
Jak myśleć mobilnie?
Jakie narzędzia mają do dyspozycji projektanci stron mobilnych - czego technologicznie nie da się przenieść ze standardowej przeglądarki?
Architektura z bliska i daleka #CodeteConPaweł Janusz
Przegląd najpopularniejszych architektur oprogramowania wraz z ich analizą. Dodatkowo suplement w postaci dobrych praktyk w tworzeniu architektury oprogramowania
Presentation about AVLRescue - Android application for detecting avlanches (i...wm36
More info:
http://avl.wm.lapy.pl/
Mobilny Alarm Lawinowy, czyli aplikacja której zadaniem będzie wykrycie momentu porwania turysty przez lawinę i wezwanie pomocy.
XVI Targi eHandlu - Global4Net - Andrzej Szylar " Jak Progressive Web App zmi...ecommerce poland expo
Opis zalet technologii Progressive Web App oraz tego jak ta technologia wpływa na sposób odbioru treści przez użytkowników. Wady i zalety wdrożeń PWA, przykłady największych wdrożeń, omówienie zasad działania technologii oraz jej przewag nad tradycyjnym modelem wyświetlania treści.
O zagadnieniu:
Czy następuje taki moment w życiu programisty, kiedy może on stwierdzić, że jego warsztat jest już doskonały? Nie, jeżeli pracuje w technologiach internetowych. Ta dziedzina informatyki rozwija się w niesamowicie szybkim tempie, a stworzone wczoraj rozwiązania warto stosować już dziś!
Cel i korzyści spotkania:
Podczas spotkania słuchacze poznają aktualnie wykorzystywane technologie oraz kluczowe umiejętności w produkcji aplikacji internetowych, jak również metody programowania ekstremalnego i techniki zwinnego wytwarzania oprogramowania. Osobom, które dopiero zaczynają swoją przygodę z web development, zostanie przedstawiona propozycja działań, których sumienne podjęcie się gwarantuje odniesienie sukcesu zawodowego.
Prezentujący omówi, co zrobić, aby wytworzenie aplikacji nie stało się sztuką dla sztuki. Uczuli, dlaczego wszystko od analizy powinno się zaczynać i na niej kończyć. Przekona, że mniej może znaczyć więcej, a “mobile” wcale nie musi być taki ruchliwy. Jeśli jesteś ciekawy, jak praktyk z doświadczeniem widzi proces wytwarzania aplikacji mobilnych i na czym może polegać rola analityka w tym procesie, ta prezentacja jest dla Ciebie.
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
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
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