Sviluppiamo applicazioni desktop Windows/macOS/Linux

Sviluppiamo applicazioni desktop Windows/macOS/Linux. Ogni software standalone sviluppato è comprensivo di installer.

I software dektop sviluppati comprendono programmi standalone e software di interfaccia utente nel campo dell'automazione industriale e nel campo embedded.

Il nostro approccio prevede l'uso di tecnologie originariamente nate nel mondo web e oggi disponibili anche nel mondo desktop. Questo ci permette di realizzare software e interfacce desktop in tempi rapidi e in modo che siano flessibili al cambiamento: abbiamo sviluppato software di automazione con oltre 20 richieste di modifiche strutturali in corso d'opera.

Inoltre le interfacce di queste applicazioni ereditano lo "stile" web moderno e di conseguenza sono intuitive, multipiattaforma, esteticamente accattivanti, pensate per schermi touch.

Garda Informatica opera principalmente nella provincia di Brescia e nel nord Italia.

Ambiti di sviluppo delle applicazioni desktop#

Operiamo nei principali ambiti in cui si rende necessario lo sviluppo di applicazioni Desktop.

Automazione Industriale

Realizziamo software di automazione industriale comprensivi di:

  • Interfacce Uomo Macchina pensate per schermi touch screen;
  • Logica di automazione industriale;
  • Logica di controllo e supervisione;
  • Controllo degli stati di funzionamento;
  • Gestione degli allarmi;
  • Archiviazione dei dati di processo su Database;
  • Gestione Log;
  • Multilingua;
  • Multiprofilo e Multiutente;
  • Integrati con i gestionali aziendali;
  • Interfacce di Calibrazione;

Configurazione di dispositivi hardware

Nei campi della domotica, sicurezza e Internet of Things capita spesso di installare un dispositivo hardware e configurarlo via PC (es. sensori di allarme, telecamere di videosorveglianza, ecc.). La configurazione del dispositivo hardware viene fatta per mezzo di un software desktop di comando.

