Xcode - dwa do przodu trzy do tyłu*
Kilka dni temu rozmawialiśmy w MyApple Daily o problemach jakie Apple ma z jakością swojego oprogramowania na przykładzie systemów operacyjnych, w których pojawiły się poważne luki w bezpieczeństwie (macOS) lub błędy powodujące zawieszanie się urządzeń (iOS). Problemy, których doświadczają zwykli użytkownicy są jednak czubkiem góry lodowej. Przekonuję się o tym codziennie od niemal dwóch lat, kiedy zacząłem moją przygodę z programowanie w Swifcie.
Kiedy zaczynałem moją przygodę z programowaniem w Swifcie wydawało mi się, że przygotowane przez Apple narzędzia będą niezawodne. Wszak firma przykłada ogromną wagę do jakości zgłaszanego do App Store czy Mac App Store oprogramowania - poddawane jest ono weryfikacji. NIc bardziej mylnego. Środowisko programistyczne Xcode to chyba najbardziej zabugowane („bug” po angielsku to pluskwa, czyli błąd w programie) z jakim kiedykolwiek przyszło mi pracować.
Początkowo szokowały mnie informacje w podręcznikach, z których uczyłem się Swifta, mówiące o tym, co w Xcode nie działa, albo samouczki jak radzić sobie z tymi problemami niejako naokoło. Później do nich przywykłem, zacząłem też rozumieć wielu deweloperów, którzy uśmiechali się pod nosem i mówili z ironią „odważny”, kiedy wspominałem im, że mam najnowszą wersję tego oprogramowania.
Szybko jednak sam zacząłem doświadczać problemów, od prozaicznych, np. nagminnie wywalającego się podświetlania kodu odpowiednimi kolorami, przez pokazywanie błędów tam, gdzie ich nie ma, zrywanie połączenia z iPhone'em czy iPadem, a nawet z symulatorem po zawieszanie się całego Xcode i kręcącą się piłeczkę plażową. Zamykanie tego programu i ponowne jego uruchamianie to dość częsta czynność.
Myślałem, że może mój MacBook Air jest za słaby, że czas na zmianę, ale takich samych problemów doświadczają moi znajomi na tegorocznych i ubiegłorocznych MacBookach Pro.
Rozumiem, że Xcode jest rozbudowanym środowiskiem programistycznym, stale rozwijanym, więc błędy faktycznie mogą się zdarzać i w jakimś stopniu deweloperzy muszą brać to na klatę. To, jednak, co wydarzyło się w ostatnich kilku dniach, niepokoi mnie bardziej niż upierdliwe błędy w oprogramowaniu, których doświadczam od niemal dwóch lat.
Jak pewnie wiecie, w minioną sobotę Apple wydało na szybko aktualizację iOS do wersji 11.2, która rozwiązywała problem z wewnętrznymi powiadomieniami i datą, który powodował ciągłe zawieszanie się iPhone'ów i iPadów. Firma nie wydała jednak aktualizacji środowiska programistycznego Xcode, odpowiedniego dla wersji systemu. Przez cały weekend i poniedziałek deweloperzy nie mogli testować tworzonych przez nich programów dla iOS na fizycznych urządzeniach, co dla wielu było poważnym ograniczeniem i problemem. Nie wszystko da się bowiem przetestować w symulatorze. Aktualizacja Xcode pojawiła się wczoraj i rozwiązała ten problem, ale spowodowała kolejny. Xcode został zaktualizowany, ale iTunes Connect czyli cały webowy deweloperski system zgłaszania aplikacji do App Store i zarządzania nimi o tym nie wiedział. Najnowszą stabilną wersję oprogramowania Xcode traktował (i wciąż traktuje w chwili pisania tego tekstu) jak betę, nie pozwalając na wysłanie jej do App Store (nawet celem testów w Test Flight).
Wyobraźcie sobie, że ktoś miał wczoraj wieczorem albo dzisiaj wysłać stabilną wersję aplikacji do App Store. Po aktualizacji Xcode do najnowszej stabilnej wersji nie może tego zrobić. Nie wiem, czy wystarczy aktualizacja po stronie iTunes Connect, czy Apple po prostu musi wydać kolejna aktualizację oprogramowania. Mleko się już rozlało.
Ja sam doświadczyłem tego wczoraj na własnej skórze, próbując wysłać do TestFlighta kolejną wersję mojej aplikacji pogodowej. Gdyby nie to, że w firmie miałem na Macu starszą wersję Xcode (tą, która nie jest kompatybilna z najnowszym iOS 11.2 i nie pozwala w związku z tym na testowanie aplikacji na prawdziwych urządzeniach), to do teraz nie mógłbym tego zrobić.
Mam wrażenie, że w ostatnich dniach deweloperzy Apple odpowiedzialni za iOS, macOS i całe środowisko programistyczne działali w panice pod presją czasu. Podejrzewam, że trzeba było załatać krytyczną lukę, naprawić krytyczny błąd systemu i zrobić to szybko, najszybciej jak się da. Może ludzi tych jest za mało i pracują pod zbyt wielką presją, skoro naprawienie jednego powoduje zepsucie drugiego?
„Dwa do przodu trzy do tyłu*” to tytuł piosenki z serialu „Sześć milionów sekund”, który oglądałem w dzieciństwie (gdzieś w połowie lat 80).