Thursday, 4 June 2015

Mobile Payments


Have you thought about a mobile user's dilemma while doing a payment transaction via mobile? I remember the time when people were even sceptical to login to a third party website using Facebook or Twitter. They thought that it is not secure and preferred to create an account with website than login via Facebook. But the trend has changed and you can see apps now which can be logged in only via social media account. Just like login, mobile users prefer to stay away from a payment transaction in mobile. They prefer to do all search and analysis in mobile and later complete the transaction in desktop web. Well, this is going to change.

2 Big recent announcements

Mobile payments is a hot topic for the past few years. When BitCoin was introduced many thought, that will be revolutionary and going to replace the entire online payment transactions including that of mobile. But that didn't happen. Later NFC was introduced in mobile phones. Now most of the leading companies are trying to get benefit out of this technology. There are still a few which works on magnetic strip reading.

Apple Pay

Apple announced its payment platform called Apple Pay in Sep 2014. The idea is to provide a mechanism to offer a secure but easier platform to transact money. The Passbook app will help to add bank cards to your iPhone and later use it for payment. Apple Pay is supported only in the latest devices. Its also available in Apple Watch. Apple Pay can be used in stores where its point of sale uses the Tap and Pay feature, thanks to NFC . Mobile businesses can also enable Apple Pay in their app by integrating the In-App purchase feature. Apple pay makes the payment process so easy that just by scanning finger print , your money is transferred.

Android Pay

Acquired: Softcard
Google announced Android Pay, the payment platform in Google I/O event on May 2015. It behaves much like Apple Pay. Android Pay also has Tap and Pay and In-App purchase. But the major difference is that Android Pay is a set of APIs, but not a product. That means, unlike Apple Pay where your iPhone can transfer money without a third party app, Android Pay requires an app for payment transaction. Though there is no finger print scanning required for Android Pay as of now, they have plans to enable it in near future. Unlike Apple Pay, Android Pay will have wide reach as it is available in all the Android 4.4 phones with NFC support.

Google has gone a step further to make hands free payment. They plan to release a hands free app by end of this year that lets you pay at store by saying 'I would like to pay with Google'. Check here for more details.

Compare Apple Pay, Android Pay and Samsung Pay

There are more similarities than differences between these platforms. 
Apple Pay
Android Pay
Samsung Pay
Tap and Pay
Tap and Pay without a third party app
In app purchase
Fingerprint security
No(coming soon)
Hands Free
No(coming soon)
Payment via Watch
NFC support
Magnetic strip support
Tokenize credit card number
Devices support
iPhone6, 6 plus, Apple Watch
All KitKat devices having NFC
Galaxy S6 and S6 edge
Support outside US

Other big players in mobile payment

Apart from Apple and Google there are also other companies to compete in this domain.

Samsung Pay

Acquired: LoopPay
Though announced early, Samsung is yet to keep the promise just like Tizen. As per the current information, Samsung Pay will be available only in Galaxy S6 and S6 Edge versions. The main difference between Samsung Pay and other solutions is the support of magnetic strip readers by Galaxy devices. Samsung will have a good reach as this additional feature will enable them in millions of stores without any new hardware.

PayPal Here

Acquired: Paydiant
The Braintree SDK can be integrated into any apps which now supports all the payment platforms available including Apple Pay, PayPal and BitCoin.

Microsoft Payments

Microsoft is planning for its native payment APIs in the upcoming Windows 10 version. Though Microsoft has not yet announced officially, they have procured license from various US territories to be a money transmitter.


It will be still good to mention about Square in this article. They had offline card support 5 yeas ago using their card reading device called Sqaure Reader. Later they changed their target to develop an expense management system. 

Ready to pay via mobile? Well, let us wait for a day when you can see just one button in app's payment page. 


Monday, 20 April 2015

Push notifications for websites

Well well well, I am very excited. Made a working prototype in 3 hours :) 

Chrome 42 has now Push APIs using which you can sent a push notification to your desktop/android phones. 

Hold on! I will start afresh. A few questions to begin with.

Hello smartphone users,

What kind of applications do you keep in you smart phone? Only frequently used applications? Will you ever install a travel application to your phone? 

Now, web application owners,

How do you retain your visitors? Have you ever thought that even after re-designing your page to be mobile friendly, you have not met your expectations? Didn't you think that native apps are powerful because it can show notifications and you are also forced to create a mobile app?

All these questions distinctly derives the gaps between native apps and web apps (well, not talking about mobile web app and web app; all must be responsive now). The most outstanding among them was always push notifications, which are supported by GCM, APNS, WNS etc. Well, the biggest gap is sealed now!

As you know, to implement notification there are works to be done at client and server. You can keep your server implementation intact and just add a few lines of code to your web page. That's all you have to do.

 Image1: How notification works for native apps?

The above diagram is still applicable for website notifications too, but with some small changes.

                                      Image2: How notification works for web apps?

Not so complicated right? If you know how push notification works, it would be a piece of cake. Well, you should also know how service workers work.

