I 10 principali vantaggi dell’utilizzo di Laravel PHP Framework

In questo articolo elencheremo alcuni dei problemi più comuni, che sorgono molto spesso durante lo sviluppo web, e dimostreremo come Laravel ci consente di risolvere rapidamente tutti questi problemi comuni con un costo ragionevole.

Il framework Laravel è molto popolare per lo sviluppo di software personalizzato. È il framework PHP più stellato su Github: più di 56.000 sviluppatori da tutto il mondo apprezzano molto le solide funzionalità di questa piattaforma.

Perché Laravel è così popolare? Perchè fornisce gli strumenti giusti per creare applicazioni Web più velocemente, più stabili e di facile manutenzione.

1) Autorizzazioni e Login Utenti
2) Servizi di email
3) Velocità
4) Sicurezza
5) Gestione degli errori
6) Automazioni dei Test
7) Url e Routing
8) MVC
9) Gestione delle code di messaggi
10) Programmazione di operazioni


1. Autorizzazioni e Login Utenti

Ogni proprietario di un’ applicazione Web deve garantire che gli utenti siano coloro che affermano di essere e quindi impedire agli utenti non autorizzati di accedere a risorse protette o a pagamento.

Laravel rende l’implementazione dell’autenticazione molto semplice. Quasi tutto è configurato out-of-the-box. Laravel fornisce anche un modo semplice per organizzare la logica di autorizzazione e controllare l’accesso alle risorse.

2. Servizi di email

Il servizio di posta può essere utilizzato per inviare notifiche alle e-mail degli utenti dopo vari eventi. È difficile immaginare un’applicazione Web moderna, ad esempio, priva anche di una semplice notifica e-mail a un nuovo utente sulla sua corretta registrazione sul sito Web.

Laravel fornisce un’API semplice e pulita sulla popolare libreria SwiftMailer. Laravel fornisce anche driver per SMTP, Mailgun, Mandrill, SparkPost, Amazon SES, la funzione “mail” di PHP e “sendmail”, consentendo a un’applicazione di iniziare rapidamente a inviare posta tramite un servizio locale o basato su cloud. Oltre al supporto per l’invio di e-mail, Laravel fornisce supporto per l’invio di notifiche attraverso una varietà di canali di consegna, inclusi SMS, Whatsapp e Slack.

3. Velocità

È importante non solo creare un’applicazione, ma anche creare un’applicazione veloce, che si tradurrà in un’accelerazione delle entrate. L’integrazione con il cosiddetto backend di caching è spesso uno dei passaggi principali per migliorare le prestazioni di un’applicazione web.

Laravel supporta i backend di cache piu’ popolari come Memcached e Redis pronti all’uso. Per impostazione predefinita, Laravel è configurato per utilizzare il driver della cache dei file, che memorizza gli oggetti memorizzati nella cache nel file system. Per applicazioni più grandi, è meglio utilizzare una cache in memoria come Memcached o APC. Tuttavia, con Laravel è anche possibile configurare più configurazioni di cache.

4. Sicurezza

Le vulnerabilità della sicurezza vanno di pari passo con lo sviluppo di qualsiasi applicazione web. L’organizzazione no-profit americana, The OWASP Foundation, descrive le vulnerabilità più critiche per la sicurezza delle applicazioni Web:
– iniezione SQL
– falsificazione di richieste tra siti
– scripting tra siti, ecc.

Lo sviluppatore non deve dimenticarli ed essere in grado di risolverli tutti prima della consegna .

Laravel aiuta a proteggere l’applicazione Web proteggendola dai rischi per la sicurezza più gravi: SQL injection, falsificazione di richieste tra siti e scripting tra siti. Laravel stesso è sicuro. Possiamo dire in prima persona che la base di codice è fanaticamente protetta e che il codice è stato controllato da diverse persone.

5. Gestione degli errori

Il modo in cui un’applicazione software gestisce gli errori può avere un grande impatto sulla soddisfazione degli utenti e sull’usabilità dell’applicazione. I moduli di immissione dati sono uno dei luoghi più comuni in cui gli errori vengono identificati e presentati dopo che gli utenti fanno clic su un pulsante Invia. Se qualcosa non funziona perché l’utente ha fatto qualcosa di sbagliato, dovrebbe esserne informato nel modulo conveniente. Se l’azione dell’utente non può essere completata perché l’utente ha inviato dati errati, dovrebbe essere segnalato a lui/lei in un messaggio di errore informativo.

Senza un’adeguata gestione degli errori, l’utente può decidere che il problema è nell’applicazione (non è in servizio) e allontanarsi dall’applicazione per sempre. Nessuno vuole perdere i propri clienti o deluderli.

La gestione degli errori e delle eccezioni è già configurata per qualsiasi nuovo progetto basato su Laravel. Inoltre, Laravel è integrato con la libreria di registrazione Monolog, che fornisce supporto per una varietà di potenti gestori di log.

6. Automazioni dei Test

Senza testare e verificare ciò che lo sviluppatore ha creato, come può chiunque (incluso lo sviluppatore) essere sicuro che il software funzionerà senza arresti anomali, bug, errori e in conformità con i requisiti dell’applicazione iniziale? I test di automazione richiedono meno tempo e in molti casi sono più precisi rispetto ai test manuali.

Laravel è costruito pensando ai test. In effetti, il supporto per i test con PHPUnit è incluso immediatamente e un file phpunit.xml è già configurato per l’applicazione. Il framework viene inoltre fornito con comodi metodi di supporto che consentono il test espressivo delle applicazioni. Fornisce modi semplici per simulare il comportamento di base degli utenti (effettuando richieste all’applicazione ed esaminando l’output, ad esempio facendo clic sui collegamenti, compilando moduli).

7. Url e Routing

Gli utenti utilizzeranno un’applicazione Web facendo clic o digitando collegamenti. Spereranno di vedere il contenuto desiderato, ad esempio un articolo, un modulo di contatto, una descrizione di un prodotto, ecc. Se non c’è un routing URL, l’applicazione Web non capirà mai ciò che l’utente vuole vedere e potrebbe mostrare una pagina vuota o una pagina di errore invece.

Tutti i percorsi Laravel sono definiti nel file app/Http/routes.php, che viene caricato automaticamente dal framework. Le route Laravel più elementari accettano semplicemente un URI e una Closure, fornendo un metodo molto semplice ed espressivo per definire le rotte.

8. MVC

Ossia, separazione di “Business Logic Code” da “Presentation Code”

Tale separazione consente ai progettisti di layout HTML (personale meno costoso) di modificare facilmente l’aspetto di una pagina Web senza interagire con gli sviluppatori (cose più costose). Eventuali correzioni di bug e richieste di funzionalità verrebbero eseguite dagli sviluppatori più rapidamente se tutto il codice di programmazione dell’applicazione Web avesse la separazione appropriata nella fase iniziale dello sviluppo.

Laravel è un framework MVC, quindi la separazione è già stata eseguita.

9. Gestione delle code di messaggi

