Sviluppo di applicazioni per terminali POS: dalla "A" alla ... "T"

Text

Negli ultimi anni, il semplice terminale di pagamento POS si è evoluto dall’essere equipaggiato con un tradizionale sistema operativo embedded proprietario in un point of sale open source che adotta Android. Questo nuovo paradigma nasce con l'ambizione di accelerare la trasformazione digitale dei merchant e dei clienti, rimodellando il tradizionale "punto vendita" in un "punto di interazione multiservizi".

Android è un gigante che non ha bisogno di presentazioni. Sviluppato e rilasciato nel 2008, questo sistema operativo open source basato su Linux è stato un successo mondiale: nel 2019, Google ha annunciato che erano attivi circa 2,5 miliardi di dispositivi Android. Oggi, Android è considerato lo standard de facto per l'industria della telefonia mobile, penetrando anche in altri settori di dispositivi elettronici di consumo come automotive, intrattenimento e wearable (dispositivi indossabili). Infatti, Android ora gioca un ruolo chiave nell'intero mercato dei dispositivi elettronici, avvicinando i servizi agli utenti finali e semplificandone l'utilizzo attraverso la sua apprezzata interfaccia utente (UI) e le infrastrutture di comunicazione.

Android e Tetra: due proposte del leader di mercato per due scopi diversi

Comprendendo il valore di questa evoluzione, Ingenico ha recentemente lanciato AXIUM - la sua nuova generazione di terminali di pagamento Android - per affiancare l'offerta core più tradizionale basata sul suo sistema operativo proprietario, TETRA. Poiché entrambe le architetture soddisfano i più rigorosi standard del settore dei pagamenti (EMV e PCI-PTS), in cosa differiscono?

La principale differenza tra Tetra AXIUM riflette lo scopo per cui sono stati progettati. Tetra si basa su un sistema operativo incentrato sui pagamenti. AXIUM è stato creato per velocizzare lo sviluppo e la portabilità delle applicazioni, aprendo la strada a nuovi servizi per nuovi business e nuove opportunità.

Il sistema operativo proprietario Tetra è progettato per esigenze specifiche del settore dei pagamenti. Operando su hardware dedicato, supporta qualsiasi metodo di pagamento, migliorando l'esperienza del cliente con alcuni servizi di valore aggiunto (VAS) programmabili con SDK specializzato. Lo sviluppo per il sistema operativo proprietario Tetra richiede competenze di sviluppo avanzate in C o C ++ e una conoscenza dettagliata delle librerie grafiche e periferiche dedicate. Sebbene ciò dia ampio spazio allo sviluppatore esperto, tuttavia questo rappresenta un ostacolo per i player del settore che desiderano integrare le proprie applicazioni su asset di proprietà o come servizi a valore aggiunto su dispositivi di terzi.

AXIUM, invece, è un terminale nativamente Android. L'innovazione consiste nella coesistenza di un sistema operativo aperto con i più severi livelli di sicurezza EMV e PCI-PTS. Nonostante permanga la necessità di conoscenze specifiche per gestire i pagamenti con carta (lettori, EMV), la maggior parte dell'ambiente di sviluppo sui terminali AXIUM risulterà familiare agli sviluppatori Android esperti e le loro competenze saranno immediatamente trasferibili, trasformando il terminale in una piattaforma per applicazioni business.

Il successo di Android è basato su Java, sulle API e sul codice open source. Funzionalità non facilmente accessibili sui sistemi embedded tradizionali, quali gestione di database, disponibilità di moduli di comunicazione, JSON / XML, gestione di fotocamere e codici QR, grafica touch e interattiva, A2A, ecc ... sono nativamente disponibili. Questo aumenta le possibilità di integrazione, riducendo i tempi e i costi di sviluppo e aggiungendo funzionalità straordinarie alle applicazioni.

Indipendentemente dalla tecnologia, le applicazioni Tetra e Android hanno un punto chiave in comune: poiché sono entrambe architetture sicure, le applicazioni devono essere firmate con un tool Ingenico per essere caricate sui terminali.

È anche importante notare che tutte le funzionalità presenti in Android che non sono compliant ai requisiti di sicurezza PCI-PTS sono state rimosse. Ad esempio, i servizi di Google Play non sono disponibili su AXIUM. Analogamente, le app Android firmate con la toolchain Ingenico non possono essere caricate su Google Play e viceversa. Il servizio di distribuzione del software è garantito dal sistema di Telegestione dei terminali di Ingenico e consente agli sviluppatori di gestire da remoto l'evoluzione e la distribuzione delle applicazioni sui terminali Axium, così come su tutti gli altri prodotti Ingenico.

Sviluppare su Android è diventata una “skill” comune...

