Developing POS terminal applications: from “A” to…“T”

Text

Recent years have seen the humble payment terminal evolve from a traditional, proprietary embedded operating system, into an open source point of sale (POS) utilising Android. This new paradigm comes with the ambition to accelerate customers’ digital transformation and reshape the traditional “point-of-sale” into a “point-of-interaction”.

Android is a giant that needs no introduction. Developed and released in 2008, this open source Linux-based operating system has been a worldwide success: in 2019, Google announced that some 2.5 Billion of Android-based devices were active. Today, Android is considered the de facto standard for the mobile phone industry, also penetrating other electronic consumer device industries such as cars, entertainment and wearables. Indeed, Android now plays a key role in the entire electronic devices market, bringing its service offer to end users and simplifying feature usage through its user interface (UI) and communication facilities.

Android and Tetra: two market-leading propositions for two different purposes

Understanding the value of this evolution, Ingenico recently launched AXIUM – its next generation of Android payment terminals - to flank the more traditional core offer based on its proprietary operating system, Tetra. Both architectures meet the strictest payment industry standards (EMV and PCI-PTS), so how do the two architectures differ?

The main difference between Tetra and AXIUM reflects the purpose for which they were designed. Tetra is based on a payment-centric operating system. AXIUM has been created to speed up application development and portability, opening the way for different players.

The Tetra proprietary operating system is tailored for payment industry needs. Operating on customised hardware, it supports any payment method, enhancing customer experience with multimedia and HTML5 value-added services (VAS). Developing for the proprietary Tetra operating system requires advanced C or C++ development skills and detailed knowledge of the dedicated peripheral and graphics libraries. Whilst this gives the developer immense freedom, it is a barrier to third parties wanting to develop their own applications for use on their own terminal estate or as VAS for other estate owners.

AXIUM is a pure Android operating system. The innovation remains in coexisting an open operating system with the strictest EMV and PCI-PTS security levels. Whilst some specific knowledge is required to leverage the card payment processing, (readers, EMV) most of the development environment on AXIUM terminals will be familiar to existing Android developers with their skills almost instantly transferable and opening the terminal as a platform for business applications.

Android success is based on Java, APIs and an open source code. Features not easily accessible on traditional embedded systems, like databases, rich communication frameworks, JSON/XML, camera and QR Code management, enhanced graphics, A2A, etc… are natively available. This increases the integration possibilities, reducing development time and costs and adding impressive features to the apps.

Regardless of the technology, Tetra and Android applications have a key point in common: as the architecture of both is secured, applications must be signed with an Ingenico tool to be loaded onto the payment terminals.

It is also important to note that all Android features compromising PCI-PTS security requirements have been removed. For instance, Google Play Services aren’t available on AXIUM. Similarly, Android apps signed with the Ingenico toolchain cannot be loaded on Google Play and vice versa. Instead, the software distribution service is provided by Ingenico’s Estate Manager which allows developers to remotely manage application evolution on all Ingenico products.

Developing on Android has become a “common” skill…

When you look at Google statistical data on Android, one of the standout figures is the impressive number of applications already published on its Play Store. This was most recently placed at 3.04 million apps, having surpassing 1 million apps in July 2013.

This is clear evidence of a massive developer community working on Android. Not only this, but resources are accessible worldwide, with multilanguage documentation provided by Google’s developer website, providing a rich source of coding examples.

The Android Developer Community is very active, with forums, blogs, video tutorials and free training just some of the support mechanisms in place to ease the development process. Developers can choose from a wide variety of programming languages, starting with NDK with C/C++, evolving to more abstract and runtime-controlled environments like Java and Kotlin, but also C#, Python, and Ruby etc.

… thanks to the resources accessible to developers

There are several resources available to developers, here are some of the most important to consider:

  • Android Studio, the killer RAD (rapid application development) open source IDE (integrated development environment) based on IntelliJ IDEA. It offers component management (Gradle/Maven), Android ROM emulators, Android Debug Bridge (ADB) to run applications and useful features like material design. It’s a great tool which is constantly evolving to support its community.
  • Hello world!” applications can be created in just a few clicks in the IDE and it also supports debugging. Starting development has never been so easy!
  • For demos, code samples tutorials, GitHub offers lots of open source resources to get inspired.

As a result, developing on Android is considered straightforward…

Android offers the reassurance of a future proof technology. It is common sense, for example, to consider that recent technologies like 5G will be supported by newer versions of Android. Indeed, when you consider the number vendors who continue to integrate with the OS, Android is a safe bet when it comes to applications design.