Non si tratta solo di semplici messaggi di posta elettronica, ma di molte forme di comunicazione tra diverse parti dell’applicazione o tra diverse applicazioni. Più traffico riceve un’applicazione Web, più richieste deve gestire al secondo, maggiore sarà il rischio che l’hosting di questa applicazione sia molto costoso o che il server Web smetta di funzionare con la perdita di dati.

Per prevenirlo, gli sviluppatori possono decidere di utilizzare il sistema di code dei messaggi all’inizio dello sviluppo del progetto, tra le altre tecniche per il bilanciamento del carico, l’aumento della velocità dell’applicazione e il mantenimento dell’integrità dei dati.

Il servizio di coda di Laravel fornisce un’API unificata su una varietà di diversi backend di coda. Le code ti consentono di rinviare l’elaborazione di un’attività che richiede tempo, come l’invio di un’e-mail, a un momento successivo, il che velocizza drasticamente le richieste Web alla tua applicazione.

10. Programmazione di operazioni

Che sia necessario inviare e-mail agli abbonati ogni mattina o pulire automaticamente le tabelle del database a fine giornata (per rendere l’applicazione più veloce e ridurre i costi di hosting), qualsiasi app Web necessita di un meccanismo di pianificazione delle attività per occuparsi dei compiti, quando è il momento.

In passato, gli sviluppatori generavano una voce Cron per ogni attività che dovevano pianificare. Tuttavia, questa non è un buona pratica. Tale pianificazione delle attività non è più nel controllo del codice sorgente e gli sviluppatori devono collegarsi via SSH nel server per aggiungere le voci Cron. Lo scheduler dei comandi di Laravel consente la definizione fluida ed espressiva della pianificazione dei comandi all’interno di Laravel stesso, ed è necessaria solo una singola voce Cron sul server.

Cosa c’è di nuovo in Flutter 3

Flutter 3 rappresenta il culmine del viaggio di Google verso lo sviluppo dell’interfaccia utente multipiattaforma su mobile, desktop e Web e completa la roadmap da un framework incentrato sui dispositivi mobili a un framework multipiattaforma, con la disponibilità del supporto per app desktop macOS e Linux, insieme a miglioramenti all’integrazione di Firebase, nuove funzionalità di produttività e prestazioni e supporto per Apple Silicon. In un altro articolo abbiamo spiegato in breve quali sono i principali vantaggi dello sviluppo su Flutter.

In questo articolo invece vi proponiamo le principli novità che la versione 3 di Flutter ha introdotto:

1) Il percorso verso Flutter 3
2) Introduzione a Flutter 3
3) Firebase e Flutter
4) Flutter Casual Games Toolkit
5) Sponsorizzato da Google, alimentato dalla community


1. Il percorso verso Flutter 3

Flutter è stato avviato come tentativo di rivoluzionare lo sviluppo di app: combinando il modello di sviluppo iterativo del Web con il rendering grafico con accelerazione hardware e il controllo a livello di pixel che in precedenza erano appannaggio dei giochi. Negli ultimi quattro anni dalla versione beta di Flutter 1.0, è stato gradualmente costruito su queste basi, aggiungendo nuove funzionalità del framework e nuovi widget, una maggiore integrazione con le piattaforme sottostanti, una ricca libreria di pacchetti e molti miglioramenti delle prestazioni e degli strumenti

Con la maturazione del prodotto, molti sviluppatori Flutter hanno iniziato a creare app con esso. Oggi ci sono oltre 500.000 app create con Flutter.

Flutter aiuta a creare bellissime app più rapidamente per più piattaforme. Nel più recente studio di Google sugli utenti:

– Il 91% degli sviluppatori ha convenuto che Flutter ha ridotto il tempo necessario per creare e pubblicare un’app.
– L’85% degli sviluppatori ha convenuto che Flutter ha reso la propria app più bella di prima.
– L’85% ha convenuto che ha consentito loro di pubblicare la propria app per più piattaforme rispetto a prima.

In un recente post sul blog di Sonos in cui discuteva della loro esperienza di configurazione rinnovata, hanno sottolineato il secondo di questi:

“Non è un’esagerazione dire che Flutter ha sbloccato un grado di “premium” diverso da qualsiasi cosa il nostro team avesse offerto prima. La cosa più importante per i nostri progettisti, la facilità con cui è possibile creare nuove interfacce utente significa che il nostro team dedica meno tempo a dire “no” alle specifiche e più tempo a ripeterle. Se vi sembra che ne valga la pena, vi consigliamo di provare Flutter: noi siamo contenti di averlo fatto.”

2. Introduzione a Flutter 3

Con Flutter 3, si possono creare esperienze straordinarie per sei piattaforme da un’unica base di codice, offrendo agli sviluppatori una produttività senza precedenti e consentendo alle startup di portare nuove idee nel mercato complete sin dal primo giorno.

Nelle versioni precedenti, sono stati integrati iOS e Android con il supporto Web e Windows e ora Flutter 3 aggiunge il supporto stabile per le app macOS e Linux. L’aggiunta del supporto della piattaforma richiede più del rendering dei pixel: include nuovi modelli di input e interazione, supporto per la compilazione e la creazione, accessibilità e internazionalizzazione e integrazione specifica della piattaforma. L’ obiettivo è dare la flessibilità necessaria per sfruttare appieno il sistema operativo sottostante condividendo tutta l’interfaccia utente e la logica necessarie.

Su macOS, vi è stato un investimento nel supporto di Intel e Apple Silicon, con il supporto Universal Binary che consente alle app di impacchettare eseguibili eseguiti in modo nativo su entrambe le architetture. Su Linux, Canonical e Google hanno collaborato per offrire un’opzione di sviluppo altamente integrata e all’avanguardia.

Flutter 3 migliora anche molti dei fondamentali, con prestazioni migliorate, supporto per Material You e aggiornamenti della produttività.

Oltre al lavoro sopra menzionato, con questa versione Flutter è completamente nativo su Silicon Apple per lo sviluppo. Sebbene Flutter sia compatibile con i dispositivi Apple con tecnologia M1 sin dal loro rilascio, Flutter ora sfrutta appieno il supporto di Dart per il Silicon Apple, consentendo una compilazione molto più rapida su dispositivi basati su M1 e supporto per binari universali per app macOS.

Il lavoro per Material Design 3 è in gran parte completo in questa versione, consentendo agli sviluppatori di sfruttare un sistema di progettazione adattabile e multipiattaforma che offre schemi di colori dinamici e componenti visivi aggiornati:

3. Firebase e Flutter

Naturalmente, c’è molto di più nella creazione di un’app rispetto al semplice un framework per l’interfaccia utente. Gli editori di app hanno bisogno di una suite completa di strumenti per creare, rilasciare e utilizzare le tue app, inclusi servizi come autenticazione, archiviazione dati, funzioni cloud e test dei dispositivi. Esistono numerosi servizi che supportano Flutter, inclusi Sentry, AppWrite e AWS Amplify.