Rivolgendo lo sguardo verso le statistiche di Google su Android, un dato che colpisce è il numero di applicazioni pubblicate su Play Store. Recentemente è stato stimato in 3,04 milioni di app, triplicando il milione di app presente nel luglio 2013.

Questa è una prova evidente dell’esistenza di una vasta platea di sviluppatori che operano su Android. E non soltanto, le risorse di sviluppo sono accessibili in tutto il mondo, la documentazione multilingue è pubblicata sul web ed è ricca di esempi di codice.

La community di sviluppatori Android è molto attiva, con forum, blog, tutorial video e formazione gratuita: questi sono solo alcuni dei meccanismi di supporto disponibili per facilitare il processo di sviluppo. Gli sviluppatori possono scegliere tra un'ampia varietà di linguaggi di programmazione, a partire da NDK con C / C ++, evolvendo verso ambienti più astratti come Java e Kotlin, ma anche C#, Python e Ruby ecc.

... grazie alle risorse accessibili agli sviluppatori

Ci sono diversi strumenti a disposizione degli sviluppatori, ecco i più importanti che sono utilizzati dai programmatori Android:

  • Android Studio, l'IDE (ambiente di sviluppo integrato) open source RAD (sviluppo rapido di applicazioni) per eccellenza, basato su IntelliJ IDEA. Offre la gestione di componenti (mediante Gradle / Maven) ed emulatori nativi di ROM Android, integra Android Debug Bridge (ADB) per eseguire applicazioni e molte altre utili funzionalità. È un ottimo strumento, in continua evoluzione per supportare la community.
  • Applicazioni dimostrative "Hello World!" possono essere create nell’IDE con pochi e semplici click, supportando anche il debug. Avviare lo sviluppo non è mai stato così facile!

  • GitHub offre una moltitudine di risorse open source per trarre ispirazione negli sviluppi.

Come risultato, lo sviluppo su Android è considerato semplice...

Android offre la rassicurazione di una tecnologia a prova di futuro. È nel senso comune, ad esempio, considerare che le tecnologie innovative come il 5G saranno supportate dalle versioni più recenti di Android. In effetti, se si considerano i numerosi fornitori che continuano ad integrare il sistema operativo, Android è una scommessa vincente quando si tratta di progettazione di applicazioni.

Android continua a perfezionare l’arte della ‘user experience’: il design dell'interfaccia utente, l'accessibilità degli schermi tattili, le modalità operative dei controlli grafici, i widget, le tastiere virtuali, gli stili, i contenuti multimediali e così via. Ogni innovazione è sperimentata e apprezzata da milioni di utenti.

Un’applicazione semplice può essere implementata rapidamente da sviluppatori esperti. La varietà di risorse per lo sviluppo è stata evidenziata, ad ogni modo competenze di sviluppo full-stack sono fondamentali per trovare strade semplificate per realizzare i propri progetti velocemente.

Tutto questo concorre al processo di innovazione: capacità di sviluppo, portfolio di soluzioni e di risorse grafiche sono tutti elementi in grado di accelerare i risultati degli sviluppi Android, contribuendo a ridurre il time-to-market e migliorando la qualità del software.

... offrendo innegabili vantaggi

 

Tra gli altri vantaggi possiamo identificare:

  • la riusabilità del codice è uno dei vantaggi chiave della piattaforma Android, principalmente grazie al supporto Java offerto solo su Android. Lo sviluppo sul terminale di pagamento beneficia di librerie open source, aggiungendo nuovi concetti di sviluppo come “dependency injection”, “reactive programming”, “data persistence” aumentando l’astrazione della soluzione in risposta alle più varie necessità.
  • Le applicazioni Android possono essere progettate per il test automation: un'ampia gamma di strumenti sono disponibili per gestire test automatizzati e migliorare la qualità del software.

  • La progettazione di API di servizio può accelerare l’integrazione con servizi esterni o gestire la comunicazione "App to App". Android offre inoltre l’opportunità di utilizzare funzionalità esposte dalle app in servizi di terze parti, aprendo potenzialmente altri business basati sulla rivendita di servizi applicativi a terze parti.

  • L'ambiente di sviluppo di Android è di per sé un valore aggiunto, supportando formati grafici standard che includono funzionalità integrate per progettare le interfacce utente. Logging nativo e debug online/offline aiutano la codifica e i processi di risoluzione dei problemi. Tutto questo è supportato da librerie che permettono la gestione di multithreading, sincronizzazione, gestione eccezioni e database.

Ma esiste un ponte tra Tetra e Android?

Il primo scopo dell'utilizzo di un terminale basato su Android è offrire un ricco portafoglio di applicazioni business. Queste applicazioni possono certamente essere sviluppate da zero, ma possono anche essere mutuate da un ambiente esistente. Con alcuni miglioramenti, le applicazioni possono operare in ambiente “open” Android, rispettando anche i più severi livelli di sicurezza.

