Jak Przestać Dręczyć Xcode i Zacząć Żyć z DebugSwift
Brzmi znajomo: testujesz aplikację na fizycznym urządzeniu z dala od biurka i nagle — pojawia się błąd. Albo żądanie sieciowe zwraca 500, ale nie widzisz treści błędu. Musisz wrócić do komputera, podłączyć kabel, uruchomić Xcode i spróbować odtworzyć problem. A jeśli to jest błąd sporadyczny? W takich momentach marzysz o konsoli deweloperskiej w kieszeni.
Dzisiaj przyjrzymy się DebugSwift — potężnemu zestawowi narzędzi, który zamienia Twoją aplikację iOS w pełnowartościowe laboratorium debugowania. To nie jest tylko „kolejny logger", ale kompleksowe narzędzie zapewniające dostęp do żądań sieciowych, hierarchii widoków, a nawet bazy danych bezpośrednio w działającej aplikacji.

Czym jest DebugSwift i dlaczego go potrzebujesz
DebugSwift to open-source'owa biblioteka dla deweloperów Swift, która osadza ukryte menu debugowania w Twojej aplikacji. Pomyśl Chrome DevTools, ale dla iOS. Projekt zaczerpnął najlepsze pomysły z takich narzędzi jak CocoaDebug i DBDebugToolkit, ale ze szczególnym naciskiem na nowoczesny Swift 6 i natywne wsparcie dla Apple Silicon.
Główną zaletą jest autonomiczność. Możesz przekazać build testerowi lub klientowi, a jeśli coś pójdzie nie tak, może on samodzielnie sprawdzić logi, zbadać ruch sieciowy, a nawet zrobić zrzut ekranu hierarchii widoków — bez Twojej pomocy.
Pięć powodów, dla których warto dodać DebugSwift do swojego projektu
1. Inspektor sieci na sterydach
Monitorowanie ruchu to fundament. DebugSwift przechwytuje wszystkie żądania i odpowiedzi HTTP, pięknie formatuje JSON i podświetla składnię. Ale są też „funkcje zabójcy":
- Inspektor WebSocket: Automatycznie śledzi ramki bez dodatkowej konfiguracji.
- Dekryptowanie w locie: Jeśli backend dostarcza zaszyfrowane dane (AES-256/128), możesz zarejestrować klucz w DebugSwift, a inspektor pokaże Ci czysty tekst.
- Filtrowanie: Możesz ukryć żądania analityczne, aby nie zaśmiecały loga.

2. Wizualna inspekcja interfejsu
Czasami musisz zrozumieć, dlaczego widok przesunął się o kilka pikseli. DebugSwift ma wbudowany inspektor hierarchii 3D (podobny do tego w Xcode, ale działający bezpośrednio w aplikacji).
- Nakładka siatki: Nakłada siatkę do sprawdzania wyrównania.
- Spowolnione animacje: Spowalnia animacje, aby zbadać każdą klatkę przejścia.
- Śledzenie renderowania SwiftUI: Funkcja eksperymentalna, która podświetla komponenty SwiftUI podlegające ponownemu renderowaniu. Jest nieoceniona przy optymalizacji wydajności.

3. Polowanie na wycieki pamięci
Zapomniany strong reference w closure — klasyk. DebugSwift monitoruje ViewControllers i Views w czasie rzeczywistym. Jeśli obiekt powinien zostać usunięty z pamięci, ale tam pozostał, narzędzie podnosi alarm. Jest też widżet wydajności pokazujący FPS, obciążenie CPU i użycie pamięci nałożone na Twój interfejs.
4. Dostęp do wnętrza aplikacji
Koniec z pisaniem print(UserDefaults.standard.dictionaryRepresentation()).
W sekcji Zasoby możesz:
- Przeglądać i edytować
UserDefaultsiKeychain. - Przeglądać pliki w Sandbox i App Groups.
- Inspekcjonować bazy danych SQLite i Realm.
- Kopiować token APNS jednym przyciskiem (ile czasu na tym zaoszczędziliśmy!).
5. Akcje niestandardowe
To moja ulubiona część. Możesz dodać własne przyciski do menu debugowania. Na przykład: „Wyczyść cache
Powiązane projekty