L’offerta di Google per i servizi di app è Firebase e gli studi di benchmarking degli sviluppatori di SlashData mostrano che il 62% degli sviluppatori Flutter utilizza Firebase nelle proprie app. Quindi, nelle ultime versioni, il team di Flutter ha lavorato con Firebase per espandere e integrare meglio Flutter come integrazione di prima classe. Ciò ha incluso il portare i plug-in Firebase per Flutter alla versione 1.0, l’aggiunta di documentazione e strumenti migliori e nuovi widget come l’interfaccia utente FlutterFire che fornisce agli sviluppatori un’interfaccia utente riutilizzabile per le schermate di autenticazione e profilo.

Con la nuova versione viene annunciato il passaggio dell’integrazione Flutter/Firebase a una parte centrale completamente supportata dell’offerta Firebase e si potrà contare sull’evoluzione del supporto Firebase per Flutter in sintonia con Android e iOS.

Inoltre, sono stati apportati importanti miglioramenti per supportare le app Flutter utilizzando Crashlytics, il popolare servizio di segnalazione degli arresti anomali in tempo reale di Firebase. Con gli aggiornamenti del plug-in Flutter Crashlytics, si puo’ tenere traccia degli errori irreversibili in tempo reale, offrendo lo stesso insieme di funzionalità disponibili per altri sviluppatori iOS e Android. Ciò include avvisi e metriche importanti come “utenti senza arresti anomali” che aiutano a mantenere il controllo della stabilità della tua app. La pipeline di analisi di Crashlytics è stata aggiornata per migliorare il clustering degli arresti anomali di Flutter, rendendo più veloce il triage, la definizione delle priorità e la risoluzione dei problemi.

4. Flutter Casual Games Toolkit

Per la maggior parte degli sviluppatori, Flutter è un framework per app.

Ma c’è anche una comunità in crescita intorno allo sviluppo di giochi casuali, che sfrutta il supporto grafico con accelerazione hardware fornito da Flutter insieme a motori di gioco open source come Flame. Si vuole facilitare l’avvio degli sviluppatori di giochi casuali, quindi è stato creato il Casual Games Toolkit, che fornisce uno starter kit di modelli e best practice insieme a crediti per annunci e servizi cloud.

5. Sponsorizzato da Google, alimentato dalla community

Una cosa che amiamo di Flutter è che non è solo un prodotto Google, è un prodotto “per tutti”. Open source significa che tutti possono partecipare e avere un interesse nel suo successo, sia contribuendo con nuovo codice o documentazione, creando pacchetti che conferiscono alla struttura di base nuovi superpoteri, scrivendo libri e corsi di formazione che insegnano ad altri, o aiutando a organizzare eventi e gruppi di utenti .

Cos’è e come funziona WordPress

WordPress è un sistema di gestione dei contenuti (CMS) open source che consente agli utenti di creare siti Web e blog dinamici.

WordPress è il sistema di blogging più diffuso sul web e consente di aggiornare, personalizzare e gestire un sito sito web dal suo CMS e componenti di back-end, fino ad arrivare all sviluppo di web applications piuttosto complesse.

1) Come funziona WordPress
2) Vantaggi di WordPress
3) Svantaggi di WordPress
4) Cosa sono i temi di WordPress
4) Cosa sono i plugin di WordPress


Come funziona WordPress

Wordpres è basicamente un sistema di pubblicazione di articoli e pagine web e nasce principalmente per creare piattaforme di blogging facilmente gestibili. Chi si occupa di sviluppo WordPress sa che attualmente puo’ essere esteso per creare funzionalità molto più complesse.

WordPress è stato inizialmente rilasciato il 27 maggio 2003 da Matt Mullenweg e Mike Little. WordPress è stato annunciato come open source nell’ottobre 2009.

Che cos’è un sistema di gestione dei contenuti (CMS)?

Il Content Management System (CMS) è un software che memorizza tutti i dati come testo, foto, musica, documenti, ecc. ed è reso disponibile sul tuo sito web. Aiuta nella modifica, pubblicazione e modifica del contenuto del sito web. Beninteso,  si possono utilizzare altri strumenti per la creazione personalizzata di applicazioni web, come spieghiamo nell’articolo dedicato alla creazione di un CRM con Laravel.

Caratteristiche di WordPress

Gestione degli utenti: consente di gestire le informazioni dell’utente come cambiare il ruolo degli utenti in (abbonato, collaboratore, autore, editore o amministratore), creare o eliminare l’utente, modificare la password e le informazioni sull’utente. Il ruolo principale del gestore utenti è l’autenticazione.

Gestione multimediale: È lo strumento per la gestione dei file e delle cartelle multimediali, in cui puoi caricare, organizzare e gestire facilmente i file multimediali sul tuo sito web.

Sistema di temi: consente di modificare la visualizzazione e la funzionalità del sito. Include immagini, fogli di stile, file modello e pagine personalizzate.

Sistema di plug-in: Sono disponibili diversi plug-in che forniscono funzioni e caratteristiche personalizzate in base alle esigenze degli utenti.

Ottimizzazione dei motori di ricerca: Fornisce diversi strumenti di ottimizzazione dei motori di ricerca (SEO) che semplificano la SEO sul sito

Multilingue: consente di tradurre l’intero contenuto nella lingua preferita dall’utente.

Importazione dati: Consente di importare dati sotto forma di post. Importa file personalizzati, commenti, pagine di post e tag.

Vantaggi di WordPress?

1. È una piattaforma open source e disponibile gratuitamente.
2. I file CSS possono essere modificati in base al design secondo le esigenze degli utenti.
3. Ci sono molti plugin e temi disponibili gratuitamente. Gli utenti possono personalizzare i vari plugin secondo le loro necessità.
4. È molto facile modificare il contenuto poiché utilizza l’editor WYSIWYG (What You See Is What You Get è un’interfaccia utente che consente all’utente di manipolare direttamente il layout del documento senza disporre di un comando di layout).
5. I file multimediali possono essere caricati facilmente e rapidamente.
6. Offre diversi strumenti SEO che semplificano la SEO in loco.
7. La personalizzazione è facile in base alle esigenze dell’utente.
8. Consente di creare ruoli diversi per gli utenti del sito Web come amministratore, autore, editore e collaboratore.

Svantaggi di WordPress

1. L’utilizzo di diversi plug-in può rendere pesante il caricamento e l’esecuzione del sito Web.
2. La conoscenza di PHP è necessaria per apportare modifiche o cambiamenti nel sito Web di WordPress.
3. A volte è necessario aggiornare il software per mantenere aggiornato WordPress con i browser e i dispositivi mobili correnti. L’aggiornamento della versione di WordPress porta alla perdita di dati, quindi è necessaria una copia di backup del sito web.
4. Modificare e formattare le immagini grafiche e le tabelle è difficile.
5. La sicurezza di WordPress è un grosso problema.

Cosa sono temi di WordPress

Un tema è una cartella zippata con un gruppo di file, incluso un insieme di modelli di pagina scritti nel linguaggio di programmazione PHP combinato con alcuni fogli di stile CSS.

Quando si crea per la prima volta un sito WordPress, verrà fornito con un tema predefinito installato. Si può cambiare il tema in WordPress in base alle proprie esigenze e al proprio settore. La scelta del tema giusto può rendere il proprio sito web più attraente, più facile da usare e migliorare il coinvolgimento dei visitatori.