Service worker is a JavaScript file that is running as a background process for your browser. That means, the service worker will continue to run even if you don't have your web application opened in browser. This will help you to achieve features like push notification, altering the network requests etc.  You may also have to learn how to debug service worker.

                                        Image3: Life cycle of service worker (courtesy: html5rocks)


Just steps.. you have to explore web. 
  1. Get consent from the user for push notification using UI
  2. Create a service worker which handles push event and notificationclick event
  3. Create a manifest to put your Google project's GCM sender id
  4. Include both manifest and service worker in your page
  5. Register service worker
  6. When service worker is ready, get the subscription from push manager (same as registering for push notification and get the registration id back)
  7. Send the subscription id to your cloud server
  8. Whenever there is a notification to be sent, use this subscription id


One big limitation is that, you cannot sent any data in the notification. Oops! Chrome is working on it. Lets wait for it.


Above limitation is resolved in Chrome44 with

ps: Chrome notifications will work in desktop if chrome is running. It works without any preconditions in Android. Safari notifications is also ready. But available only for OSX and currently not supported for iOS. Lets wait and see! 

Friday, 13 March 2015

Mobile World Congress 2015 - highlights


I was fortunate enough to attend MWC last week in Barcelona. Even though many good and detailed reviews are available across sites, I wanted to write another with my perspective.


There were many new gadgets from established players and start-ups. I will list out a few outstanding ones. 


Software giants are putting a lot of investment in virtual reality. I could see many developer booths with small prototypes using these SDKs. And HTC has surprised everyone by showing their new VR headset, Vive in partnership with Valve. I could not even reach out to the demo because of the long waiting queues. But the reviews are so promising and believed to be the most advanced VR currently under development. Even Samsung gear VR stands second to HTC here. But one benefit of Gear over Vive is its mobility. Gear VR supports use of S6 and S6 edge where as other VRs have to be connected to a PC.

All praises go to HTC and Vive and they really stole the show.

Just for your information, I am listing down the active VR headsets (in my knowledge).

IoT devices

There were numerous IoT devices especially from start-ups. I could not go through all. But following are the one that I noticed.

Huawei introduced many WiFi adapters. And the car WiFi dongle with LTE support was worth a look. 

Another interesting one is a snore stopper, VVFly that does not wake you up. There is an Android app too, but available only in Chinese! This ear fitted device will vibrate as soon as you start snoring and adjusts itself when you stop it. 

Smart suitcase from Bluesmart has got many smart features such as in built digital scale, many sensors, battery charger etc.


Ford has displayed 2 bike models which are currently under development. One is targeted for the personal use and the other for commercial. Both can be folded and has got decent battery power. The e-bike is smart enough to give hand vibrations to the cyclist to inform him about turns to take, vehicle overtake etc.

Intel and BMW collaboratively developed a system that connects the helmet and the bike. The motorcyclist can give commands and get information such as tire pressure, engine temperature etc.

Audi connect was displayed in Audi theatre at 4YFN (4 years from now, startups meet). This is a next generation car that can fully integrate with your mobile. It has got the first Google Earth installation. For more details, watch this video. 

Nokia, who is also working on the self driven cars, had a good pavilion with a demo car showing how maps HERE can give intelligent recommendations to the drivers. Compared to the Audi Google Earth, I liked Nokia HERE implementation because of its ease of use. It is also powered with smart location experiences.


As expected, many companies came up with their Android smart watches to MWC. Samsung took a break this time. The prominent one was Asus Zenwatch, not only its look but also the price was attractive. Apple lovers please excuse this infographic.

Other major players were Huawei, China Mobile, Motorola(same old moto36o with new straps) and water resistant Sony watches. Huawei and China Mobile shows real interest, where as Sony just made a desperate attempt. 

The different guy was as usual Pebble, this time with a premium edition. Pebble Steel is different from its predecessor in display, battery and straps. In short very impressive.


There were many wearables from HTC, Huawei and Sony. I didn't show much interest to them. The furniture master Ikea also made their hands dirty by getting into this field. There were few products that even wasted my time such as smart projectors from Lenovo and ZTE.

SmartPhones & Tablets

I really want to skip this section as there were tonnes of them. Obviously Samsung got the attention because of their excellent presentation and the usual hype. Samsung Pay was a surprise element. Both S6 and S6 edge are amazing. Though I repeatedly asked to the Samsung guy whether a custom app can show notifications on the edge, he was not sure about it. Seems like a fancy stuff for now. 

Curved phone from LG, Asus ZenPhone2, Nokia N1 tablet, BlackBerry passport(a bit old) were all good. Huawei came up with a handful of devices. It was like like visiting a Chinese toy shop. Lenovo had a good stage but none of the products could attract the visitors. I want to put Sony and ZTE at the bottom of the list.

Other new players:


This booth has got only interested guys, like me. 2 years after launching, Mozilla has spanned over many countries especially developing countries. This time they have launched FirefoxOS in high end devices like ZTE.

Ubuntu Phone