Android continues to develop and lead the art of user experience; the user interface design, the accessibility of the touch screens, the operating mode of the graphic controls, widgets, virtual keyboards, styles, multimedia and so on. Each innovation is lapped up and appreciated by millions of end users.

A simple application can be implemented on Android in just a few days by skilled developers. Several resources for developers have already been highlighted, however full stack competencies are key in finding simplified ways to do things in a straightforward way.

This is all part of the innovation process; development full-stack skills, solutions and graphic resources portfolios are all capable of boosting Android development performance and results, helping to reduce the time to market and improving software quality.

… offering undeniable advantages

  • Code reusability is a key advantage of the Android platform, mainly due to the Java support offered only on Android. The development stack on the payment terminal benefits from open source libraries, adding new development concepts like dependency injection, reactive programming, data persistence, increasing solution complexity to meet a variety of needs.
  • Android applications can be designed for testing, with a large range of tools on offer to manage automated testing. These can be used to boost the application’s quality and value to the user.
  • APIs service design can accelerate integrations with external services or managing ‘App to App’ communication. Android also offers opportunities to use Apps features through the services of third parties, opening the potential for other revenue streams by reselling apps services to others.
  • Android’s development environment is another key benefit, providing graphic standard formats which include integrated features to design UIs. Logging and online/offline debugging aid coding and the troubleshooting processes. This is further supported with a library to run multithreading, synchronisation, exceptions and database frameworks.

But, is there a bridge between Tetra and Android?

The first purpose of using an Android-based terminal is to offer a rich portfolio of business applications. These applications can certainly be developed from scratch, but they can also be leveraged from an existing environment. After some enhancement, open Android applications become applicable to a POS terminal while meeting the strictest levels of security.

The other way around, is to consider all the existing Tetra applications. Would it be possible to port them onto Android?

For developers already familiar with Ingenico’s Tetra terminals, one of the key questions is whether it is more straightforward to develop on Android? However, there isn’t a simple answer as many variables are involved in both development processes, namely: skills, application architecture, complexity, expectations and expertise.

A solid knowledge of Android and an existing application portfolio would bring a significant advantage and speed up the development process. Combine this with access to free solution examples covering most common app development issues, and Android starts to accrue considerable value.

One of the options to consider when porting an app from Tetra to Android, is to explore the source code conversion of Tetra C/C++ into Android project native libraries. The porting of large business logic applications could benefit from this approach, even if it results in some architectural cons.

More generally, rewriting an entire application using more recent and abstract coding language like Java/Kotlin brings hidden benefits. Coding accelerators, such as automatic garbage collector, concise syntax, Elvis operator (Null safety) and lambda expression - all cover aspects of development that would be very time consuming in C++. Investing time in learning these new techniques can speed up development and reduce workload. However, certain attributes such as application lifecycle (background management), tasks, data management, communication and asset management, use completely different models on Android: this must be understood and accepted.

Ingenico is committed to continued support for the range of Tetra terminals running our proprietary operating system and they will remain the product of choice for environments where business applications aren’t necessary. In that guise the terminal is a tool for payment. However, for some merchants and environments, a range of business and productivity applications on the terminal will bring significant benefits to businesses and the user experience.

The Android based AXIUM range brings a familiar user experience and an open platform whereby the multitude of skilled Android developers and the vast array of Android applications ripe for porting, offer a bright future for the ‘humble’ terminal - as a secure and trusted platform for payments…and more.

If you would like to join Ingenico's Developer Community and learn more about building digital apps and services on our smart terminals, please visit our Developers' Partner Programme website

Author
Mario Perciabosco

Mario Perciabosco

Android and Service Development Team Leader, EMEA at Ingenico

Mario has 18 years’ experience in the payments industry having held a variety of roles in Software, Development and Pre-Sales. He is currently the Android leader for Professional Services in EMEA and responsible for new collaborations, reinforcing customer partnerships and offering his experience to simplify access to the most recent payment technologies.

Blog Tags

Also in Customer experience

11 Dec 24
Ingenico’s EMEA Excellence Repair Centers: Where Sustainability Meets Customer Satisfaction
04 Dec 24
Why merchants must accept tap to pay payments by 2025
14 Oct 24
How Unattended Payments Are Transforming Commerce Across Industries
08 Oct 24
Celebrating the power of micro-donations: Ingenico and Pennies reach the 10 million mark
22 Sep 24
What makes Ingenico’s EMEA Logistics Hub a centre of Excellence?
The Imperative of Building an Android POS Ecosystem
Android in Payments - Past, Present, Future
14 Jun 24
Revolutionizing Retail: Meeting Consumer Payment Demands in 2024
prev next