Per gli sviluppatori che hanno già familiarità con i terminali Tetra di Ingenico, una delle domande chiave è se sia possibile portare su Android tutte le applicazioni, tipicamente di pagamento, disponibili in ambiente Tetra, oppure se è più semplice sviluppare su Android "partendo da zero”?  Non esiste una risposta semplice poiché molte variabili sono coinvolte in entrambi i processi di sviluppo, vale a dire: competenze, architettura e tipologia dell'applicazione, complessità, aspettative ed esperienza.

Una solida conoscenza di Android ed un significativo portfolio di applicazioni/funzionalità già esistenti porterebbe ad avere un vantaggio significativo nel velocizzare i processi di sviluppo. Combinando questo con la possibilità di accedere ad esempi di soluzioni che coprono le tematiche di sviluppo più ricorrenti, Android inizia ad assumere un valore considerevole.

Una delle opzioni da considerare quando si esegue il porting di una App da Tetra ad Android è valutare la conversione del codice sorgente di Tetra C / C ++ nelle librerie native del progetto Android. Il porting di applicazioni di business di grandi dimensioni potrebbe trarre vantaggio da questo approccio, anche se si traduce in alcuni svantaggi architetturali.

Più in generale, riscrivere un'intera applicazione utilizzando un linguaggio più recente e astratto come Java/Kotlin ha alcuni vantaggi nascosti. Alcuni strumenti, come il garbage collector automatico, la sintassi concisa, l'operatore Elvis (Null safety) e il lambda expressions, consentono di accelerare la programmazione e coprono tutti gli aspetti dello sviluppo che richiederebbero molto più tempo in C ++. Investire tempo nell'apprendimento di queste nuove tecniche può accelerare lo sviluppo e ridurre il carico di lavoro. Tuttavia, concetti specifici riguardanti il ciclo di vita dell'applicazione (gestione del background), le activities, la gestione dei dati, la comunicazione e la gestione delle risorse utilizzano in Android modelli completamente diversi e più ottimizzati: questo va compreso e accettato quando si valuta un “porting”.

Ingenico si impegna a fornire un supporto continuo per la gamma di terminali Tetra basati sul sistema operativo proprietario, che rimarranno il prodotto preferito per gli ambienti orientati al pagamento, soprattutto dove i servizi a valore aggiunto non sono richiesti: in quest’ambito il terminale POS Tetra è lo strumento ideale.

Ad ogni modo, per merchant ed ambienti specifici, una più ampia gamma di applicazioni business orientate alla produttività potrà portare benefici significativi sia in termini di iniziative di business che di esperienza utente.

In questo caso, la nuova gamma di terminali AXIUM basata su Android offre un'esperienza utente avanzata ed una piattaforma aperta, in cui la moltitudine di sviluppatori Android esperti e la vasta gamma di applicazioni Android già disponibili aprono la strada ad un futuro più entusiasmante per il terminale di pagamento che evolve da una piattaforma affidabile e sicura per il pagamento a… molto di più.

Chi desidera entrare a far parte della community di sviluppatori di Ingenico o vuole saperne di più sulla creazione di app e servizi digitali sugli smart terminals può visitare il sito web dedicato ai programmatori: Developers' Partner Programme.

Author
Mario Perciabosco

Mario Perciabosco

Android and Service Development Team Leader per EMEA in Ingenico

Mario ha 18 anni di esperienza nel settore dei pagamenti, avendo ricoperto diversi ruoli in software, sviluppo e prevendita. Attualmente è il leader per gli sviluppi Android e per i servizi professionali in EMEA e responsabile di nuove collaborazioni, rafforzando le partnership con i clienti e offrendo la sua esperienza per semplificare l'accesso alle più recenti tecnologie di pagamento.

Anche in Customer experience

22 Jun 23
Cosa rende l’EMEA Logistics Hub di Ingenico un centro di eccellenza?
23 May 23
TETRA Next Generation: 50.000 terminali già distribuiti in Italia nel Q1/2023
26 Apr 23
Retail 2.0: Android supporta l’evoluzione del Retail ad a un livello superiore
30 Mar 23
La svolta italiana: dall’amore per il contante all’adozione dei pagamenti innovativi
09 Mar 23
Giornata Internazionale della Donna 2023 #EmbraceEquity
30 Aug 22
Cos'è il Metaverso e come impatta il mondo dei pagamenti?
20 Aug 22
Il modello ‘Terminal as a Service’ resterà rilevante anche nel mondo digitale?
24 Jun 22
Quando il parco terminali diventa troppo complesso da gestire…
prev next