Un tema WordPress è una cartella di file che lavorano insieme per creare il design del proprio sito. Un tema include file modello, fogli di stile, immagini e possibilmente file JavaScript. Tutti questi file cambiano il modo in cui vengono visualizzati i post e le pagine del tuo blog.

La modifica del tema di WordPress non cambierà necessariamente il contenuto del blog, le pagine, gli utenti o altre informazioni memorizzate nel database. Il tuo tema cambia solo il modo in cui tutte queste informazioni vengono visualizzate ai visitatori del tuo sito web.

Ci sono migliaia di temi WordPress gratuiti e premium disponibili per l’uso.

I temi gratuiti possono essere scaricati dalla directory ufficiale dei temi di WordPress oppure si possono acquistare temi premium con funzionalità più avanzate da sviluppatori di terze parti. Si possono anche creare i propri temi personalizzati per un web design unico.

Cosa sono plugin di WordPress

Un plugin è un software contenente un gruppo di funzioni che possono essere aggiunte a un sito Web WordPress. Possono estendere le funzionalità o aggiungere nuove funzionalità ai propri siti Web WordPress.

I plugin di WordPress sono scritti nel linguaggio di programmazione PHP e si integrano perfettamente con WordPress. Nella comunità di WordPress si usa dire: “c’è un plugin per questo”. I plugins rendono più facile per gli utenti aggiungere funzionalità al proprio sito Web senza conoscere una sola riga di codice.

Ci sono migliaia di plugin di WordPress disponibili gratuitamente nella directory ufficiale dei plugin di WordPress. Oltre ai plug-in gratuiti, ci sono tantissimi fantastici plug-in commerciali disponibili da aziende e sviluppatori di terze parti.

Cos’è e come funziona Laravel

Laravel è un framework PHP con una sintassi espressiva ed elegante che fornisce una struttura e un punto di partenza per creare applicazioni web, permettendo agli sviluppatori di concentrarsi sulla logica del prodotto.

Laravel si sforza di fornire un’esperienza di sviluppo straordinaria fornendo funzionalità potenti come l’iniezione completa delle dipendenze, un livello di astrazione del database espressivo, code e processi pianificati, unit tests, integrazione e altro ancora.

Il suo grado di specializzazione fa si che esista ormai una figura professionale specifica di sviluppatore Laravel in grado di padroneggiare velocemente e con efficacia i vari strumenti messi a disposizione dal framework.

In questo artcolo vi proponiamo un riassunto dei concetti fondamentali di Laravel:

1) Perchè usare Laravel?
2) Quali sono i pro e i contro di Laravel?
3) Conclusione

Per entrare nel dettaglio dei principali vantaggi di Laravel potete fare riferimento a quest’articolo.


Perchè usare Laravel?

Ci sono una varietà di strumenti e framework a disposizione degli sviluppatori per la creazione di applicazioni web. Tuttavia, riteniamo che Laravel sia la scelta migliore per creare applicazioni Web moderne e complete.

Un framework “progressivo”

Ci piace chiamare Laravel un framework “progressivo”. Con questo intendiamo che Laravel cresce con lo sviluppatore. Anche se si stanno solo muovendo i primi passi nello sviluppo web, la vasta libreria di documentazione, guide e tutorial video di Laravel sono di grande aiuto per imparare le basi senza essere sopraffatti.

Agli sviluppatori senior invece, Laravel offre strumenti robusti per l’iniezione delle dipendenze, i test delle unità, le code, gli eventi in tempo reale e altro ancora. Laravel è ottimizzato per la creazione di applicazioni Web professionali ed è pronto per gestire i carichi di lavoro aziendali.

Un framework scalabile

Laravel è incredibilmente scalabile. Grazie al ridimensionamento di PHP e al supporto integrato di Laravel per sistemi di cache veloci e distribuiti come Redis, il ridimensionamento orizzontale con Laravel è un gioco da ragazzi. In effetti, le applicazioni Laravel sono state facilmente ridimensionate per gestire centinaia di milioni di richieste al mese.

Se c’è bisogno di un ridimensionamento estremo, piattaforme come Laravel Vapor consentono di eseguire l’ applicazione Laravel su scala quasi illimitata sulla più recente tecnologia serverless di AWS.

Una framework orientato alla community

Laravel combina i migliori pacchetti nell’ecosistema PHP per offrire il framework disponibile più robusto e adatto agli sviluppatori. Inoltre, migliaia di sviluppatori di talento da tutto il mondo hanno contribuito al framework.

Quali sono i pro e i contro di Laravel?

Laravel è il Framework leader costruito in PHP. E sì, ha pro e contro. Analizzeremo i punti principali dando per scontato che punti come l’affidabilità, flessibilità, velocità ecc. siano presi come ovvi Pro.

Pro:

Pacchetti e disponibilità delle risorse: Laravel ha un’integrazione con Composer per risolvere le dipendenze, di gran lunga la fonte di pacchetti più affidabile nel mondo di PHP. Si combina con Gulp ed Elixir per la produzione di risorse e per la revisione degli assets in modo da poter beneficiare dei pacchetti npm e dei pacchetti bower. Gulp riceverà felicemente le risorse da npm e bower per il front-end statico e composer alimenterà il backend con solide revisioni e aggiornamenti tempestivi con una funzione di blocco su determinate versioni.

Sviluppo standardizzato: Laravel funziona sugli standard PSR 7, di gran lunga lo standard più consigliato attualmente.
Funziona su PHP 7: S! Funziona su PHP7!!

Integrazione Eloquent: Eloquent è un potente ORM e penso che chiunque lavori con PHP sarebbe d’accordo nel dire che è uno dei pochissimi ORM ben scritti disponibili. E tutti questi buoni ORM sono sviluppati indipendentemente dalla comunità che sviluppa il framework, quindi Framework come Laravel risolvono le dipendenze e ottengono aggiornamenti anche dal team di ORM.

Sviluppo API supporto nativo per lo sviluppo di API a cui agganciare, per esempio, applicazioni mobili Flutter o ricerche su ElasticSearch

Ciclo di sviluppo del prodotto: il ciclo di sviluppo del prodotto complessivo si riduce fino al 40%! Motivo: le integrazioni sono molto più veloci!

Massiccio supporto della community

Migrazioni e seeds gestiti correttamente

Debug facile attraverso le funzioni incluse.

Contro

1 Il processo di sviluppo richiede di lavorare con gli standard e bisogna avere una reale comprensione della programmazione per potervi lavorare

2 Non funziona per l’hosting condiviso (bisogna emularlo per farlo funzionare – sono eticamente contro le patch)

4 Bisogna conoscere Blade templating, Gulp, NPM, Bower, Composer, Eloquent e Laravel.

Conclusione

In poche parole, Laravel rende il processo di sviluppo più semplice per gli sviluppatori. Automatizza diverse attività comunemente eseguite e rende il processo di sviluppo efficiente in termini di tempo. Con Laravel Framework, si può costruire la propria web application, da zero, proprio come si desidera che sia. È un framework altamente flessibile che consente di sfruttare appieno il suo potenziale.

