The HTML5Apps team continues its series of SMEs interviews across Europe. Today, we go to Spain, and more precisely to Gijón (in Asturias, north of Spain), where is located the startup UbiqWare. UbiqWare is specialized in the development of cross-platform multi-device software solutions, offering products, services, knowledge and experience to other software companies.
- Hello, can you tell us more about your company and its business at a high level?
- UbiqWare is a startup focused on improving the ability of other software companies, mainly but not solely start-ups, to develop software. More specifically, we help companies to:
- Create cross-platform solutions, including back-end, thus providing final users with access via the Web browser (desktop, mobile and, in general, any form factor) and mobile apps (mainly based on Apache Cordova, but also applying native development when required);
- Adopt agile methodologies that facilitate success in software projects, regardless of their complexity. We propose tools such as the Atlassian suite (JIRA, JIRA Agile, Confluence, etc.) or other free alternatives, such as Redmine. We put a strong focus on continuous integration and continuous delivery/deployment. For this, we use DevHaven, our solution for continuous integration and delivery with a special focus on cross-platform development, with initial support for Apache Cordova projects, and plans for Grails, native iOS, native Android and Web projects soon.
- What is your experience in developing cross-platform mobile applications?
Part of the team is coming from the R&D department of Fundación CTIC. We worked in projects involving development under native and (desktop-only, responsive and mobile-first) Web development. In the early stages of our work in CTIC, Web and native were separated worlds. JavaME, Symbian and Windows Mobile were the most popular technologies used, whereas XHTML-MP and other HTML subsets and flavors were used for mobile Web development. In particular, we worked on MyMobileWeb, an open-source platform for browser detection which delivered the most suitable markup (and rest of resources) formats.
Since we created UbiqWare with two other colleagues (Jorge Román and Mario San Román, with large experience in back-end development) in November 2015 , we worked in the following projects (while developing DevHaven):
- We first collaborated with a Spanish startup on a cloud service to provide companies with a unified vision of their digital properties and general business performance by means of the integration of all their business metrics, Web analytics, campaigns and social media data in a single panel. They work with quite a few well-known international companies from a variety of industries.We analysed the code of their Web app and created a much smoother version that was packaged as an Apache Cordova app for iPad, adding offline capabilities. Thanks to their Web development skills, they are creating a universal iOS version and an Android version, both for mobile and tablet devices.We are now starting another project improving the way in which they organize their code and software development methodology, trying to take them to a single codebase that finally generates Web apps and mobile apps. This company is the first user of DevHaven, in its current internal stage.
- Support for a Web development company in mobile apps creation. They have designed Web sites and applications for public institutions or consulting companies. Following increased requests from customers to create a mobile app in addition to a Web application or site, they chose UbiqWare as their technology provider and advisor to create cross-platform solutions based on responsive Web + Apache Cordova (and the corresponding plugins and extensions).
- Development of a mobile video surveillance application for a company that provides video surveillance services for large companies. One such company has started to complement their fixed video surveillance system with the use of a mobile application by their security guards. The first version of the application was developed for iPad, under a native development approach. An Android version for tablets is expected to be requested in the next months. This is a case in which performance suggested a native approach, due to the requirement to display several video sources as smoothly as possible while providing a UI with minimum response time.
- Mobile application to manage the balance associated to NFC bracelets used for digital payments, developed for one of the leaders in Spain in the field of digital payments. It has been developed in Apache Cordova.
- What do you think about the gap between native and Web apps?
- When the guys in Nitobi, the original company who created PhoneGap later acquired by Adobe, were asked about the future of PhoneGap, they said the ideal situation would be that PhoneGap would no longer be required. They expected that the path leading to browsers having access to native features would continue, thus making the existence of tools such as PhoneGap (contributed to the Apache Foundation as an open source later named Apache Cordova, which is the foundation to PhoneGap) unnecessary.Unfortunately, the expectations on Device APIs in Web browsers have not been fulfilled and there are many cases in which native development is required. Sometimes, completely using a native approach or by enhancing hybrid technologies with native plugins.
It is also true that the operating systems and browsers makers are reducing the gap. Apple used a different JavaScript engine in their UIWebView native component, much slower than the one used by Mobile Safari. Their new WKWebKit is much faster. Google has recently provided Chrome’s WebView component in Android as an independent software piece than can be updated separately of Chrome itself and is focusing on improving its performance. Google also encourages other Android browsers makers to release their own WebView components, so technologies such as Apache Cordova allow developers to choose which WebView to use.
In addition, more powerful processors, larger memory chips and faster secondary storage technologies are included in newer devices. This reduces the difference in the perception of performance for human beings, between Web applications and native applications.
This is something that has been evolving day after day since the creation of hybrid development approaches. Therefore, the amount of business cases in which hybrid development can compete with native development is increasing. This is the reason why development teams with skills in responsive or mobile-first Web development dare to start with the release of mobile applications via app stores.
And this is the reason why the first platform to be supported in DevHaven is Apache Cordova. Web developers focus on HTML, CSS and JavaScript + knowing the Cordova plugins required to enhance functionality. DevHaven stops them from dealing with requiring an OS X to build for iOS, Windows to build for Windows Phone, installing and updating Xcode, Android SDK and Visual Studio, etc.
- Which platform you prefer to rely on: native or Web? and why?
- We rely on Web development, including hybrid development with Apache Cordova. We only go for native if absolutely required, as you have seen in our experience in cross-platform development.
- How do the requests and needs from your customers affect your choices in this space?
- From the development point of view, customers with the sufficient technical knowledge to have an opinion about it, they would like that Web technologies allowed potentially any kind of project, as a means to code once and execute in as many platforms as possible and therefore reduce development and maintenance costs.From those requesting our service DevHaven, they find that a service that let them focus on Web development by reducing the attention that they would need to pay to things as compilers, SDKs, etc. is really useful.
But in general, our customers want both a responsive Web app and a presence on the app store, for which an hybrid app (sometimes, but not always built upon the responsive Web app) is required. While we believe in the Web as a universal platform, our customers are not quite convinced yet!
- What are your needs in terms of Web standards? Which Web standard(s) are you waiting for specifically?
- A complete Device API stack. I know it is not easy, but it’s free to ask 🙂
This would stop us developers from requiring Cordova plugins, although Cordova (or similar solutions) would still be necessary in order to generate the mobile app.
The APIs for which we call upon Cordova plugins the most frequently are:
- file and file-transfer plugins, to implement local caches and, thus, offline access to information;
- device plugin, to harvest device information for conditional functionality or for analytics purposes;
- and push-messaging plugin to send remote notifications.
Thank you for your time! I will note that your town is also the home of the W3C Spanish Office!
At your service! It has been a pleasure 🙂