Apple od najnowszej wersji wprowadziło multitasking, czyli wielozadaniowość po naszemu. Tradycyjnie rozumiemy to jako możliwość wykonywania wielu operacji jednocześnie, zazwyczaj na wielu programach. Przykładem może być przeglądanie książki adresowej podczas pisania maila oraz jednoczesne zerkanie w kalendarz czy mamy wolną chwilę w wybranym dniu.
Specyfika mobilnych systemów operacyjnych oraz rozmiarów samych telefonów wykluczają takie podejście do tematu. Ekran jest zwyczajnie zbyt mały, aby wyświetlać kilka okien równocześnie. Byłoby to niewygodne i bardzo nieergonomiczne. Wydajność przy wykonywanych czynnościach spadłaby, a irytacja poszybowałaby na nieznane dotąd wyżyny.
Będąc ograniczonym do jednej aplikacji na ekranie w danej chwili, wielozadaniowość musi zostać przedefiniowana na mobilne platformy. Podejście Apple zmierza do płynnej wymiany informacji pomiędzy różnymi aplikacjami, ale jeszcze do celu nie dotarto. Widać to na przykładzie chociażby poczty z załącznikami — otwierając PDF pojawia nam się opcja „przeniesienia” go do programów np. iBooks czy Air Sharing, oczywiście poza możliwością przeczytania go w samym kliencie pocztowym. Taka funkcjonalność jest obecnie ograniczona do wybranych aplikacji, z czasem jednak będzie się to rozszerzać na inne programy i typy plików.
To co obecnie jest najczęściej przedstawiane jako multitasking to zwyczjne „fast app-switching”, czyli szybkie przełączanie się pomiędzy aplikacjami. Wystarczy dwa razy szybko kliknąć przycisk Home i otwiera się lista niedawno używanych programów. Wybór jednego z nich natychmiast przenosi nas do niego, bez konieczności odwiedzania głównego ekranu. Założenie jest takie, że aplikacja z której wychodzimy jest zamrażana. Jej stan jest zapisywany i po powrocie do niej zastaniemy ją dokładnie w tym stanie, w której ją opuściliśmy. Pozwoli to na kontynuację pracy czy grania bez straty czasu. Warto dodać, że zamrożona aplikacja nie zużywa baterii — ona nic nie robi, nie wykorzystuje w żaden sposób procesora, więc nie należy się tym przejmować. Implementacja funkcji zapamiętywania stanu ciąży na developerze — Apple tylko udostępnił narzędzia do tego celu. Na dzień dzisiejszy jest zaledwie garsta programów, które potrafią to wykorzystać, ale ich liczba wzrasta z każdym dniem.
Oprócz zamrażania stanu, Apple udostępnił jeszcze odpowiednie API, które umożliwiają programowi funkcjonowanie w tle. Na przykładzie Twitter for iPhone, który został uaktualniony dla iOS 4, działa to w następujący sposób: wyjście z app podczas gdy trwa wysyłanie nowego tweeta (lub uploadowanie zdjęcia wraz z nim) powoduje, że ta czynność będzie kontynuowana w tle. Po jej zakończeniu Twitter przejdzie w stan zamrożenia. Inaczej z kolei zachowa się nawigacja: jeśli podczas pracy na przykład TomToma zadzwoni telefon to w tle będą nam nadal przekazywane komunikaty głosowe, a sama aplikacja będzie miała dostęp do danych z GPSa. Skype z kolei będzie zachowywał się jak zwykła rozmowa telefoniczna — wątek odpowiedzialny za rozmowę będzie aktywny podczas gdy będziemy wykonywać inną czynność. Ostatnim przykładem niech będzie aplikacja do uploadowania zdjęć np. na Flickr: po wybraniu 20 plików uaktywniamy upload i wychodzimy z programu. Czynność będzie kontynuowana w tle i zostaniemy poinformowani o jej zakończeniu stosowną informacją.
Niektórzy zapewne zorientowali się, że de facto multitasking istnieje w iPhone od dłuższego czasu. Przecież mogliśmy przeglądać internet podczas rozmowy czy też wyjść z SMSów zanim wysłała się wiadomość. Nie była po prostu dostępna dla aplikacji z App Store.
Nie wiem jedynie co dzieje się z nawigacją typu TomTom po wyjściu z niej. Możemy ją oczywiście „zabić” przytrzymując palec na ikonkach w dolnym pasku odpowiedzialnym za fast app-switching, a następnie kliknąć w czerwony minus w rogu. To pytanie pozostawiam komuś kto ma możliwość tego sprawdzenia.
Na koniec chciałbym jeszcze przypomnieć, że aplikacje trwające w zamrożonym stanie nie obciążają procesora ani baterii. Nie trzeba ich ręcznie zamykać.
Aha — większość natywnych programów iPhone (tych od Apple) może od dłuższego czasu wykonywać operacje w tle.
W razie pytań zapraszam do komentarzy.
Chcesz zwrócić mi na coś uwagę lub skomentować? Zapraszam na @morid1n lub na forum.