Usare Elasticsearch come motore di ricerca interno di un e-commerce

Anche se spesso sottovalutato e lasciato in un angolo, il motore di ricerca interno risulta uno strumento di cruciale importanza per proprietari di e-commerce (e blog ma anche di aziende) che vogliono posizionarsi in modo efficacie su motori di ricerca e canali digitali.

In questo articolo parleremo dei principali motivi che rendono il motore di ricerca interno un investimento utile e che faciliterà la vita non solo agli utenti finali dei siti web, ma anche ai proprietari, sopratutto se la scelta sarà quella di affidarsi ad Elasticsearch.


Motore di ricerca interno e User Experience

Cercare specifici prodotti ed informazioni sul web è diventata un’attività ormai comune e quotidiana per chiunque abbia a disposizione un dispositivo con accesso ad Internet.

C’è anche da dire che l’attività di ricerca risulta appagante per un utente solamente quando è rapida e permette di trovare facilmente il risultato desiderato. Infatti, quasi la metà degli utenti cominciano la navigazione su un e-commerce digitando ciò che cercano direttamente sulla barra di ricerca.

Ma un e-commerce con un motore di ricerca interno non ottimizzato potrebbe proporre risultati non corrispondenti o poco coerenti con quanto realmente voluto dall’utente.

Il problema è che, nel 98% dei casi, se il visitatore non trova il prodotto al terzo tentativo abbandona il sito con il rischio di non tornarci mai più. Il risultato è la perdita di un potenziale cliente e di conseguenza di fatturato.

Utilizzare un motore di ricerca avanzata come Elasticsearch (di cui parleremo in seguito in questo articolo) permette di ovviare a questi inconvenienti, rendendo la User Experience piacevole e semplice.

La User Experience è un fattore così importante, che persino Google ha deciso di considerarla per determinate il ranking delle pagine web.

Un motore di ricerca ottimizzato per la UX deve essere:
• Intuitivo
• Sempre ben visibile e facile da localizzare nelle pagine dell’e-commerce
• in grado di rispondere in modo esaustivo ad ogni query

Motore di ricerca interno ed Analytics

Collegare il motore di ricerca interno ad un CMS o allo stesso Google Analytics, permette di estrapolare dati utili a comprendere meglio comportamenti e desideri di clienti e potenziali clienti.

Lo stesso Google cita testuali parole
“Guarda in che modo gli utenti eseguono ricerche sul sito.
Con Ricerca su sito, puoi sapere in che misura gli utenti utilizzano la funzione di ricerca del tuo sito, quali termini di ricerca inseriscono e con quale efficacia i risultati di ricerca creano un coinvolgimento più profondo con il tuo sito”

L’analisi di tali dati risulta estremamente utile per:
• strategie di marketing online o offline
• strategie di crescita aziendale
• stabilire obiettivi strategici relativi alla SEO
• concentrare energie e risorse a disposizione su prodotti, servizi e contenuti che sono più rilevanti per l’audience di riferimento.

Perchè usare Elasticsearch

Potresti non aver mai sentito parlare di Elasticsearch, ma avrai sicuramente goduto almeno una volta delle sue potenzialità come motore di ricerca avanzata interno.
Infatti, Elasticsearch è uno strumento molto apprezzato ed utilizzato da big come Netflix, Quora, tinder e Etsy.
Andando più nello specifico, la ricerca avanzata è uno strumento molto potente quando implementata in e-commerce con cataloghi molto ampi e ricchi di dettagli tecnici e codici.
Vediamo perché, analizzando insieme alcune delle sue caratteristiche.

• È basato su Lucene, un API open source che permette il recupero di informazioni offrendo una delle più potenti funzionalità di ricerca full-text
• Ricerca full-text Elasticsearch cerca le parole in tutto il testo grazie a funzionalità come lo stemming personalizzato e la ricerca faccettata
• Completamento automatico della ricerca: mentre l’utente digita nella barra di ricerca, Elasticsearch cerca di prevedere cosa l’utente vuole trovare basandosi sulla cronologia delle ricerche e suggerendo in automatico la keyword corretta.
• Gestione errori di ortografia e battitura: Elasticsearch riconosce le parole anche se digitate in modo scorretto
• Scalabilità orizzontale: Elasticsearch asseconda le tue esigenze di crescita, basta aggiungere un nuovo nodo al tuo cluster
• Velocità: Elasticsearch è veloce anche quando si tratta di eseguire query complesse
• Record dati: ogni modifica effettuata viene propagata su tutti i nodi riducendo il rischio di perdere dati rilevanti
• Elasticsearch e multi-tenancy il che permette di gestire raccolte separate di documenti appartenenti a diversi utenti

Queste sono solo alcune delle eccezionali funzionalità di Elasticsearch!
Per scoprirle tutte dai un’occhiata al sito ufficiale https://www.elastic.co/elasticsearch/features

Riepilogando, l’utilizzo di un motore interno di ricerca avanzata come Elasticsearch in un e-commerce porterà alla tua attività due enormi vantaggi:
1. Una user experience invidiabile! I tuoi utenti saranno appagati riuscendo sempre a trovare in modo semplice, veloce e preciso ciò che cercano… e si sa, un cliente felice è un cliente che torna.
2. Nuovi dati da analizzare per rendere più efficaci strategie di marketing, SEO rendendo più performante il business.

Sviluppare un app MVP con Flutter in meno di un mese

L’avvio di un progetto è sempre una sfida, soprattutto quando di mezzo c’è un’Applicazione da sviluppare.
Infatti, sono proprio i tempi ed i costi di sviluppo quelli che destano più preoccupazione e che giocano un ruolo fondamentale nell’ottenimento di vantaggio competitivo.

Infondo avere una buona idea non basta, ciò che conta di più sono timing ed esecuzione, soprattutto in un mercato come quello digitale che cambia a velocemente.

Per ovviare a questo problema, sempre più startup ma anche aziende consolidate, a fronte di un meticoloso piano strategico per la buona riuscita di un progetto, decidono di lanciare i propri prodotti digitali in formato MVP da mostrare ad investitori e che permetta comunque di capire quali sono le reali esigenze degli utenti finali.


Cosa è un MVP?

MVP sta per Minimum Viable Product, ovvero una versione base e senza fronzoli ma funzionante del prodotto tramite il quale è possibile convalidare un’idea di business, riuscendo a mostrare il reale potenziale di un’idea.

Un MVP dovrebbe essere parte integrante di una solida strategia di go-to-market e non solo un optional da poter eventualmente evitare.

Infatti, il Minimum Viable Product è da considerarsi un test a tutti gli effetti, grazie al quale sarai in grado di promuovere il tuo marchio fin dall’inizio, raccogliere feedback degli early-adopters utili a guidare il processo di sviluppo fino all’App definitiva, ed attirare eventuali investitori mostrandoli una versione tangibile del prodotto.

Tutto ciò permette di affrontare il progetto puntando nella direzione giusta ed aggiustando la traiettoria quando necessario o in caso anche di abbandonare l’idea che non si è rivelata efficacie senza aver speso troppo tempo ed energie.

