Who needs this HTML: “How I washed down a payment service in 2 months - and sent it to the dump”

    The choice between rearing and wheeling - HTML5 and the native programming environment - sooner or later confronts any mobile developer who needs to be present on different platforms. He also did not pass us over at UBANK .

    In 2011, we started with the html version that worked on Android. They were preparing to port it to other platforms, despite the difficulties that had to be encountered. But in the end, two years later, they turned off this project and replaced the project with native applications.



    In this article, the leading developer of UBANK Alexander PutilinHe will try to tell about our experience in creating a cross-platform application, and also share some ideas about why HTML5 is still needed and how it can be defeated. Interested in practical matters are welcome to comment.

    Beta on Bada


    Alexander Putilin:

    - In HTML, of course, we were attracted to multi-platform. UBANK was tasked with being present on all popular devices. It seemed that creating a web application once and then porting it to all platforms would be much easier than writing a native one for each.

    Development began in 2011. We decided to start with the Bada platform. Samsung was a strategic partner for our startup. And this was his native platform, on which the Koreans released about 200 phone models. In 2010-2011, it occupied about 10% of the Russian mobile market and seemed promising.

    I started writing an application using the PhoneGap framework. We managed to cope with the task in a couple of months. By the end of 2011, our version of the application reached the level of a fairly stable beta.

    But then a little trouble happened: Samsung unexpectedly decided to collapse Bada for everyone. The Koreans began to develop the Tizen operating system, planning to merge it with Bada in the future. Releasing our application on Bada no longer made sense, although it was ready.

    However, we were not very upset. After all, the non-native version allowed us to easily port the application to any device, right? Okay. We started by porting our development to Android without releasing UBANK on Bada.

    But here everything turned out to be more complicated than we thought.

    Wrestling with Android


    The first problem was encryption. Initially, the framework is intended simply for creating applications - forms, texts, data output, in general, nothing complicated. And for our payment application encryption was required. At the same time, mathematics in java-script works frankly weakly - by orders of magnitude slower than in native code.

    To implement encryption and not force the user to wait for the operation to complete for a couple of minutes, we had to write pieces of native code that would interact with the html interface. Thus, the native code in the application was about 10%. And that would probably be nice if the rest of the code worked as it should. But no.

    Android, as you know, has too many modifications that are very different from each other. New features are added to iOs in new versions, but usually the old ones do not fall off. On Android, what works fine on 2.2, for some reason, does not work on 4.

    The animation from Android 2.2, the four went in gray stripes. And the one that we made under the four, stupidly braked on the second. But there would still be a third Android, and neither one nor the other worked on it.


    The keyboard brought a lot of problems. In the browser on Android, she behaved as she wanted: she could close at the entrance to the field, she could remain in the old field when switching to a new field. I had to fight this - and again with the native code.

    I had to tinker a lot with solving such minor problems. Moreover, at least there is documentation on the native development, and here it was necessary to reach everything experimentally, that is, by the method of scientific poking. The experiments, however, ended quite happily: the first version of UBANK was just an HTML application ported to Android. However, the glorious history of this project ended on this.

    Work at the desk


    Of course, UBANK as a mobile payment service had the task of being present on all major smartphones. Therefore, in parallel, we sawed versions for iOS and Windows Phone.

    Here we repeated the path already done. In each case, about 10% of the code had to be rewritten to provide native encryption. And also to deal with various flaws that appeared when porting.

    This beautiful work never saw the light of day. When our marketers watched it, they immediately cut it off without undue sentiment. And, in general, they did the right thing.

    As you know, iOS is a highly unified environment. IPhone users are already used to the standard design elements. And it turned out to be practically impossible to redesign the appearance of our web application so that it looked adequately on iOS. Although we tried. But still it was clear that something was not right. There is nothing to say about Windows Phone with its tiled interface.

    We also made an attempt to release the application for Simbian - Nokia was then relevant. But it turned out that Simbian did not allow encryption in native code. We simply could not have ensured the proper degree of security on it.

    As a result, we at UBANK came to the inevitable decision: serious cross-platform development in HTML for mobile platforms is a complete utopia. Porting is not as painless and easy as we would like if your application has really serious tasks. And the design features of each platform do not allow you to make the product look like five on all devices, having the same interface appearance.

    No man is an island


    Now all of our services that we rolled out six months ago are completely native applications. Does this mean that HTML5 needs to be sent to the dump of history?

    I don’t think so. It seems to me that each tool has its advantages - you just need to use it correctly. Based on my experience, I would say that HTML is great for prototyping. It gives you the opportunity to almost instantly see how everything will work.

    Compare: the first, fully functional HTML version, I did it alone in two months. The development of native applications for iOS, Android and Windows Phone took about a year of work of a whole team of programmers, the number of which during this time at different stages varied from two to seven people.


    For a quick start, HTML is a good tool. But laying it as the main technology of the company is not worth it, because the ported application will always be worse than the native one - it will work and look.

    If you are developing HTML mobile application right now and faced with some kind of problem, write in the comments. Perhaps I can help you, because I was already looking for a way to solve the same problem. On the Internet, I was not able to find clues then - I reached everything myself. And now I will be glad to share them.

    Also popular now: