Wszystkich nowych funkcji iOS 8 prezentowanych na WWDC, najważniejsze, być może, to rozszerzenie (rozciągliwość). Powinny one mieć wielki wpływ na dalszy rozwój systemu operacyjnego. Często ta funkcja jest opisana jako „zdolność aplikacji innych producentów do interakcji ze sobą.” To, oczywiście, jest zbyt przesadzone, ponieważ interakcja nie jest jedyną możliwością rozszerzenia, a oni nie mogą komunikować się bezpośrednio ze sobą, aby być dokładne.
Musimy zapoznać się z dokumentacją dla programistów i filmów z WWDC, aby zrozumieć, jak działają rozszerzenia i jak Apple znaleźć kompromis między otwartości bezpieczeństwa systemu i danych użytkownika i chciałbym o tym mówić ty.
Więc co ekspansję?
Włączenie aplikacji innych firm, aby uzyskać dostęp do siebie, że jest tylko jeden problem, który ma rozwiązać ekspansję. Stronie klawiatury; Integracja zastosowanie w innych przechowywaniu w chmurze, oprócz iCloud; widgety w centrum powiadomień - wszystko to jest również ponoszone przez rozszerzeń.
W rzeczywistości nie wszystkie z iOS może być „wzmocniony” Deweloperzy osób trzecich. Na przykład, jeśli chcesz zastąpić domyślną aplikację lub dodać przełącznik w pomieszczeniu kontrolnym - nie będzie działać. Jabłko zawiera się nie tyle jasno określone „punkty rozszerzeń» (punktów przedłużacz), aby pokazać programistom jakiejkolwiek części systemu operacyjnego mogą pracować. Lista tych punktów, co następuje:
- ekspansja Dziś Dzisiaj (rozszerzenia) lub widgety - służą do przekazywania informacji natychmiastowy w zgłoszeniu Center. Można rozważyć je jako odpowiedź na żywo płytek Windows Phone i Android widżety ekranu głównego.
- zwiększyć wymianę (rozszerzenia akcję) - pozwala na wysyłanie zdjęć, linki lub inne pliki aplikacji w serwisach internetowych. Takich jak opublikowania zdjęć w Pinterest lub przesyłania plików do Dropbox lub onedrive bezpośrednio z aplikacji.
- skalowanie w górę (rozszerzenia działania) - stosowane do „manipulacji lub przeglądanie zawartości w kontekście innego zastosowania.” Innymi słowy, oznacza to, że można edytować fotografię, która jest zawarta w dokumencie tekstowym, lub Na przykład, jak pokazano na prezentacji, korzystanie coś jak Bing Translate przetłumaczyć tekst w oknie Safari.
- Rozszerzenia do edycji zdjęć (Fot Edycja rozszerzenia) - podczas oglądania obrazów w rolki aparatu można używać edycji możliwości innych zastosowań.
- rozszerzone przechowywanie (Storage rozszerzenia dostawcze) - pozwala aplikacji do otwierania dokumentów z wielu chmurze. Na przykład, można użyć do przechowywania dokumentów Dropbox i dostęp do nich bezpośrednio z Urzędu iPad lub Pages.
- Rozszerzenia dla klawiatur zewnętrznych (niestandardowe rozszerzenia klawiszowe) - zastąpienie standardowej klawiatury w iOS.
Wspomniane rozszerzenia są iOS, ale wiele z nich (w tym widżety wymieniać i ekspansja in.) Uruchomione w OS X Yosemite, jak i iOS. aplikacje z App Store od deweloperów Mac twarz Podobne ograniczenia piaskownicy i wdrażania rozszerzeń bit uprościć swoje życie. Chociaż, najprawdopodobniej, wielu deweloperów nadal je omijać, unikając Mac App Store w ogóle.
Ta wstępna lista punktów rozszerzeń różni się od zamiarów systemowych (system Intents), pracujących w systemie Android. Aplikacje na Androida wykorzystywać filtry, aby zrozumieć system operacyjny, jakie działania mogą wykonywać i uchwyt. Na przykład, Twitter i Facebook mogą dodawać zdjęcia i linki; Google Drive, Dropbox i można pobrać różne pliki; Chrome i Firefox mogą otwierać stron internetowych itp programiści innych firm można nawet ustawić się filtry, które działają w systemie operacyjnym.
Jednocześnie, iOS jest znacznie ograniczenie w tym zakresie, chociaż nie bez powodu. Jednak dla zwykłych użytkowników nie zauważy to wszystko i rozwinąć trochę niż różnią się od swoich odpowiedników z Androidem, iOS przy zachowaniu zasad bezpieczeństwa.
Jak zainstalować rozszerzenia, i jak one działają?
Jak również wszystkie oficjalnej aplikacji dla iOS, rozszerzenia pobranych z App Store. Największym ograniczeniem jest to, że Apple nie pozwalają programistom publikować rozszerzenia w „czystej postaci”. Każde rozszerzenie musi być rozprowadzany jako część aplikacji (zawierający APP), co z kolei powinno mieć żadnych podstawową funkcjonalność i być przydatne dla użytkownika. Oznacza to, że deweloperzy nie mogą publikować w App Store właśnie widżet lub tylko klawiatury, jak to się dzieje obecnie w Androidzie. Jednocześnie, Apple nie nakłada żadnych ograniczeń co do liczby i rodzaju rozszerzeń, które mogą zawierać aplikację.
Inne zalecenia dla programistów Apple nie są wymagane. Odnosi się to do projektowania rozszerzeń, które powinny odpowiadać standardowych zastosowań OS: widgety nie różnią z istniejących widżetów w Centrum powiadomień, a zdjęcie menu edycji w Camera Roll - radykalnie różne od rodzimy. Zapewne są tacy, którzy nie zastosują się do tych zaleceń, ale głównie dlatego, że większość programistów i stosować się do filozofii Apple podczas tworzenia swoich aplikacji.
Każde rozszerzenie jest aktywowany na różne sposoby. Widgety - od centrum powiadomień, instrumenty klawiszowe - od regionalnych ustawieniach systemowych. Rozbudowa edycji i przechowywania zdjęć nazywane są tylko w pewnych sytuacjach aplikacji, który zapewnia współdziałanie z nimi. Zwiększenia wymiany i działania mogą być wywoływane z dowolnej aplikacji, ale deweloperzy muszą dodać zasady aktywacji, aby rozwinąć i określić, które dane mają być przetwarzane. Jeśli rozszerzenie przewiduje jedynie wymianę zdjęć, trzeba określić go w aktywacji reguł że ekspansja nie pojawiają się, gdy użytkownik chce udostępnić link lub dokument.
Pomimo faktu, że wszystkie rozszerzenia muszą być „opakowanych” w aplikacji (zawierającego aplikacji) mogą pracować niezależnie. Każde rozszerzenie - jest to mały plik binarny .appex-, który otwiera swoje zadanie i zamknąć bez konieczności uruchamiania głównego aplikacji. Rozszerzeń, które wykonują te same czynności, jak ich główną aplikacji (np Instagram, stosowane do dodawania do filtra do obrazu) są zachęcani do korzystania z wbudowanej ramy przekazywania kodu wykonywalnego wymaganej dla danego zadania. Stworzyć ramy, umieścić kod tam i będzie można zbudować tę strukturę zarówno we wniosku oraz w rozszerzeniu. Jedynym ograniczeniem jest to, że aplikacje te będą wymagać iOS w wersji 8 i powyżej, jak nie będzie działać na starszych systemach operacyjnych.
Jednym z powodów, dla ekspansji prowadzonej w oderwaniu od jego zastosowania, to jabłko twarde limitu na ilość pamięci zużywanej. W szczególności dotyczy to widget, jak użytkownik może mieć wiele jednoczesnych widgety.
Ponadto, widgety nie działają przez długi czas, a siłą usunięty z urządzenia po zamknięciu. Dla rozszerzeń, które wykonują zadania długotrwałych tle, takich jak pobieranie plików, Apple zaleca, aby przenieść te zadania systemu, a następnie zamknij ją.
To wszystkie główne punkty, na temat rozszerzeń iOS. Jak widać wszystkie możliwe rozszerzenia ściśle udokumentowane, ale jest godny uwagi na fakt, że pomimo większych uprawnień, dostarczanych przez deweloperów i ich zastosowań, nie narusza istniejącej polityki bezpieczeństwa i prac w ramach swoich „Piaskownica”.
Bezpieczeństwo danych użytkownika. Różnice w stosunku do Androida
W skrócie, to różnica między podejściem do danych, prywatność i bezpieczeństwo użytkowników iOS i Android To, że ten ostatni dostarcza deweloperom ilości liny, która jest wystarczająca do Sam powieszenia.
W rzeczywistości, jeśli Android użytkownicy korzystają z domyślnych ustawień zabezpieczeń przed instalacją każdej aplikacji przeczytać obszerną listę rzeczy, może to zrobić - niebezpieczeństwo swoich danych osobowych osobom trzecim lub infekcji malware nie było tak wielki. Ale wszystkie te aplikacje prawa prowadzić do nieporozumień. Niektórzy ludzie decydują się zainstalować aplikacje nie tylko z Google Play, ale również z innych źródeł; inni chcą dostać root-dostęp, aby zainstalować alternatywne dystrybucje - żadnych problemów, wszystko jest możliwe z Androidem. Takie rzeczy są interesujące niektórzy użytkownicy na platformie, ale robią to wszystko na własne ryzyko.
Spójrz na iOS, która nawet wprowadzenie rozszerzeń nadal wznosi bariery między aplikacji i ich rozszerzeń i dane aplikacji, aby chronić użytkowników i ich dane () z sami. Jak już powiedzieliśmy, nadal aplikacje nie mogą zająć sobą bezpośrednio, ponieważ ekspansja to małe pliki binarne, które działają oddzielnie od wniosku zawierającego. Dowolna aplikacja, która powoduje, że (app gospodarza w terminologii jabłkowy) Ekspansja odnosi się rozwijać, a nie do zastosowania, że zawiera (zawierający APP). W tym przypadku, gdy aplikacja hosta musi używać rozszerzenia, wysyła żądanie za pośrednictwem ramach systemu, a nie bezpośrednio, i nigdy nie będzie miał dostępu do danych aplikacji.
Deweloper FortyTwo Inc. Eduardo Fonseca wyjaśnia, w jaki sposób udało się zachować aplikacje iOS i rozszerzenia „w bezpiecznej odległości.”
„Każde rozszerzenie - jest to oddzielny pakiet (pakiet) wewnątrz aplikacji głównej wiązki, która zawiera oddzielne pliki wykonywalne” - mówi Fonseca. „Najśmieszniejsze jest to, że ekspansja nie jest aplikacją. Jest to spowodowane przez ram Apple System, za pomocą wyraźnie określony interfejs, który inicjuje proces uruchamiania ekspansji. W tym przypadku kod jest wykonywany oddzielnie, a to oznacza, że wykonanie dowolnego kodu osób trzecich nie mogą być wewnątrz aplikacji. Dlatego też, nie ma ryzyka, że aplikacje, które obsługują rozszerzenia (takich jak Safari), mogą wystąpić problemy podczas korzystania z rozszerzeń wewnątrz innych aplikacji. Oni są jak olej i woda - nie mieszać ".
Nawet jeśli ekspansja należy odnieść się do posiadania tej samej aplikacji, BUET to nastąpić tylko za pośrednictwem interfejsu API systemu. Domyślnie aplikacja zawiera rozszerzenie i ekspansję sobie nie może uzyskać dostępu do danych nawzajem.
Do wymiany danych pomiędzy nimi, trzeba uczynić je częścią grupy wniosków (grupy APP), co pozwoli im na pewne ogólne informacje w zbiorniku zewnętrznym, zarówno na zewnątrz piaskownicy. Zapewne zauważyłeś, że po zalogowaniu się do swojego konta w Google Chrome na iOS, będzie również być zalogowany i na Mapach Google i Dysk Google - jest wynikiem korzystania z grupy APP. Ale nawet te grupy są ograniczone do pewnych typów danych, które mogą być wymieniane. Dopuszczalna informacje o koncie pamięci podręcznej bazy danych wymiany. Jednak dla lokalnych dokumentów i plików multimedialnych nie jest przypadek - są nadal zakazane.
Mówiąc najprościej, Apple nie chce niektóre aplikacje mają dostęp do piaskownicy drugiej. Rozszerzenia są małe sandbox w innej piaskownicy, która będzie ułatwiać współdziałanie różnych zastosowań, ale nigdy nie wolno blisko uruchomienia aplikacji (host) stosowanie aplikacji danych, która zawiera rozszerzenie (zawierający app).
Rozszerzenia mechanizmy uruchamiane są również różni się od aplikacji. Po uruchomieniu tego samego rozszerzenia w wielu zastosowaniach, takich jak Safari i Mail system otworzy dwie kopie tej ekspansji, który będzie realizowany w osobnych procesach. Rozszerzenia te są przechowywane w różnych obszarach pamięci. W ten sposób informacje o obu aplikacji jest przechowywana w różnych miejscach i mają dostęp do swoich danych tylko. Z tego samego powodu, przeglądarki otworzyć wiele stron w osobnych kartach.
Android zapewnia własny model piaskownicy, który ma również na celu ochronę danych przechowywanych w jednym Aplikacja z innych aplikacji, które nie mają dostępu do nich (chociaż, w razie potrzeby, deweloperzy mogą łatwo obejść go). Szczególnie niebezpieczne jest tu przyznawanie praw do odczytu i do zapisu do wszystkich danych aplikacji, które nieaktualne nawet Android 4.2., mimo że aplikacja jest wciąż w stanie uzyskać dostęp do danych innych aplikacje.
Ponownie, wszystkie te mechanizmy są skuteczne tylko w przypadku prawidłowego stosowania, ale ludzie wydają się być rzadkie przeczytaj umowę licencyjną i po prostu zgodzić się z tymi wnioskami, które dostarcza oprogramowanie do zainstalowania, narażając swoje dane ryzyka. Apple jest bardzo dobrze nadaje się do tego problemu, a nawet teraz w iOS posiada wygodne ustawienie z przełącznikami prywatności, które można wyraźnie zobaczyć co prilolzheniya wykorzystywać pewne informacje. Coś jak Google ogłosił w Androida 4.4, ale w ostatecznej wersji tego, niestety, nie było. To nie ma bezpośredniego związku z rozszerzeniem, ale ten jest dobrym przykładem tego, jak iOS 8, nadal poświęcać elastyczność w trosce o bezpieczeństwo i prywatność użytkowników.
Jabłko nakłada również inne ograniczenia ekspansji - nie mogą korzystać ze wszystkich API, które jest dostępne przez aplikacje. W szczególności niestandardowego klawiaturze ogranicza liczbę obowiązkowych wymagań i zasad. Mechanizmy interakcji rozszerzeń Apple, różnią się od tych, które używają Google i, w rzeczywistości, iOS 8 pozostaje zamknięty system, w porównaniu z Androidem. Aplikacje innych firm wciąż nie może komunikować się bezpośrednio między sobą, a elementy systemu takie jak na ekranie głównym lub ekranie blokady nie jest podatny na dostosowanie, jak również wnioski o Domyślnie.
Niemniej jednak, wydaje się, że Apple w końcu wysłuchał pojedynczych największych skarg na swojej platformy mobilnej i podjęła działania, ale charakterystyczne dla jej stylu, bez drastycznych działań, które mogą zwiększać zapotrzebowanie na pamięć ani zagrożeń bezpieczeństwa użytkowników. Teraz, gdy iOS 8 nie została jeszcze opublikowana, trudno jest ocenić zalety i wady takiego podejścia, ale na papierze wszystko wygląda bardzo obiecująco.
(przez)