Quali sono le caratteristiche di un MVP?

Un MVP di valore deve avere le seguenti caratteristiche:

• Un numero limitato di caratteristiche ma estremamente utili che gli utenti sono ben disposti ad utilizzare
• Il suo sviluppo deve essere veloce e conveniente in termini economici
• Deve essere semplice e su piccola scala
• Lo sviluppo di nuove feature deve basarsi sui feedback degli early adopters

Potrebbe sorprendere sapere che alcune delle realtà più conosciute al mondo sono partite testando la loro idea tramite dei semplici MVP.Stiamo parlando di colossi come AirB&B, Uber, Amazon, Buffer, Dropbox ed addirittura Instagram.

E’ davvero possibile sviluppare un app in meno di un mese?

Come abbiamo già detto all’inizio dell’articolo, Flutter è un’ottima soluzione quando si tratta di sviluppare una App MVP rispettando i tempi del mercato digitale.

Flutter dà la possibilità di sviluppare App adatte ad Android, iOS, Mac, Windows, Linux, and Web App partendo da una singola base di codice.
Questo vuol dire che oltre a non essere costretto a scegliere una sola piattaforma per testare la tua App, questa sarà anche pronta in meno di un mese!

Andando più nel dettaglio Flutter è il framework multipiattaforma ed open-source, completamente gratuito, fornito da Google adatto alla creazione di App mobile funzionanti sia su iOS che Android.

Possiede tutti i widget e gli strumenti necessari per permettere una distribuzione dell’app facile e veloce.

I widget forniti sono personalizzabili e permettono la creazione di un’interfaccia utente esteticamente piacevole ed intuitiva simile a quella nativa così da non intaccare la UX.
La funzionalità di hot reloading rende lo sviluppo con Flutter veloce ed efficiente.

Inoltre, non dovrai perder tempo nella costruzione di un backend poiché Flutter è compatibile con Firebase e con Firebase Remote Config potrai modificare istantaneamente la tua App per una nuova distribuzione nell’App store.

In conclusione, Flutter dà realmente la possibilità di sviluppare una App in meno di un mese, bella e performante, pronta ad essere testata sul mercato.

Un ottimo strumento di programmazione che permette di ottenere un reale vantaggio competitivo nel rispetto della qualità finale del prodotto.

Creare un CRM con Laravel

Ovvero: tutte le funzionalità che puoi ottenere con il tuo sistema di Customer Relationship Management e perchè lo sviluppo con Laravel conviene

Ogni azienda, per essere competitiva sul mercato, deve puntare ad una cultura che mette al centro il cliente piuttosto che il prodotto. Per fare ciò è importante riuscire a capire i desideri e le esigenze dei clienti, suscitare interesse e creare con loro un rapporto di fedeltà duraturo.

È proprio in questo che il CRM (Customer Relationship Managment) ci aiuta, essendo un sistema che permette di gestire in svariati modi i profili di clienti acquisiti ed individuare profili di clienti potenziali.

Il CRM non deve essere visto solo come un software che facilita la gestione di dati relativi ai clienti, ma come una vera e propria strategia che influisce sull’intera cultura aziendale ed in particolare su marketing, vendite e servizio post-vendita.

Per quel che riguarda il framework rimandiamo a quest’articolo per la descrizione delle principali carateristiche di Laravel


12 Caratteristiche fondamentali di un CRM

Ci sono delle caratteristiche alle quali un CRM non può rinunciare per essere chiamato tale.
Vediamo qui di seguito quali sono!

1. Contact Managment: Conserva dati e contatti riguardanti gli utenti in un database all’interno del quale possa essere semplice ricercare le informazioni
2. Lead Managment: Gestisci il processo di conversione di un prospect in un potenziale cliente tramite sistemi di scoring e pipeline di vendita
3. Integration capability: un Buon CRM dovrebbe essere in grado di poter comunicare con applicazioni esterne
4. Report and Analytics: visualizza tutto ciò che accade nel tuo business con report su base giornaliera, settimanale o mensile per migliorare la gestione dei processi aziendali.
5. Workflow automation: rendi automatiche azioni ripetitive
6. Sales process automation: Automatizza e ottimizza varie funzionalità di vendita per standardizzare i processi aziendali.
7. Pipeline Management: Visualizza l’andamento dell’intera pipeline di vendita e lo stato di ogni singola fase nel funnel di vendita
8. Document Management: Raccogli, carica, archivia e condividi documenti in un unico posto rendendo le informazioni accessibili alle persone giuste
9. Customization: Dovrebbe essere il CRM ad adattarsi alle tue esigenze, e non il contrario. Per questo l’opzione di personalizzazione non è da sottovalutare durante la scelta di un CRM.
10. E-mail integration: Il CRM dovrebbe essere in grado di integrarsi con servizi di posta elettronica consentendo la gestione e segmentazione degli elenchi di contatti
11. Admin control panel: Dashboard di tutte le impostazioni relative all’azienda come aggiungere/modificare/eliminare utenti, visualizzare analisi, aggiungere impostazioni API, inviare newsletter, visualizzare report, modificare logo, CSS e svolgere qualsiasi altra funzione amministrativa.
12. Account management: acquisisci e organizza informazioni aziendali per una migliore gestione di relazioni e processi

Altre caratteristiche che puoi valutare di inserire nel tuo CRM

Quelle che abbiamo elencato sopra sono solo alcune delle caratteristiche, secondo noi quelle imprescindibili, che può avere un CRM. In realtà, a seconda delle tue esigenze, potresti decidere di aggiungerne molte altre come:

• Ticket managment
• FaceBook CRM
• File Manager
• Calendar
• Notifiche
• Territory managment
• Forecast managment
• Deals managment
• Web to lead
• Product managment
• Ecc…

Perchè scegliere Laravel come framework per creare il tuo CRM

Laravel è un Framework open source scritto in PHP e super efficiente per la realizzazione di applicazioni web.
Gli sviluppatori scelgono di utilizzare Laravel poiché è un framework intuitivo e che dona ai progetti performance invidiabili.
Vediamo insieme quali sono i maggiori vantaggi di Laravel:
1. La sua architettura: L’architettura MVC (model-view-controller) rende più semplice per lo sviluppatore gestire la struttura di un’applicazione web, lasciando che si dedichi solo al core business
2. Coding elegante e pulito: grazie a regole potenti ma allo stesso tempo semplici viene ridotto il rischio di sporcare il codice.
3. Artisan CLI: Artisan è l’interfaccia a linea di comando (Command Line Interface) messa a disposizione da Laravel, che fornisce agli sviluppatori una serie di comandi utili durante lo sviluppo di applicazioni. Alcune delle operazioni che possono essere svolte con i comandi di Artisan sono la creazione di modelli, regole di validazione, migrazione di dati, controller e molte altre.
4. ORM Eloquent: l’object relational mapper aiuta gli sviluppatori ad interagire con il database senza dover scrivere query complicate in SQL ma utilizzando solo PHP.
5. Laravel ha alti ivelli di performance e sicurezza, adottando librerie collaudate che garantiscono affidabilità e stabilità.
6. Laravel ha una grande community di supporto che aiutano gli sviluppatori passo dopo passo
7. Laravel da due possibilità per i template ovvero Twig e Blade

