Progetti, Esportazione e iCloud
Gestione dei progetti di laboratorio in NetCalc Pro, storico modifiche (Undo/Redo), esportazione PDF/CSV/TXT e sincronizzazione CloudKit privata.
Gestione dei Progetti di Laboratorio
In NetCalc Pro, la progettazione di una topologia non si limita a calcoli isolati: ogni configurazione può essere salvata, organizzata e strutturata all’interno di Progetti persistenti.
Ogni progetto ospita un insieme completo di apparati (CiscoDevice):
- Router e Switch: con le rispettive porte fisiche (
GigabitEthernet,FastEthernet,Serial) e logiche (sub-interfacce 802.1Q e SVI VLAN). - Tabelle di Routing: route statiche e protocolli di routing dinamico (OSPF, RIPv2, EIGRP).
- Servizi e Sicurezza: server DHCP dedicati per le LAN, traduzioni NAT/PAT (con overload), Access Control List (standard ed estese) e parametri di hardening del sistema operativo.
- Note di Laboratorio: annotazioni testuali per documentare vincoli di progetto, compiti d’esame o specifiche della topologia.
Architettura Local-First e Undo/Redo Completo
NetCalc Pro adotta un approccio rigorosamente Local-First basato su SwiftData:
1. Database Locale Dedicato
I dati risiedono in una cartella applicativa dedicata (~/Library/Application Support/NetCalc Pro/NetCalc.store). L’applicazione non dipende da connessioni di rete per avviarsi, leggere o modificare i progetti, garantendo reattività immediata anche in aule universitarie o laboratori privi di accesso a Internet.
2. Annullamento e Ripristino a Livello di Contesto (UndoManager)
Tutte le operazioni distruttive o di modifica (creazione o cancellazione di un progetto, aggiunta di dispositivi, modifica di interfacce o rimozione di route statiche) sono registrate nell’UndoManager collegato direttamente al ModelContext di SwiftData.
- Su macOS: usa le scorciatoie di sistema standard
⌘Z(Annulla) e⇧⌘Z(Ripristina), oppure le voci nel menu Modifica. - Su iPad/iPhone: supporta i gesti standard con tre dita e i pulsanti dedicati di navigazione.
Opzioni di Esportazione
NetCalc Pro offre tre formati di esportazione progettati per diversi scopi didattici e professionali:
1. Documenti PDF Vettoriali (CoreGraphics e CoreText)
L’esportazione in PDF (ProjectPDFExporter) è implementata disegnando direttamente con i framework grafici a basso livello di Apple (CoreGraphics e CoreText), senza ricorrere a conversioni HTML/WebKit o librerie di terze parti:
- Resa Tipografica Impeccabile: formato standard US Letter, intestazioni ad alta leggibilità e tabelle con font monospazio perfettamente allineate.
- Dati Inclusi: per ogni dispositivo vengono stampati hostname, tipologia, interfacce configurate, indirizzi IP, maschere decimali, indirizzo di rete e broadcast calcolati.
- Esportazione Piani VLSM: anche i piani di subnetting possono essere esportati in PDF con la stessa cura grafica, includendo l’elenco delle subnet ordinate e i parametri di capienza.
2. Tabella CSV per Inventario di Rete
Genera un file conforme allo standard RFC 4180 per l’importazione in fogli di calcolo (Microsoft Excel, Apple Numbers, Google Sheets):
IP,MASK,GATEWAY,DEVICE,INTERFACE192.168.1.1,255.255.255.0,192.168.1.1,R1,GigabitEthernet0/0/0192.168.2.1,255.255.255.0,192.168.2.1,R1,GigabitEthernet0/0/1Il file gestisce automaticamente l’escaping delle virgolette e delle virgole per descrizioni complesse.
3. File TXT con Script Cisco IOS Completo
Genera un file di testo contenente i comandi di configurazione di tutti i dispositivi del progetto, ordinati alfabeticamente per hostname e separati da banner di commento formattati:
! ============================================================! Progetto: Laboratorio CCNA Modulo 3! Esportato il 18 ott 2026, 18:45! ============================================================
! --- Router R1 ---hostname R1...Il file può essere salvato direttamente su disco o inviato tramite le app di sistema (Mail, AirDrop, Messaggi).
Sincronizzazione Privata iCloud (CloudKit)
I tuoi progetti possono essere condivisi automaticamente tra tutti i dispositivi associati allo stesso ID Apple, senza richiedere registrazioni, account aggiuntivi o abbonamenti.
1. Database Privato Utente
La sincronizzazione avviene tramite NSPersistentCloudKitContainer sul container privato iCloud.com.dimpemekug.netcalc.
- I dati transitano esclusivamente attraverso l’infrastruttura cifrata di Apple.
- Nessun dato passa o viene salvato su server terzi: la privacy è totale.
2. Sincronizzazione delle Impostazioni
Le preferenze dell’app (lingua, tema chiaro/scuro, palette accento, tema del terminale Cisco e modalità Principiante) viaggiano in tempo reale tra Mac, iPad e iPhone tramite NSUbiquitousKeyValueStore (PreferencesCloudSync). Se preferisci configurazioni visive diverse tra dispositivi (es. tema scuro su Mac e chiaro su iPad), la sincronizzazione delle impostazioni può essere disattivata indipendentemente nelle preferenze dell’app.
3. Diagnostica in Tempo Reale (CloudSyncMonitor)
Nella schermata Impostazioni → Sincronizzazione, NetCalc Pro offre un monitor di diagnostica avanzato:
- Stato dell’Account Apple: verifica se l’account iCloud è disponibile, limitato o temporaneamente disconnesso.
- Inventario Cloud Reale: interroga direttamente CloudKit per contare con precisione quanti record di progetti (
CD_Project) e dispositivi (CD_ProjectDevice) sono stati effettivamente memorizzati sul server. - Gestione Errori Transitori: distingue i normali ritardi di rete dai conflitti permanenti, garantendo la conservazione delle modifiche locali fino alla riconnessione.