I software di configurazione che realizziamo hanno le seguenti caratteristiche::

  • multipiattaforma (per poter essere eseguiti sia da installatori con PC windows che installatori con PC macOS);
  • comprensivi di installer;
  • multilingua;
  • multiruolo e multiutente (es. utente installatore con permessi diversi da quelli dell'utente "verificatore")
  • con generazione di report e stampe PDF;
  • con mini CAD per la configurazione spaziale dei dispositivi;

Prototipi

Studiamo e realizziamo prototipi per testare nuove idee nei seguenti ambiti:

  • Sistemi di Sicurezza;
  • Sistemi di Videosorveglianza;
  • Cloud Computing;
  • Macchine di automazione industriale;
  • Software per il settore medicale;
  • Software M2M (Machine To Machine);
  • Software per la Domotica;
  • Software IoT (Internet of Things);
  • Prototipi per Smart City;

Ingegnerizzazione

Effettuiamo ingegnerizzazioni di prodotto compiendo scelte di progetto riguardanti:

  • Ambienti di esecuzione;
  • Linguaggi;
  • Protocolli;
  • Database;
  • Strategie di Refactoring;
  • Studi di Usabilità;

Portfolio software desktop#

Di seguito alcuni lavori realizzati. Per l'elenco cronologico dei principali lavori consulta il Case History.

Case History: App Windows per la compilazione di verbali e rapporti di verifica

Per Organismo di Ispezione abilitato a svolgere le verifiche in materia di sicurezza su impianti elettrici e impianti di sollevamento/pressione abbiamo sviluppato una applicazione per sistemi Windows che consente ai tecnici sul campo di compilare verbali e rapporti di verifica.

Vai all'elenco completo

Cos'è e come funziona un software di automazione industriale?#

Ogniqualvolta c'è bisogno di automatizzare un processo produttivo ecco che si può pensare di realizzare un macchinario industriale di automazione che svolga il compito assegnato al posto di una persona umana. Il macchinario realizzato è a tutti gli effetti un robot.

Ad esempio su una linea di produzione di calze si potrebbe decidere di automatizzare l'imbustamento delle stesse implementando un nuovo robot di insacchettamento. Un altro esempio potrebbe essere un macchinario automatico per la raccolta di campioni di DNA.

Un robot o macchinario industriale è composto da due parti principali: l'hardware e il software.

Nella parte hardware rientra tutto ciò che c'è di meccanico come: motori, attuatori, sensori, telecamere, ecc.

Il software invece si occupa di dirigere tutte le parti hardware al fine di raggiungere il processo automatico voluto. Ad esempio il software comanderà i motori, verificherà lo stato dei sensori, verificherà la correttezza delle operazioni svolte con algoritmi di visione artificiale ecc.

Noi siamo informatici puri e come tali ci occupiamo esclusivamente della parte software!

Più nel dettaglio si può dire che un software di automazione è composto generalmente dalle seguenti parti:

  • interfaccia uomo macchina: un processo produttivo si può suddividere in due fasi che sono l'attrezzaggio o setup e il processo vero e proprio. Durante la fase di attrezzaggio o configurazione, un operatore configura la macchina agendo attraverso uno schermo touch screen. Ad esempio si può configurare il tipo di sacchetto che il macchinario utilizzerà per il confezionamento delle calze, si può decidere il tipo di chiusura ecc. Oltre alla fase di attrezzaggio, l'interfaccia uomo macchina entra in gioco durante l'esecuzione dell'automazione per segnalare attraverso dei sinottici l'avanzamento e lo stato del macchinario.
  • logica di automazione o di controllo: rappresenta il cuore del processo di automazione. Questa parte del software si occupa di comandare tutto l'hardware della macchina. Il software funge da supervisore, ovvero comunica ad ogni motore ed attuatore la singola azione semplice che dovrà compiere (in gergo "missione"). Una missione potrebbe essere ad esempio una delle seguenti: solleva puncher, leggi barcode, sposta la card nella posizione x,y, ecc. Questa parte di software solitamente è realizzata come una macchina a stati finiti ciclica. Ad ogni ciclo viene realizzata un'automazione completa. Ogni cliclo è composto da vari stati come ad esempio: l'apertura del sacchetto, l'inserimento delle calze, la verifica con un sensore della presenza delle calze, l'applicazione della chiusura, il deposito del prodotto ecc. Da uno stato si passa al successivo in base al tipo di lavorazione richiesta, in base alla presenza di anomalie ecc.
  • programmazione dei motori: anche in questo caso si devono creare delle routine o delle primitive che possano poi essere richiamate dalla logica di automazione. Ogni primitiva o missione implementata si preoccupa di svolgere una singola azione atomica e a basso livello di astrazione: es. spostare la plate alla posizione x,y.
  • gestione degli allarmi e delle anomalie: in ogni processo qualcosa può andare storto. Es. la calza cade dal sacchetto, il sacchetto si rompe, il contenitore dei sacchetti si svuota, ecc. La parte di gestione degli allarmi si preoccupa di verificare tutte le anomalie che si possono verificare e decidere come comportarsi in base all'anomalia verificatasi, es. chiedere l'intervento umano, riprovare l'azione, ecc.
  • archiviazione dei dati di processo su Database: questa parte del software si preoccupa di registrare tutte le azioni svolte in modo da poterle consultare a processo finito. Questa parte del software inoltre si interfaccia con il software gestionale aziendale ad esempio per registrare la produzione di un nuovo prodotto o di un semilavorato.

Il nostro approccio nello sviluppo di software industriale e di configurazione#

Un software industriale è composto da due parti:

  • la parte di interfaccia utente che permette l'interazione dell'utente con la macchina;
  • la parte di software a basso livello che "dialoga" con la macchina;

L'approccio "classico" sarebbe quello di realizzare un software monolitico che implementa tutte e due le parti, ma è l'approccio sbagliato perché:

  • si utilizzerebbe un solo linguaggio di programmazione, ma i linguaggi a basso livello (es. C, C++) non vanno bene per realizzare interfacce usabili e accattivanti e allo stesso modo i linguaggi pensati per realizzare interfacce utente non sono indicati per implementare il dialogo a basso livello con l'hardware;
  • chi sviluppa il software dovrebbe essere un esperto dei dettagli dell'hardware da comandare (in gergo un hardwareista) e al contempo un esperto di usabilità e di sviluppo di interfacce usabili. Caratteristiche che non si trovano in una sola persona.

Il nostro approccio prevede invece di suddividere il software in due parti:

  • Una CLI (command line interface) realizzata direttamente da chi ha progettato l'hardware e ne conosce i dettagli. Questa parte la sviluppa chi ha realizzato l'hardware o il firmware presente sulla scheda da comandare, tipicamente l'azienda che ci commissiona lo sviluppo dell'applicativo desktop.
  • L'applicativo desktop che si occupa dell'interazione con l'utente. Noi ci occupiamo dello sviluppo di questa parte.

I due software dialogano tra di loro tramite il meccanismo dei socket o delle PIPE e sono responsabili ciascuno della propria parte.

I vantaggi sono molteplici:

  • lo sviluppo può avvenire in parallelo. Una volta definito il protocollo di dialogo tra le due parti ciascuno può procedere a sviluppare la propria.
  • è possibile testare ciascuna parte singolarmente. Ad esempio per effettuare il testing delle interfacce senza avere la CLI vera è possibile realizzare una CLI "fantoccio" che simula le risposte della CLI reale e permette di provare l'interfaccia ancor prima che l'hardware sia pronto.
  • lo sviluppo può avvenire da remoto. Chi sviluppa l'interfaccia non ha bisogno di avere l'hardware fisico a disposizione.
  • la proprietà intellettuale e i segreti di chi ha progettato l'hardware restano protetti. Chi sviluppa l'interfaccia utente non ha bisogno di conoscere i dettagli dell'hardware.
  • è possibile utilizzare il linguaggio di programmazione più adatto allo scopo. I due software sono scritti da persone diverse con gli strumenti più adatti al caso.

Quanto costa un software desktop?#

Effettuare una stima del costo di un software desktop di automazione industriale o standalone è un'attività piuttosto complessa.

Si può dire che alcuni dei parametri che vengono valutati per effettuare una stima sono i seguenti:

  • numero e tipologia delle interfacce uomo-macchina;
  • numero e tipologia dei dispositivi su cui verrà eseguito il software;
  • numero e tipologia degli attuatori che andranno comandati (Es. periferiche, motori, ecc.);
  • complessità del ciclo di controllo che andrà implementato: numero degli stati, transizioni;
  • complessità delle scelte di configurazione che è possibile compiere prima dell'avvio del ciclo;
  • numero e tipologia di interventi umani e interazioni uomo macchina;
  • quantità di anomalie da gestire e complessità della loro gestione;
  • grado di parallelismo delle attività compiute dalla macchina: sequenziale o movimentazioni concorrenti?
  • protocolli di comunicazione da implementare con i motori, i sensori, i lettori di barcode ecc.

Per avere un'idea di massima è possibile utilizzare il nostro calcolatore prezzi

Calcolatore online preventivo app desktop#

Rispondendo alle domande del calcolatore puoi farti un'idea APPROSSIMATIVA di tempi e costi per lo sviluppo del software desktop di tuo interesse.

NON è richiesta nessuna email: il calcolatore ti dà subito il risultato.

Che piattaforme deve supportare la App?
La App deve gestire utenti con livelli di accesso diversi e permessi diversi?
La App deve interfacciarsi con hardware specifico?
La App deve interfacciarsi con database specifici?
La App deve generare delle stampe in PDF?
La App deve esportare dei dati in formato Excel o CSV?
La App deve importare dei dati da file in formato Excel o CSV?
La App deve consentire una qualche forma di configurazione visuale/grafica come un piccolo CAD?
Come viene distribuita la app?
La App deve avere una dashboard riepilogativa che fornisca delle statistiche d'insieme come ad esempio l'elenco dei sensori e il loro stato?
La App deve essere multilingua?
La app deve permettere all'utente di salvare e caricare il lavoro su disco ("Apri", "Salva", "Salva con nome...")?

Sto calcolando...

Tecnologie solide e collaudate

Non seguiamo le mode del momento, ma preferiamo soluzioni solide e collaudate. Per questo motivo tutti i progetti che sviluppiamo sono basati su poche tecnologie tra le più usate nel settore:

Esperienza

In media ogni cliente ci affida lo sviluppo di 2 progetti a dimostrazione della nostra serietà, competenza e della sua soddisfazione.

Anni di attività
12
Progetti realizzati
193
Clienti soddisfatti
90

Testimonianze#

Di seguito troverai il parere delle persone che ci hanno dato fiducia e con cui abbiamo avuto il piacere di lavorare. Le testimonianze sono certificate da Google .

Mi sono rivolto a Garda Informatica su suggerimento di un amico Ing. Qualche anno fa decisi di aprire una società che si occupasse della progettazione, costruzione ed installazione di opere in ferro. Ai tempi, quello che avevo era solo una profonda conoscenza tecnica, mancava quello che si può definire un vero e proprio "portfolio clienti". Conobbi così Giovanni e Lorenzo e, con loro, si studiò un piano marketing che puntasse sulla promozione in rete di specifici prodotti. I primi contatti ed una buona porzione delle ns. attuali prestazioni e forniture li dobbiamo al loro lavoro.
Professionalmente posso dire di aver collaborato con tecnici competenti e preparati, i quali hanno saputo innanzitutto ascoltare quelle che fossero le ns. esigenze ed i ns. obiettivi, per poi contribuire alla loro realizzazione.
Proprio per questi motivi raccomando Garda Informativa a professionisti e/o società come la ns.

Ho contattato Garda Informatica poiché desideravo realizzare un programma personalizzato, che rispondesse alla precise necessità della mia azienda. Ho incontrato i titolari, gli Ing. Giovanni e Lorenzo Chiodi, che si sono dimostrati molto disponibili e preparati ad aiutarci per la realizzazione del prodotto di cui avevamo bisogno.
Hanno esaminato con attenzione e pazienza le nostre richieste e ci hanno formulato la loro proposta, chiara e funzionale. Ci è stato offerto un adeguato tempo per valutare il prodotto e per sollevare eventuali richieste ed abbiamo avuto la possibilità di richiedere integrazioni e modifiche, sia in corso d’opera che successivamente.
Raccomanderei di certo l’azienda Garda Informatica, per la preparazione, la cortesia, la precisione e la puntualità con la quale assistono i clienti e potenziali tali.

La perplessità iniziale è stata quella di trovare un'azienda che fosse affidabile, competente e rispondesse esattamente alle nostre esigenze.
Avevamo la necessità di creare un software, che stavamo pagando in abbonamento, che fosse personalizzato secondo le nostre necessità.
L’esperienza professionale con Garda Informatica è stata ottima: risposte sempre celeri e precise, molta disponibilità nell'esaudire le richieste, alto livello di competenza.
Personalmente ho molto apprezzato l’approccio di collaborazione instaurato, che si staccava un po' dal classico rapporto fornitore/cliente; la trasparenza riguardo la creazione del software e la consegna dei codici sorgente con tutte le informazioni necessarie per poter eventualmente proseguire anche da soli senza lasciare aloni di mistero in merito.
Software house che consiglio e promuovo a pieni voti, con la quale spero ci possa essere nuovamente occasione per collaborare.

Abbiamo contattato Garda Informatica per lo sviluppo di un'applicazione utile ad ampliare l'integrazione e l'utilizzo dei nostri prodotti con piattaforme di terze parti.
Ci hanno supportato e consigliato in tutte le fasi, dalla definizione dei requisiti fino al rilascio, ascoltando le nostre richieste e arrivando a realizzare proprio quello di cui avevamo bisogno.

Ho contattato la Garda Informatica per un progetto che richiedeva competenze sia nella gestione di interfacce utenti, sia di programmazione vera e propria. Ho trovato due professionisti estremamente competenti, che hanno realizzato il progetto come lo avevo visualizzato in maniera esemplare, in meno tempo del previsto, introducendo alcuni miglioramenti che lo hanno reso sia più efficiente che più attraente esteticamente, completandolo dove io non ero arrivato a progettare, estendendone l'uso anche alle piattaforme smartphones sebbene questo non fosse stato loro richiesto! Hanno accolto di buon grado anche le ulteriori richieste che ho fatto loro in corso di progetto, hanno collaborato sempre con pazienza e consigli preziosi, hanno presentato un prodotto finale il cui debugging si è rivelato molto più agevole di quanto temessi per un progetto relativamente complesso. In poche parole, non posso che elogiare la competenza e la sensibilità alle richieste del cliente da parte della Garda Informatica, e raccomandare le loro capacità nei termini più entusiastici.

Mario Vietri
Professore
Scuola Normale Superiore (Pisa)

Quando lavori nel reparto IT di un'azienda, e quando riesci a rispondere alle richieste della proprietà con le soluzioni di Garda Informatica, allora capisci che non hai trovato un fornitore...ma il partner ideale. Parlando personalmente, è un rapporto consolidato da anni di grandi progetti e soddisfazioni.

A differenza delle aziende di produzione, per le aziende di servizi, come NRG, non sono disponibili soluzioni chiavi in mano e quindi è stato necessario commissionare lo sviluppo di un gestionale su misura. Grazie al lavoro di Garda Informatica, NRG è in grado di assicurare un servizio d'avanguardia ai propri Clienti i quali possono così effettuare in autonomia spedizioni in tutto il Mondo e a prezzi competitivi.

Software House fatta da ragazzi preparati gentili e cosa importante capaci di interpretare e trovare soluzioni facili alle problematiche aziendali proposte. 2 anni e più di collaborazione veramente consigliati.

Altissima professionalità e competenza unita a cortesia e grande disponibilità. In Garda Informatica ho trovato un'azienda seria e molto competente. L'unica che sia riuscita senza problemi a realizzare in modo ottimale ed in tempi stretti quello che cercavo. Confido in una lunga e soddisfacente collaborazione. Aggiungo, oltre alle preziose competenze, l'attenzione al cliente e la disponibilità dei titolari. Un grazie a Giovanni e Lorenzo. Rivolgetevi a loro con fiducia.

Azienda seria e competente che soddisfa con professionalità e tempestività le esigenze del cliente. Alta competenza e ottimi risultati. Pienamente soddisfatto.

Antonio Ghigliotti
Titolare
AG TEK LTD (Genova)

Garda Informatica ha fatto un lavoro impeccabile nello sviluppo dell'applicazione Sportfai. Il plus di questa azienda è sicuramente la capacità di comprendere le necessità del cliente, supportarlo nelle scelte tecniche e consigliarlo con soluzioni rapide ed efficaci.

Chi siamo#

Siamo due ingegneri informatici nonché fratelli, con la passione per lo sviluppo software. Sviluppare software è quello che amiamo fare da quando ci regalarono il nostro primo personal computer: un Commodore 64 che nostro padre, anch'egli ingegnere, acquistò nel lontano 1984 e con cui abbiamo cominciato a fare i nostri primi esperimenti. In più di 30 anni ne è passata di acqua sotto i ponti dell'informatica, ma la nostra passione e la nostra curiosità per questo "paese delle meraviglie" resta immutata. Nel 2011 abbiamo fondato Garda Informatica e da oltre 12 anni sviluppiamo applicativi web con l'aiuto del nostro team.

Lorenzo Chiodi

Ruolo: Senior developer
Zona: Brescia e da remoto tutta Italia

Giovanni Chiodi

Ruolo: Senior developer
Zona: Brescia e da remoto tutta Italia

Giulia Gemmellaro

Ruolo: UI/UX Designer
Zona: Roma e da remoto tutta Italia

Storia

Di seguito i principali avanzamenti tecnologici raggiunti da quando siamo partiti.

Contattaci#

Ti risponderemo il prima possibile. I campi marcati con * sono obbligatori. Inviando i dati della form accetti le condizioni sulla privacy riportate in calce a questo sito.

(Vuoi farti un'idea di tempi e costi? Prova il nostro calcolatore online!)

Attendere prego...

Telefono: 030 68 98 477 (Vuoi farti un'idea di tempi e costi? Prova il nostro calcolatore online!)

Indirizzo: Via Padana Superiore 82/i - 25080 Mazzano (Brescia)

👉 Indicazioni stradali

Ultime dal Blog#

Vai all'elenco completo
closeIcona closesearchIcona searchmore vertIcona more vertmenuIcona menushareIcona sharelinkIcona linkgradeIcona gradephoneIcona phoneplaceIcona placearrow upwardIcona arrow upward