Co jakiś czas co wyrywniejsi blogerzy i komentatorzy zadają pytanie: kiedy iOS i OS X się połączą? 
Moim zdaniem to złe pytanie…

Powód pierwszy:

Czas przyszły błędnie użyty…

…ale nie tylko. W zasadzie całe pytanie jest błędne… te systemy nigdy się nie rozdzieliły!

Częścią systemu która użytkownicy widzą i oceniają jest Interfejs Użytkownika. Nie jest to „największy” element systemu choć z punktu widzenia użytkownika kto wie czy nie najważniejszy. To on może ułatwić lub utrudnić nam życie i to po nim oceniamy całość. On też wywiera na nas „pierwsze wrażenie”. Oczywiście nawet najpiękniejszy interfejs nie uratuje sprawy jeżeli reszta systemu nie będzie działać tak jak powinna (czyli tak sprawnie, że użytkownik o niej zapomina).

Choć interfejs jest tak ważny to zazwyczaj zajmuje nie więcej niż 30% kodu całego systemu. Musicie sobie uświadomić za jak ważne funkcje odpowiada „reszta”. Są to tak istotne rzeczy jak: zarządzanie pamięcią, przydzielanie czasu procesora, obsługa wszelkich interfejsów, obsługa sieci, obsługa plików i wiele, wiele innych. Dodatkowo w systemie są funkcje do manipulacji obrazkami, animacjami, filmami, dźwiękiem, tekstami, zarządzania wewnętrzną bazą danych i tysiące innych.

Prezentacja iPhone 2007. Moment gdy Jobs mówi, że podstawą oprogramowania iPhone jest Mac OS X.

Czyli w naszych iPhonach i iPadach od początku mamy znany z komputerów Apple od 2001 roku (Mac) OS X.

Oczywiście w iOS część elementów systemu jest zbędna, a część ciut przerobiona i jest też trochę elementów obcych dla OS X. Lecz aby było śmieszniej pewna ilość funkcji obsługi interfejsu jest bardzo podobna (lub wręcz identyczna).

Oto dowody. Fragment kodu źródłowego mojego prostego programu PistonCalc w wersji dla OS X i iOS.

Kod dla OS X i iOS - PistonCalc Na górze OS X na dole iOS.

Jak widać różnice są minimalne (a w tym kawałku kodu jest sporo funkcji do interakcji z interfejsem użytkownika).

Ale jeszcze ciekawiej jest jak się zestawi dokumentację niektórych funkcji systemu dla iOS i OS X

Dokumentacja API NSString iOS i OS X.png

Dokumentacja API od manipulacji na ciągach tekstowych. Na górze iOS, na dole OS X. Znajdziecie różnice sami? ;-)

To tylko jedna z setek (jak nie tysięcy) „identycznych” części obu systemów. Niech nie zwodzi Was też to, że obie kategorie urządzeń są oparte na różnych rodzinach procesorów. OS X najpierw był udostępniony na procesory PowerPC a dopiero ~5 lat później na Intela i przez jakiś czas rozwijany równolegle na obie platformy (OS X 10.4 i 10.5) więc nie ma to znaczenia.

Zdjęcie stanowiska testowego systemu dla iPhone. Źródło i więcej informacji: wsj.com

Jak widać stanowisko do testowania prototypowego systemu dla iPhone oparte było na komputerze z PowerPC G3, a nie ARM.

Podsumowując tą część: nie czekajcie na połączenie systemów. Te systemy są „połączone” od samego początku.

Powód drugi:

Jeżeli oczekujecie połączenia to nie systemu lecz sprzętu

Microsoft już nam pokazał, że ujednolicanie interfejsów dla smartfonów (tabletów) i dla komputerów to bardzo kiepski pomysł. Od czasu jak komputer osobisty przypomina nam ten znany od ~40 lat czyli posiadający klawiaturę i ekran nastąpiła w zasadzie tylko jedna rewolucja w jego obsłudze. Tą rewolucją było wprowadzenie myszki i interfejsu okienkowego. Od tego czasu choć pojawiają się nowe (jak cudowny gładzik czy obecnie Magic Trackpad) sposoby interakcji to wiele zmian nie mamy.

O ile obecnie sprzedaż komputerów Apple rośnie w tempie dwucyfrowym to całość rynku komputerów osobistych jest w odwrocie i tylko patrzeć jak coś (być może tablety) je zastąpi w 80% obecnych zadań. I wtedy pytania o „łączenie” systemów „desktopowych” z „tabletowymi” przestanie mieć sens ;-)

Na razie musi zwolennikom „łączenia” systemów wystarczyć to, że bardzo wiele funkcjonalności oby „gałęzi” jest wspólna, a z czasem będzie ich jeszcze więcej. Tak działa ekosystem Apple i to jedyny objaw zbliżania się systemów.