>_ DevTrendsit

Lingua

Home

Linguaggi

Sezioni

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicurezza
Swift

Come Smettere di Torturare Xcode e Iniziare a Vivere con DebugSwift

Ti suona familiare: stai testando un'app su un dispositivo fisico lontano dalla scrivania, e improvvisamente — un bug. Oppure una richiesta di rete restituisce 500, ma non riesci a vedere il body dell'errore. Devi tornare al tuo computer, collegare il cavo, lanciare Xcode e cercare di riprodurre il problema. E se è un bug intermittente? In momenti come questi, vorresti avere una console sviluppatore proprio in tasca.

Oggi analizzeremo DebugSwift — un potente toolkit che trasforma la tua app iOS in un vero e proprio laboratorio di debug. Non è solo "un altro logger", ma uno strumento completo che ti dà accesso alle richieste di rete, alla gerarchia delle view e persino al database direttamente all'interno dell'app in esecuzione.

Main Preview

Cos'è DebugSwift e Perché Ti Serve

DebugSwift è una libreria open-source per sviluppatori Swift che incorpora un menu di debug nascosto nella tua app. Pensa a Chrome DevTools, ma per iOS. Il progetto ha preso le migliori idee da strumenti come CocoaDebug e DBDebugToolkit, ma con un focus su Swift 6 moderno e supporto nativo per Apple Silicon.

Il punto principale qui è l'autonomia. Puoi dare una build a un tester o a un cliente, e se qualcosa va storto, possono controllare i log, ispezionare il traffico di rete o persino fare uno screenshot della gerarchia dello schermo da soli, senza il tuo aiuto.

Cinque Motivi per Aggiungere DebugSwift al Tuo Progetto

1. Network Inspector Potenziato

Il monitoraggio del traffico è la base. DebugSwift intercetta tutte le richieste e risposte HTTP, formatta magnificamente il JSON ed evidenzia la sintassi. Ma ci sono anche "funzionalità killer":

  • WebSocket Inspector: Traccia automaticamente i frame senza configurazione extra.
  • Decrittazione in Tempo Reale: Se il tuo backend invia dati crittografati (AES-256/128), puoi registrare una chiave in DebugSwift e l'inspector ti mostrerà il testo in chiaro.
  • Filtri: Puoi nascondere le richieste di analytics per non ingombrare il log.

Network

2. Audit Visivo dell'Interfaccia

A volte hai bisogno di capire perché una view si è spostata di un paio di pixel. DebugSwift ha un inspector della gerarchia 3D integrato (simile a quello in Xcode, ma che funziona direttamente nell'app).

  • Overlay a Griglia: Sovrappone una griglia per verificare l'allineamento.
  • Animazioni Slow: Rallenta le animazioni per esaminare ogni fotogramma di transizione.
  • Render Tracking SwiftUI: Una funzionalità sperimentale che evidenzia i componenti SwiftUI che vengono re-renderizzati. Questo è prezioso per l'ottimizzazione delle performance.

UI Hierarchy

3. Caccia ai Memory Leak

Un [weak self] dimenticato in una closure — un classico. DebugSwift monitora retain cycle e dealloc in tempo reale. Se un oggetto avrebbe dovuto essere rimosso dalla memoria ma è rimasto lì, lo strumento lancia un allarme. C'è anche un widget di performance che mostra FPS, carico CPU e utilizzo della memoria sovrapposti alla tua interfaccia.

4. Accesso alle Internals dell'App

Niente più bisogno di scrivere print(). Nella sezione Resources, puoi:

  • Visualizzare e modificare UserDefaults e Keychain.
  • Esplorare i file in Sandbox e App Groups.
  • Ispezionare database SQLite e Realm.
  • Copiare il token APNS con un solo pulsante (quanto tempo abbiamo risparmiato su questo!).

5. Azioni Personalizzate

Questa è la mia parte preferita. Puoi aggiungere i tuoi pulsanti personalizzati al menu di debug. Ad esempio: "Cancella Cache", "Cambia Server in Dev/Stage" o "Riempi Carrello con Prodotti Test".

Custom Actions

Come Funziona Sotto il Cofano

Il progetto è scritto in Swift e richiede iOS 14+. È interessante notare che gli sviluppatori hanno prestato molta attenzione al supporto per Apple Silicon. Se hai mai lottato con errori di architettura nel simulatore Xcode su chip M1/M2, puoi dimenticartene qui — la libreria viene distribuita come un vero e proprio XCFramework.

Per intercettare il traffico di rete, utilizza il logging di URLSession. Se crei configurazioni di sessione in anticipo, DebugSwift offre comodi metodi per iniettare il tuo protocollo personalizzato:

URLSession

Casi d'Uso Pratici

Caso #1: Test Remoto. Invi una build TestFlight a un tester. Trova un bug nella logica degli sconti. Invece di chiedere i log attraverso la console del Mac, il tester semplicemente scuote il telefono (Shake to Toggle), apre DebugSwift, va al log di rete e ti invia uno screenshot della risposta JSON dal server.

Caso #2: Debug delle Push. Devi testare come l'app gestisce un payload di notifica push specifico. DebugSwift ha un simulatore di push: basta incollare il JSON e l'app lo elabora come se provenisse da Apple.

Push

Come Iniziare

L'installazione è semplice tramite Swift Package Manager o CocoaPods. In AppDelegate o nell'entry point SwiftUI App, bastano un paio di righe:

Installation

Suggerimento: avvolgi sempre la chiamata in #if DEBUG per assicurarti che gli strumenti di debug non finiscano accidentalmente nell'App Store.

Verdetto: Vale la Pena Provarlo?

Se sei stanco di infinite ricompilazioni e ricostruzioni del progetto solo per controllare un valore nel database o negli header delle richieste — assolutamente sì. DebugSwift fa risparmiare ore di tempo, specialmente durante lo sviluppo attivo e l'integrazione delle API.

Il progetto è sviluppato attivamente, la community è viva e il supporto per Swift 6 suggerisce che lo strumento rimarrà rilevante a lungo.

Prova il progetto qui: https://github.com/DebugSwift/DebugSwift

Quali strumenti di debug usi? Condividi nei commenti!

Progetti correlati