Wielozadaniowość to funkcja dostępna w systemie iOS, która umożliwia uruchamianie wielu aplikacji i wykonywanie zadań w tym samym czasie — zarówno w sensie uruchomienia wielu procesów (np. odtwarzanie muzyki w tle), jak i szybkiego przełączania się między aplikacjami bez konieczności ich pełnego ponownego uruchamiania. System zarządza przy tym zasobami i energią urządzenia, aby zapewnić płynność działania i jak najdłuższy czas pracy na baterii.

Historia

Multitasking po raz pierwszy pojawił się w czerwcu 2010 roku wraz z oficjalnym wydaniem iOS 4.0 (udostępnionym użytkownikom 21 czerwca 2010). Początkowo obsługa wielozadaniowości była ograniczona do wybranych urządzeń — tylko iPhone 4, iPhone 3GS i iPod Touch 3. generacji mogły korzystać z wielozadaniowości zaraz po premierze. iPad otrzymał wsparcie dla multitaskingu nieco później, wraz z wydaniem iOS 4.2 w listopadzie 2010 roku.

Z czasem Apple rozbudowało możliwości wielozadaniowości — zarówno od strony API dla deweloperów, jak i interfejsu użytkownika na iPadzie (m.in. Slide Over, Split View i Picture in Picture wprowadzane w kolejnych wersjach iOS). Równocześnie systemy iOS ewoluowały tak, aby lepiej zarządzać zużyciem energii i przydzielaniem zasobów w tle.

Jak działa wielozadaniowość w iOS — tryby i ograniczenia

iOS nie daje aplikacjom nieograniczonego działania w tle — zamiast tego udostępnia zestaw specjalnych trybów i usług, które pozwalają aplikacjom wykonywać określone zadania bez aktywnego działania na pierwszym planie. Najważniejsze z nich to:

  • Odtwarzanie audio w tle — aplikacje muzyczne i audio mogą kontynuować odtwarzanie po przejściu na drugi plan.
  • VoIP — aplikacje głosowe mogą utrzymywać połączenie sieciowe wymagane do obsługi połączeń (np. komunikatory głosowe).
  • Usługi lokalizacji — aplikacje korzystające z GPS mogą działać w tle, np. nawigacja lub śledzenie fitness.
  • Task completion (zakończenie zadań) — aplikacja może dokończyć rozpoczęte zadanie (np. przesył pliku) po przełączeniu się w tło przez krótki, określony czas.
  • Background fetch — system okresowo wznawia aplikację, aby mogła pobrać świeże dane.
  • Silent / remote notifications — tzw. ciche powiadomienia push mogą wybudzić aplikację w tle do pobrania lub przetworzenia treści.
  • Background transfer (NSURLSession) — długotrwałe transfery sieciowe mogą być kontynuowane przez system po zamknięciu aplikacji.
  • Komunikacja z akcesoriami i Bluetooth — aplikacje mogą utrzymywać komunikację z zewnętrznymi akcesoriami sprzętowymi.
  • BGTaskScheduler i zadania tła — nowsze API (od iOS 13) umożliwiają planowanie dłuższych zadań tła z uwzględnieniem optymalizacji energetycznej i priorytetów systemu.

System decyduje o tym, kiedy i jak często aplikacje mogą wykonywać pracę w tle — priorytetyzuje zadania, agreguje wybudzenia (batching) i ogranicza aktywność, gdy bateria jest niska lub urządzenie jest obciążone.

Multitasking na iPadzie i w interfejsie użytkownika

Na iPadzie Apple rozszerzył koncepcję wielozadaniowości o możliwości jednoczesnej pracy z wieloma aplikacjami na ekranie:

  • Slide Over — szybkie otwarcie drugiej aplikacji w wysuwanym panelu.
  • Split View — równoczesne wyświetlanie i korzystanie z dwóch aplikacji obok siebie (dostępne na nowszych modelach iPada).
  • Picture in Picture (PiP) — odtwarzanie wideo w małym, przenośnym oknie podczas korzystania z innych aplikacji.

Obsługiwane urządzenia

Początkowo wielozadaniowość była obsługiwana przez iPhone 4, iPhone 3GS i iPod Touch 3. generacji; iPad zyskał wsparcie wraz z iOS 4.2 w listopadzie 2010 roku. W praktyce dostępność konkretnych funkcji multitaskingu zależy od wersji iOS oraz możliwości sprzętowych urządzenia — nowsze funkcje (np. Split View czy BGTaskScheduler) wymagają nowszych wersji systemu i bardziej wydajnego sprzętu.

Jeśli chcesz sprawdzić, czy Twoje urządzenie obsługuje określoną funkcję wielozadaniowości, sprawdź wymagania danej wersji iOS lub dokumentację Apple dla deweloperów dotyczącą UIBackgroundModes, Background Tasks i funkcji multitaskingu na iPadzie.

Praktyczne uwagi

  • Użytkownik może zarządzać uruchomionymi aplikacjami i zamykać je ręcznie (np. przez przejście do przełącznika aplikacji), ale system iOS zwykle lepiej zarządza pamięcią i energią, dlatego ręczne wymuszanie zamknięcia rzadko poprawia wydajność.
  • Aplikacje muszą zadeklarować uprawnienia i tryby działania w Info.plist, aby korzystać z wybranych możliwości tła.
  • Wielozadaniowość to kompromis między funkcjonalnością a zużyciem baterii — system i deweloperzy współpracują, by minimalizować negatywny wpływ na czas pracy urządzenia.

Wielozadaniowość w iOS to złożony mechanizm łączący API dla deweloperów, decyzje systemowe i optymalizacje sprzętowe — dzięki temu użytkownicy otrzymują płynne doświadczenie pracy z wieloma aplikacjami, a jednocześnie zachowywana jest efektywność energetyczna urządzeń.