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ń.