Pisaliśmy dzisiaj o doniesieniach mówiących o planach Apple wprowadzenia uniwersalnych aplikacji dla iOS i macOS. Tak, chodzi o programy, które będzie można instalować na obu systemach jednocześnie. Czekam na to od lat.

Choć komputery Mac i iPhony oraz iPady to jednak zupełnie inne urządzenia i zwykle robię na nich inne rzeczy oraz korzystam na nich z innych programów, to jednak z ogromna radością przyjąłbym wprowadzenie takiej unifikacji. Przede wszystkim wiele programów dostępnych jest w osobnych wersjach dla macOS i iOS. Obecnie dwie wersje to dwa różne programy, które dzielą tylko pewne fragmenty kodu (do tego, jak to może wyglądać w środku wrócę poniżej). Tworzenie i aktualizowanie dwóch różnych aplikacji to zdecydowanie więcej roboty dla deweloperów niż zajmowanie się tylko jednym z nich.

W przeszłości zdarzało się wielokrotnie, że wersja dla Maca była traktowana przez dewelopera trochę po macoszemu, a jej aktualizacja względem wersji dla iOS była opóźniona o miesiące. Wspomnieć wypada choćby Reedera. Po zamknięciu przez Google usługi Reader twórca tego programu szybko zaktualizował wersję dla iOS, dodając wsparcie usług typu Feedly. Wersja dla Mac przestała działać i zniknęła z Mac App Store. Zaktualizowana wersja pojawiła się dopiero niemal po roku.

Jeszcze bardziej drastycznym przykładem jest aplikacja Twitterrific w wersji dla Mac, którą przywrócono do życia po kilku latach jej niebytu. Deweloperzy przyznali, że nie mieli czasu i środków, by zajmować się przez ten czas wersją dla Maca.

Dzięki uniwersalnym wersjom, deweloperom będzie łatwiej zajmować się jednym programem, który będzie na bieżąco aktualizowany. Może to oznaczać także wzrost liczby dostępnych aplikacji dla Mac, a być może pojawienie się dla iOS programów dotąd dostępnych tylko dla Maca (mam kilka takich).

Unifikacja macOS i iOS?

Aplikacje uniwersalne mogą działać dwojako. W jednej paczce (application bundle) mogą zawarte być dwie osobne wersje programów, dla iOS i macOS. W zależności od urządzenia pobrana zostanie z paczki tylko jedna z wersji. To jednak oznaczałoby niewielkie zmiany dla deweloperów. Dalej musieliby tworzyć osobne aplikacje, które łączyłyby tylko pewne fragmenty kodu, a później wkładać je razem do jednego pudełka. Trochę ta, jak ma to miejsce w przypadku widgetów aplikacji dla iOS czy aplikacji dla zegarka Apple Watch. Są one w pewnym stopniu osobnymi programami, tworzonymi w jednym wspólnym projekcie w Xcode. To jednak bardzo małe programy.

Zdecydowanie bardziej ciekawa jest opcja, w której budowana będzie tylko jedna aplikacja, która znajdzie się w tej paczce i która działać będzie zarówno na macOS i iOS. Oznaczać to może zmiany w architekturze samych systemów i ich do pewnego stopnia unifikację. Takiego, który pozwoli na bezproblemowe obsługiwanie jednego kodu. Podejrzewam, że większe zmiany czekają nas pod maską macOS niż iOS. Podejrzewam też, że aplikacje uniwersalne będą na Macach działać w podobny sposób, jak aplikacje Androidowe na dużym ekranie Samsungów podłączonych do huba Dex. Mogą więc dalej wyglądać jak programy mobilne, a nie te natywne dla Maca. Różnice wynikają przede wszystkim z obsługi interfejsu (w iOS interfejs dotykowy, wszystkie przyciski ekranowe przypisane są do konkretnego okna programu, podczas gdy w macOS przyciski menu oraz górne menu są niezależne od aktualnie wyświetlanego okna programu). Apple mogłoby jednak wprowadzić jakiś łatwy sposób programowania obu interfejsów.

Maki z procesorami ARM?

No dobrze, ale uruchamianie aplikacji dla iOS jest przecież możliwe w macOS. Deweloperzy testują swoje programy w symulatorach iPhone'ów i iPadów. Jest to możliwe, ale wydajność tego rozwiązania jest bardzo daleka od zadowalającej. Proponuję uruchomienie w symulatorze iPada nawet prostej gry z jednego z samouczków, w której na ekranie jest tylko kilka tzw. sprite'ów (poruszających się obiektów). Wymaga będzie więc moim zdaniem wspomniana już wyżej przebudowa systemu, a być może także dodanie w nowych Macach na stałe procesora ARM, a kto wie, może i całkowite przejście na tą architekturę. Apple już teraz umieszcza procesory ARM z serii A w nowych MacBookach Pro z Touch Barem i czytnikiem linii papilarnych Touch ID - odpowiada on właśnie za ich obsługę. Możliwe, że w przyszłości będzie on robić znacznie więcej niż obecnie.

Na co to komu?

Znajdą się oczywiście kontestatorzy, którzy twierdzić będą, że takie rozwiązanie na nic się nie przyda. To oczywiście kwestia bardzo subiektywna. Wszystko zależy od tego, z jak wielu aplikacji dla iOS użytkownik chciałby korzystać na swoim Macu i odwrotnie, programów dla Maca, z których chciałby korzystać na iPhonie lub iPadzie. Na pewno jednak dzięki temu rozwiązaniu użytkownicy komputerów Mac doczekali by się zdecydowanie większego wyboru aplikacji.