Queste sono solo alcune delle caratteristiche per le quali reputiamo Laravel il framework perfetto per creare un CRM con alte prestazioni e funzionalità di qualsiasi tipo e per qualunque necessità.

Chiaramente Laravel non è l’unico strumento per la creazione di web applications compresse ed in alcuni casi dei sistemi più semplici possono essere creati con strumenti già pronti come WordPress

Migrazione da Algolia verso Elasticsaerch

Quando si parla di ricerca full-text su siti o applicazioni e specialmetnte come motore di ricerca per l’ e-commerce Algolia è sicuramente il miglior servizio disponibile, ma sicuramente costoso quando il numero delle ricerche comincia ad aumentare. Elasticsearch puo’ essere un’ottima soluzione di ripiego, sicuramente piu’ economica anche se con prestazioni diverse. In questo articolo invece analizziamo le caratteristiche principali dei database NoSql.


Le funzionalità di Algolia

Parlando di web-applications, le funzionalità che Algolia mette a disposizione sono strabilianti. Questo sopratutto grazie alle librerie client che Algolia stessa rilascia per l’integrazione sulle varie piattaforme. Queste librerie permettono una ricerca in tempo reale su database di milioni di records, rendendo inegualgliabile l’esperienza di ricerca sui documenti per precisione e velocità.

Un punto negativo di Algolia è invece il prezzo: siccome le tariffe sono tarate sulla quantità di ricerche effettuate, maggiore è il numero di ricerche sul sito, maggiore è il prezzo, cosa che ne rende l’adozione difficile per tutte quell imprese che non hanno l’intenzione di investire un migliaio di euro al mese per il servizio di ricerca.

La migrazione verso un servizio di ricerca alternativo

Nel nostro caso, il cliente aveva chiesto, data la necessità di ridurre i costi della ricerca per privilegiare altri tipi di sviluppo, di poter utilizzare un servizio alternativo. La loro indicazione era quella di testare in ogni caso la ricerca sul database MySQL della web-application, un installazione Laravel datata qualche annetto.

Le problematiche da risolvere nell’attività di migrazione del database Algolia

Le fasi delicate da affrontare nella migrazione dei dati contenuti nel database di Algolia, circa 1 milione e mezzo di record, erano:
– la realizzazione di uno script che esportasse i records da Algolia e li importasse nella nuova soluzione
– la realizzazione in Laravel di un servizio di query sulla nuova soluzione che riproducesse il piu’ possibile le caratteristiche di Algolia sia come velocità che come intelligenza nella ricerca full-text in lingua italiana
– la sostituzione delle funzionaità di caricamento dei dati su Algolia con funzionalità per il nuovo servizio.

La migrazione da Algolia a MySql

Una cosa molto positiva che si puo’ dire di Algolia è che il procedimento di esportazione dei dati è molto chiaro ed efficiente: attraverso una chiamata api ‘browse’ si ottiene l’eportazione di tutto il database ad una velocità strabiliante.

Peccato che lo stesso non si possa dire di MySql:un volta riprodotta la struttura di tabelle (con indicizzazione fulltext, inno-db), lo script di migrazione che estraeva i dati da Algolia per inserirli nelle nuove tabelle andava a rilento e quasi sempre vero i 300.000 records falliva, killato dallo stesso sistema operativo (Ubuntu 20, un istanza Digital Ocean con 2 processori ed 8Gb di memoria).

Abbiamo dovuto creare uno script che potesse caricare solo 100.000 records alla volta, ed in questo modo in un tempo di ca 6/7 ore l’intera esportazione poteva adare a buon termine.

Qui pero’ cominciavano i guai seri, perchè la query MySql fultext (match…against) su una tabella di una decina di Gb risultava essere molto lenta oltre che imprecisa (la durata dell’esecuzione oltretutto aumentava con l’aumentare delle parone nella stringa ricercata).

Verificata l’inefficienza di MySql in questo tipo di attività, abbiamo proposto al cliente l’adozione di Elasticsearch.

La migrazione da Algolia a Elasticsearch

Abbiamo quindi installato Elasticsearch tramite Docker su un’istanza EC2 Small Amazon Aws. La migrazione è risultata molto rapida grazie alle api bulk di Elasticsearch.

La ricerca sul motore Lucene di Elasticsearch è risultata molto precisa e veloce. L’unica differenza alla fine dell’attività è stata la mancanza della ricerca in tempo reale fornità da Algolia, ma nel complesso Elasticsearch si rivela essere un competitor di alto livello con prezzi concorreziali.

Sviluppo App Low Cost con Flutter

Per una startup, la domanda: “Quanto costa realizzare un’app iOS o un’app Android?” è sicuro che arriverà. Ma la risposta richiederà almeno una stima approssimativa del progetto.

Senza una stima, è difficile immaginare quante ore gli sviluppatori iOS o Android dovranno dedicare allo sviluppo di un’app. Un’alternativa potrebbe essere quella di adottare un framework per app multipiattaforma come Flutter.

In questo articolo, ci concentriamo sul costo medio per creare un’app iOS, un’app Android e un’ app Flutter e valutiamo se esiste qualche differenza tra questi tipi di sviluppo in termini di tempo e denaro.

Abbiamo riportato inoltre  in questo articolo i moltissimi altri vantaggi introdotti dalla versione Flutter 3


Quanto costa sviluppare un’app Flutter iOS o Android?

La dimensione di un progetto è il fattore decisivo nel suo costo fintanto che la tariffa per i servizi di programmazione e il tempo sono legati insieme in un unico pacchetto. Per dimensione, intendiamo la complessità della funzionalità e della logica di business. Lo sviluppo può includere anche:

– Disegni con animazione
– Prototipazione
– Soluzioni personalizzate che richiedono ricerca tecnica
– Risultati e cambiamenti inaspettati lungo il percorso

Secondo le nostre stime di progetto medie:

una semplice app iOS con funzionalità di base richiede solitamente fino a tre mesi per essere creata e costa circa eur 20.000

un’app più complessa che richiede più di tre mesi di sviluppo costerà circa eur 40.000

un’app iOS o Android ad alta complessità con un ampio database (che noi possiamo gestire con MySQL, Elasticsearch o Algolia) per un’azienda può durare più di sei mesi e richiedere 60.000 euro.

Il costo dello sviluppo del software Android è diverso dal costo dello sviluppo iOS?

La verità è che lo sviluppo di Android costa più o meno quanto lo sviluppo di iOS. L’unica cosa è che la varietà di dispositivi Android e le dimensioni dello schermo rendono questo ambiente più difficile da lavorare e, pertanto, lo sviluppo delle app Android potrebbe richiedere un po ‘più di tempo.

Nella fase di stima del progetto, noi confermiamo quali dispositivi e versioni del sistema operativo dovrebbero supportare un’app Android. Se c’e’ bisogno di sviluppare un prodotto per versioni precedenti di Android, il prezzo dell’intero progetto sarà ovviamente più alto.

