1. New Project


The development of Android Business Applications is similar to developing standard Android Applications with the Android Studio. In addition to the Google-provided APIs, you have the myPOS Smart SDK.
Using Android Studio to develop your app is recommended but you can use any other platform which you are comfortable with. Java is the language on which Android apps are written, but there are alternative ways with C and C++ by using the Android Native Development Kit (NDK).

2. Applications 


The type of app can differ from business to business. It is up to you to decide what type of business you will target with your app. You can develop for: 

  • Taxi and transportation industry
  • Restaurants, food & beverage
  • Retailers
  • Hotels and booking
  • Leisure
  • Professional services
  • And anything else you can think of

Compliance limitations
As for a payment device, there are certain limitations to the usage.

  • The Android settings are locked.
  • Every app needs to be signed with the Manufacturer's PCI Certification Key in order for the app to be installed on non-test devices.

3. Integrate myPOS Smart SDK


The myPOS Smart SDK gives access to the terminal's functionalities. 

This repository provides guidance on integrating an Android app with a myPOS Smart device. Once integrated, the app will be able to communicate with the core device components in order to accept card payments (including but not limited to VISA, Mastercard, UnionPay International, JCB, Bancontact). myPOS-Smart-SDK complements a Smart POS terminal in order to initiate a transaction, complete all steps for processing payment, make a refund to the customer card account and print a custom bill slip using the device printer. The built-in functionalities of myPOS-Smart-SDK allow you to send Payment Requests, manage operations for the first and second SAM component the myPOS Smart device has and print bitmap image integrated to the receipt (e.g. QR Code).

No sensitive card data is ever passed through or stored on a myPOS Smart device. All data is encrypted by the core card terminal module, which has been fully certified to the highest industry standards (PCI, EMV I and II, Visa, MasterCard, Amex).

With the SDK integrated into your app, you can make a call to: 

    • Receive POS info

    • Process checkout

    • Refund request

    • Payment Request

    • Void Request

    • SAM Module operation

    • Print the last transaction receipt

    • Print a custom receipt

4. Finish Project - Build APK file


To finish your project and create the package for your app, you need to use an application builder. Android Studio uses Gradle, an advanced build toolkit, to automate and manage the build process while allowing you to define flexible custom build configurations. Each build configuration can define its own set of code and resources while reusing the parts common to all versions of your app.

You may follow the official Android APK build documentation: 
https://developer.android.com/studio/build/

Manifest file

<?xml version="1.0" encoding="utf-8"?>
<manifest
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:versionCode="1"
 android:versionName="1.0.1"
 package="name.of.your.app">
<uses-sdk
 android:minSdkVersion="19"
 android:targetSdkVersion="27" />
.

android:label="name of your app seen on the terminal"
.
.
.

</manifest>

You can choose how to start and do your numbering of the version code and name, but on every new version you have to increase it with 1 number higher - for example, your next version needs to have these numberings:

 android:versionCode="2"
 android:versionName="1.0.2"

The package name has to remain the same, otherwise, it is considered a new and different app from the previous version.
The minimum SDK version for the myPOS Smart terminal is 19 which corresponds to the Android KitKat 4.4.2. If you are not developing for the Smart, but only for the Smart N5, you can make the minimum SDK version to 22 which is for Android Lollipop 5.1. If you want to create an app for the newer Hub series devices or the Kiosk, you can make the minimum SDK version to 23 which is for Android Marshmallow 6.0. For the latest addition in the Smart terminal family the myPOS Carbon which uses Android 9.0, you need to set the minimum SDK to 28.
The name shown on the terminal of your app depends on what you input as a string or text for the label. It is the text displayed under the icon on the device and it does not take the name from the AppMarket name.

The app must not be of a Launcher type, hence, you should remove the following code for any activity in the Manifest that has it:

<category android:name="android.intent.category.HOME" />

Signing your app with a developer key


To sign and create the APK file, you can follow the official Android documentation: https://developer.android.com/studio/publish/app-signing#generate-key
In order for your app to update correctly with every new version, you need to sign it with the same developer key. If you create and sign it with a new key, the app will be considered new and different and it will not update the previous versions.