At last Ubuntu made it! Actually Canonical did. This phone has no home or back buttons and no apps too! They introduced the concept of scopes. You can read more about it here


If you have heard about Sailfish OS, you will be familiar with Jolla a crowd-sourced tablet. This device has got decent look and very light in weight. Played around it for some minutes; I would say it is swipe based OS.


Alright. So we have seen many smartphones with rectangular and square in shape. Some curved, some round-cornered. But how about a circular shaped one? A company called Monohm is behind this cool pocket watch. I think this can play a hybrid version of smartwatch and smartphone.


I could also attend a few workshops on technologies such as WebRTC. There were a couple of start-ups who worked on this technology by integrating with Robotics, Social Networking etc. Mozilla promised the full support to WebRTC in their upcoming OS versions. 


Sundar Pichai's announcement to get into the wireless domain has to be read along with Zuckerberg's Both the giants are targeting telecom industry, not sure what the end goal is.


There was also a session, Eye for Travel to discuss the trends of 2014. One of the key points was that OTAs are growing bigger than the real brands as far as the Hotel industry is concerned. There are metasearchers and Google who are trying to change the fortune. But still OTAs are successful. But this trend can change in the upcoming years. So everyone has to play hard. To keep the loyal customers, the information has to be personalized and more contextualized.

There were a few start-ups with some prototypes in the cab industry and local content search. Everyone has a USP which is really impressive.

All together it was a really good experience. Thanks to Amadeus for sending me there.

For more details visit

Sunday, 31 August 2014

Shadow DOM and Templates in HTML

While I was looking into the security aspects of HTML form element, I came across a term called shadow DOM. I found it interesting and searched for more details. The information was more interesting. I thought of sharing the same with you before I forget. :)

Thursday, 24 July 2014

Automate (test) iOS Application with Appium

Hello folks,

In my previous 2 blogs I have explained basics of Appium and setting up of platform for Android. Here we will talk about the iOS dev environment set up.

As you know, we have to set up both client and server. Test client remains the same except a few things.

Test Client

Client set up is almost similar to that of Android. You can find the details here.

Automate (test) Android Application with Appium

Hello folks,

As discussed earlier, in this blog I will talk about platform setting up of your Android applications. I had mentioned in previous blog that, Appium uses JSON Wire protocol which in turn is a client-server architecture. So we need to set up both the parts separately.

Test Client

In the 2 tier architecture, your testcases/testscripts will act as the client. Appium provides you rich collection of client libraries in multiple programming languages such as Java/JavaScript/Ruby/PHP/Python/C#. This blog will explain the client set up using Java client libraries.

Wednesday, 23 July 2014

Test automation of mobile applications


Last few days I was working on mobile application testing. I evaluated a couple of tools and I want to share my observation here.

If you want to jump into testing of Android / iOS, you can visit following links.

Android testing using Appium
iOS testing using Appium

Setting Context

The application that I want to perform automation testing is hybrid. I have written test cases for it's web version.

Tools evaluated

1. MonkeyTalk

Monday, 7 July 2014

A/B Testing using Google Experiments


Hope you all had a good weekend. I really had fun. A few days back my manager threw some light on A/B testing with the help of Google. And that is the reason why I am writing this blog.

What is A/B testing?

In short, it is a way to improve the customer experience and thereby increase revenue from your website. You can search in Google to find the best definition. 

How Google helps?

Google helps you to create 10 different variations of your content and also provides library/SDKs to integrate the variations in your application. It is called Google Content Experiments. It offers 3 different ways of implementing it.

Saturday, 5 July 2014

Resize image in HTML

Hello folks,

Lets have a look at the various ways in which an image can be re-sized in an HTML page. I will classify it into 3 different sections. Re-sizing of a background image, regular img tag and sprite image. If you are interested only in re-sizing a sprite image directly jump to last section.

Section 1: How to re-size a background image?

I am sure many of you might be familiar with the background property. It is actually a short-hand property for many other properties; mainly background-image. Look at the example given below.

 html {
  background: url('worldcup.jpg') center center no-repeat; 

This will render the image at the center of your page with actual size. Using background-size property, you can re-size the image in different ways.

Tuesday, 3 June 2014

JUnit Parameterized TestCases


Last few days I was working on selenium based automation testing. During the development of a framework I came across few interesting elements in JUnit4. Today we are going to talk about running testcases with parameters.

A common scenario

In many situations you might have to create multiple JUnit TestCases which are identical except for the input data. For example, if you want to test a form page with multiple values for the same field, you will end up in creating identical test cases with different input values.

Don't create multiple TestCases

You can get rid of creation of identical testcases with the help of Parameterized runner. I will give the steps for creating a Parameterized test case.

  1. Create your test case
  2. Annotate it with Parameterized                                                                                                           
  3. Create a static method that returns a Collection of Object Array. Also annotate it with Parameters     
  4. Create a constructor with the same number of arguments as given in the array                                          
  5. You are done. Now run the testcase!
You can notice that each test method is executed for each item in that collection. 

Good day!