Usare Flutter per sviluppare applicazioni low cost

Il vantaggio di Flutter è quello di poter produrre applicazioni native iOS e Android con la stessa base di codice. In questo modo con lo sviluppo di una sola applicazione se ne ottengono due: le uniche limitazioni riguardano casi in cui sia necessario utilizzare tecnologie particolari o librerie native dei due sistemi iOs ed Android, ma sicuramente l’80% delle applicazioni si possono realizzare con Flutter.

Preventivi per lo sviluppo di applicazioni multipiattaforma

Questa software house presta molta attenzione alle stime delle app, approfondendo gli obiettivi e i processi aziendali dei nostri clienti subito dopo aver compilato il modulo di contatto sul nostro sito.

Innanzitutto, facciamo una stima approssimativa gratuita che coinvolge:

– analisi aziendali di base
– preparazione di feedback dettagliati sulla possibile architettura dell’app, casi d’uso e implementazioni tecniche
– presentazione del nostro feedback, chiarimento dettagli ed redazione dell’elenco dei requisiti
– aggiornamento del feedback e creazione di un’offerta che includa il numero di ore per lo sviluppo, lo stack tecnologico, l’architettura dell’app e le funzionalità che andranno nelle versioni alpha, beta e successive

negoziando un’offerta che soddisfi le esigenze dell’attività del nostro cliente.

Si possono sempre confrontare i prezzi medi, ma la ogni app e’ particolare e necessita in primo luogo di una stima e solo dopo si sara’ in grado di capire quanto costerà l’app.

Costi di sviluppo di app sul mercato internazionale

Quando si tratta della qualità e del costo dello sviluppo di app mobili, uno di questi elementi di solito ha un peso maggiore. E, tradizionalmente, la decisione su quale azienda rivolgersi spesso porta alla mappa di Google.

Quando cercano un team di sviluppo, le aziende in genere guardano agli Stati Uniti, al Regno Unito, all’India e all’Ucraina. In realtà l’Italia è diventata una piazza in cui si ottengono degli ottimi prodotti in relazione alla qualità ed al prezzo, tant’é vero che molte agenzie inglesi utilizzano sviluppatori italiani.

In questo articolo, l’unica cosa che vorremmo confrontare è il prezzo.

Secondo Clutch, il costo medio per lo sviluppo di app Swift per iOS con società con sede negli Stati Uniti e nel Regno Unito è di $ 50.000. Tuttavia, il prezzo effettivo della tua app può dipendere da più fattori come lo stack tecnologico, l’architettura, i piani di scalabilità e i possibili percorsi degli utenti.

In Ucraina, la tariffa oraria media è in genere molto più bassa (circa $ 50 l’ora) rispetto agli Stati Uniti, e quindi il costo totale della tua app iOS sarà inferiore. Lo stesso vale per lo sviluppo di app Android.

L’India è popolare per i prezzi davvero bassi. Ad esempio, puoi trovare sviluppatori freelance in India per $ 25 l’ora.

In Italia il costo medio è calcolato intorno ai 60 eur/ora, dipende sempre e comunque dalla durata e dall’entità del progetto.

Calcolare i tempi di permanenza in un webinar di Gotowebinar

Durante l’integrazione api spesso capita di dover adattare i risultati ottenuti alla logica del nostro programma.

In questo caso, ecco una funzione per calcolare il tempo reale che un attendee ha passato nel webinar utilizzando i dati che arrivano da una chiamata alle api di GoToWebinar:


L’array che arriva dalla chiamata api

$dates = array(
	0 => array(
		'st' => '09:50',
		'et' => '10:05'
	),
	1 => array(
		'st' => '10:40',
		'et' => '11:20'
	),
	2 => array(
		'st' => '10:07',
		'et' => '10:45'
	),
	3 => array(
		'st' => '10:00',
		'et' => '10:03'
	),
);

Classi e funzioni

function pre($s){
	echo '
';
	print_r($s);
	echo '

‘;
}

function date_to_timestamp($date){
$d = DateTime::createFromFormat('H:i', $date);
if ($d === false) {
die("Incorrect date string");
} else {
return $d->getTimestamp();
}
}

function timestamp_to_date($time){
$hours = floor($time / 60 );

return $hours;
}

class Period
{
var $start = 0;
var $end = 0;
var $total = array();

function begin(){
$this->total[] = array(
'st' => $this->start,
'et' => $this->end
);
}

function extend(){
$i = count($this->total);
$this->total[$i-1]['et'] = $this->end;
}
}

Il ciclo

 

pre($dates);

$realstart = date_to_timestamp('09:00');
pre($realstart);
$realend = date_to_timestamp('10:00');
pre($realend);
pre('Convert to timestamp');
$i = 0;
foreach($dates as $date){
pre($date);
$dates[$i]['st'] = date_to_timestamp($date['st']);
$dates[$i]['et'] = date_to_timestamp($date['et']);
$i++;
}

pre($dates);
pre('Set Right Start and End');
$i = 0;
foreach($dates as $date){
if($dates[$i]['st'] < $realstart) $dates[$i]['st'] = $realstart; if($dates[$i]['et'] > $realend) $dates[$i]['et'] = $realend;
$i++;
}

$i = 0;
foreach($dates as $date){
$dates[$i]['st'] = $dates[$i]['st'] - $realstart;
$dates[$i]['et'] = $dates[$i]['et'] - $realstart;

$i++;
}

/*usort($dates, function($a, $b) {
return $a['st'] <=> $b['st'];
});
*/
usort($dates, function($a, $b) {
$retval = $a['st'] <=> $b['st'];
if ($retval == 0) {
$retval = $a['et'] <=> $b['et'];
}
return $retval;
});

pre($dates);
pre('-------------------------------------------');
$total_webinar_time = $realend - $realstart;
pre('total_webinar_time :'.$total_webinar_time);
$p = new Period;
for($i=0;$i<count($dates);$i++){ pre('-------->i: '.$i);
if(isset($dates[$i-1])){
// dal secondo record in poi
if($dates[$i]['st'] > $dates[$i-1]['et']){
// l'inizio di questo record è maggiore dell'inizio del precedente
// crea nuovo period
$p->start = $dates[$i]['st'];
$p->end = $dates[$i]['et'];
$p->begin();
pre($p->total);
} else {
// l'inizio di questo record NON è maggiore dell'inizio del precedente
// incrementa period
if(($dates[$i]['et']-$dates[$i]['st']) == $total_webinar_time) {
die('100%');
} else {
$p->end = $dates[$i]['et'];
$p->extend();
pre($p->total);
}
}
} else {
//primo record trattato
if(($dates[$i]['et']-$dates[$i]['st']) == $total_webinar_time) {
die('100% cirulli');
} else {
$p->start = $dates[$i]['st'];
$p->end = $dates[$i]['et'];
$p->begin();
pre($p->total);
}
}
}

pre('calculate time');
$total_sum = 0 ;
foreach($p->total as $p){
pre($p);
$sum = $p['et'] - $p['st'];
if($sum > 0) $total_sum = $total_sum + $sum ;
}