Wiele się zmieni w nadchodzących miesiącach dla użytkowników iOSa dzięki nowym możliwościom budowania Extensions / Rozszerzeń, dzięki którym aplikacje będą mogły się ze sobą komunikować na różne sposoby. Dotychczas ograniczenia wynikały głównie z sandboxów, w których poszczególne programy były zamknięte – nowe rozwiązanie jednak nie zmniejszy bezpieczeństwa mobilnego system operacyjnego Apple ani prywatności użytkowników. W zapomnienie też prawdopodobnie odejdą niestandardowe sposoby komunikacji przez x-callback-url. Wszystko jednak będzie zależało od kreatynowści developerów – mają teraz kilka miesięcy, aby zacząć wprowadzanie zmian na przyszłość. Nie jest to jednak proste, bo iOS do czasu wydania oficjalnej wersji 8.0 będzie się zmieniał i może się zdarzyć, że będą musieli część swojego kodu przepisać. Realnie rzeczy biorąc spodziewałbym się zaawansowanych rozszerzeń pod koniec 2014 roku.
Extensions oraz ich rodzaje
Extensions w iOS 8 umożliwiają rozszerzanie funkcji aplikacji oraz iOS, ale nie będą to osobne aplikacje jak w przypadku dzisiejszych Safari Extensions… Muszą być częścią istniejących lub nowych aplikacji. Developerzy nie będą też mogli tworzyć “pustych” programów tylko celem stworzenia Rozszerzenia. Zostaną one też usunięte z systemu wraz z odinstalowaniem danego programu. Nie będą też dostępne w każdym miejscu iOSa i OS X.
Extensions dzielą się na kilka różnych typów:
- Today View w Notification Center (dla iOS i OS X) – widgety dla widoku Dzisiaj w Centrum Powiadomień
- Share (dla iOS i OS X) – opcje dzielenia się treściami w internecie lub innymi aplikacjami
- Actions (dla iOS i OS X) – Rozszerzenia dla aplikacji, które umożliwią edycję ich treści w innych aplikacjach
- Photo Editing (tylko iOS) – edycja zdjęć lub filmów w Photos.app za pomocą Rozszerzeń z innych programów
- Custom keyboards (tylko iOS) – możliwość korzystania z alternatywnych klawiatur
- Storage Provider (tylko iOS) – możliwość wymieniania się plikami pomiędzy różnymi aplikacjami
- Finder Sync (tylko OS X) – zarządzanie i synchronizacja treści z innych chmur w Finderze
Ciekawym wynikiem Photo Editing oraz Action Extensions jest fakt, że wyklucza to konieczność wysyłania treści do innego programu – role zostały odwrócone i to aplikacje będą “wzywane” do manipulowania treściami w tych, w których user aktualnie się znajduje. To trochę podobne do tego co Microsoft obiecywał w Windows Phone 7 oraz jego Hubach, a co w końcu umarło śmiercią naturalną. W przypadku Apple nie powinno być żadnych problemów z taką implementacją, ponieważ aplikacje nadal zachowają swój UI przy wywoływaniu Rozszerzeń, a sam App Store ma znacznie większą ofertę niż sklep Microsoftu wtedy miał.
Widgety w Today View
Extensions dla Notification Center, dla widoku Today, będą w formie widgetów znany z innych systemów operacyjnych, jak chociażby Androida. Różnice jednak będą znaczne. Przede wszystkim będą się pojawiały i znikały zależnie od sytuacji, w której się znajduje user, ale to on będzie miał nad nimi kontrolę – ich kolejność oraz czy w ogóle mają się pojawiać oraz kiedy. Przykładowo, jeśli za godzinę będzie kończyła się aukcja, w której user bierze udział, to może pojawić się (jeśli tak zdecyduje w ustawieniach) odpowiedni widget z opcją podbicia oferty. Jeśli trwa wyścig Formuły 1 to pojawi się widget, który będzie przykładowo pokazywał pierwszych trzech kierowców. Będzie też możliwość tworzenia bardziej tradycyjnych widgetów i spodziewam się, że ludzie będą unikali ich jak ognia, poza naprawdę wybranymi i pojedynczymi sytuacjami dla najbardziej ulubionych aplikacji. Tutaj przykładem mogą być żarówki Philips Hue, które mogą wyświetlać dwa lub trzy przyciski, które wywołają nasze ulubione konfiguracje.
Share Extensions
Wprowadzanie tego Rozszerzenia pozwoli Apple uwolnić się od integrowania podobnych serwisów do obecnie zaimplementowanych Twitterów, Facebooków i innych. Dzięki temu wszelkie mniej popularne oraz znane serwisy, po zainstalowaniu ich aplikacji, będą automatycznie pojawiały się na Share Sheets, znanych zarówno z OS X jak i iOS. Jeśli chcemy coś wrzucić na Pinterest czy do Pocket to opcja ta pojawi się od razu po wciśnięciu przycisku Share (kwadrat ze strzałką skierowaną do góry). To odciąży zarówno developerów aplikacji takich jak Reeder, którzy obecnie muszą indywidualnie wprowadzać wsparcie dla wszystkich ważnych serwisów, jak i samego Apple, który prawdopodobnie z czasem zrezygnuje z wspierania Twittera, Flickr, Vimeo i Facebooka, a zrzuci to na barki tych serwisów.
Action Extensions
To chyba jedna z najciekawszych implementacji Rozszerzeń w iOS – umożliwi wykonywania na wybranych treściach pewnych operacji bez wychodzenia do innych aplikacji. Przykładowo, jeśli jesteśmy w Mail.app i chcemy komuś wysłać PDFa, to możemy go dodać jako załącznik, ale przy wysłaniem zmodyfikować go poprzez Rozszerzenie PDFpen albo innego zainstalowanego programu do tego celu. A treść samego e-maila będziemy mogli przetłumaczyć poprzez zainstalowany Bing Translate na wybrany przez nas język. Multitasking w obrębie jednego programu…
Photo Editing Extensions
To będzie prawdopodobnie jedna z częściej wykorzystywanych funkcji nowego systemu Extentions. Craig Federighi podczas WWDC pokazał jak to będzie działało – podczas edycji zdjęcia w natywnym Photos.app będziemy mieli możliwość dodania filtrów lub wykonania operacji na zdjęciu za pomocą innych programów. Użył Waterlogue [App Store link] oraz VSCOcam [App Store link] w swoim porównaniu.
Mistrzostwo świata – cała moc wybranych i dobranych przez userów modyfikacji w jednym miejscu.
Custom Keyboards
Z całego keynote na WWDC to ta funkcja mnie najbardziej zaskoczyła. Wsparcie systemu dla developerów będzie jednak bardzo ograniczone, a oni sami będą musieli wykonać większość prac. Szczegółowo opisałem to w “Wszystko o iOS 8”, w dziale “Klawiatura – QuickType”.
Jedyną nowością, o której dowiedziałem się z filmów z WWDC, w tej kwestii jest to, że żadna klawiatura trzecia nie będzie miała praw do wpisywania treści do pól haseł (te ukrywające wpisywane znaki kropkami) – po przejściu do takiego pola zostanie wywołana klawiatura Apple. Możliwe, że to się jeszcze zmieni, ale cieszę się, że skupiają się przede wszystkim na bezpieczeństwie i prywatności nieświadomych userów.
Storage Provider Extension
To Rozszerzenie, które umożliwi aplikacjom dostęp do plików spoza swojego sandboxa, będzie dostępne tylko poprzez iOS Document Picker. Dzięki temu, będzie można pracować na jednym dokumencie, który będzie w iCloud lub innej chmurze (dzięki Extensions od Dropboxa, Box.net, itp.) z różnych aplikacji. To powinno uciszyć wiele narzekań na konieczność duplikowania plików lub ich przesyłania pomiędzy aplikacjami.
Finder Sync
Finder Sync jest skierowany dla takich programów jak Dropbox i podobnych, jak chociażby ostatnio opisywany przeze mnie Sync.com czy starszy Copy.com. Dropbox musiał sporo się napracować, aby wprowadzić możliwość nakładania informacji na ikonach folderów i plików w Finderze – teraz będzie to natywnie wspierane dla każdego developera, który chce robić podobne rzeczy.
Apple dosyć sztywno określił gdzie dokładnie będzie dostęp do poszczególnych rodzajów Extensions. Szkoda, że w niektórych wypadkach nie chcą być bardziej elastyczni, ale całkowicie rozumiem ich podejście – nie mogą przecież robić wyjątków dla wybranych developerów. Niestety, z tego powodu w Safari nie będzie dedykowanego przycisku do 1Password – zamiast tego trzeba będzie wcisnąć przycisk Share, aby odpalić Share Sheet, i dopiero tutaj 1Password będzie miał możliwość dodania przycisku, który automatycznie wprowadzi dane logowania do odpowiednich pól.
Dla odmiany, wszystkie nasze chmury powinny być dostępne w absolutnie każdej aplikacji i to bez wprowadzania specjalnego wsparcia od strony każdego developera – wystarczy mieć zainstalowaną aplikację do obsługi tej chmury, a będzie ona (po dodaniu przez nią Rozszerzenia) dostępna w systemie jako źródło danych dla apps.
Największy zawód prawopodobnie wyniknie z ograniczonych klawiatur producentów trzecich – sam nie planuję z nich w ogóle korzystać, poza testami oczywiście. Sam fakt, że nie będzie można do nich wprowadzić alternatywnych możliwości zaznaczania tekstu jest dużym minusem.
Pamiętajmy, że to dopiero pierwsze kroki z Extensions, które i tak zmienią funkcjonalność systemu dla bardziej zaawansowanych użytkowników nie do poznania. Powstaną zupełnie nowe workflows, które jednocześnie nie redukują bezpieczeństwa ani prywatności userów, i wierzę z czasem będą możliwe rzeczy, o których w Apple zupełnie nie pomyślano. Na obecną chwilę jednak wszystko leży w rękach programistów trzecich – ciężko ocenić jak to wszystko będzie wyglądało dopóki nie rozwiną swoich aplikacji i nie wprowadzą odpowiednich Rozszerzeń.
Źródła: iOS Dev Portal, WWDC 2014 videos, MacStories
Chcesz zwrócić mi na coś uwagę lub skomentować? Zapraszam na @morid1n lub na forum.