Tag Archives: HTML5

Keeping up-to-date: Mobile security & Native UI

To catch-up on the latest mobile security and native UI trends, the Uniface mobile development team recently attended the appDevcon conference. A conference by app developers, for app developers. An event which targets developers for Apple iOS and Google Android, Windows, Web, TV and IoT devices in multiple tracks.

In advance, we were especially interested in two main topics: smartphone security and sharing code between web and native apps.

Mobile security

The mobile security presentations were given by Daniel Zucker, a software engineer manager at Google, and Jan-Felix Schmakeit, an Android engineer also at Google. In their – in my view – impressive presentation, they confirmed what I already thought: securing mobile phones is not something which you do after you have designed and developed your apps. It is a key area of app development to consider in advance.

Securing mobile phones starts with a good understanding of the architecture of at least the Android and iOS platforms. How is it built up? For example, as Android is based on the Linux kernel, you get all the Linux security artefacts, like Process isolation, SELinux, verified boot and cryptography. While some security services provided to mobile apps have a platform specific nature, others are platform independent.  An example of the first one is the new Android Permissions, which have now become more transparent to users, as they now get permission requests ‘in context’. An example of the platform independent security artefacts is the certificate validation, which done in an incorrect way, would still make your app vulnerable.


Native UI

Sharing code between native and web apps promised to be an interesting session. Some context: mobile users tend to spend significant more time on native UI enriched apps than on web apps, while web apps are attracting more unique visitors than native apps, as web apps are more widely approachable using different devices.

The best way to share code between native and web apps is simply by writing them as much as possible in the same code. Of course! But how do you do that? In this session the solution was to write fully native apps using a mix of NativeScript (an open-source framework to develop apps on iOS and Android platforms) and AngularJS (JavaScript-based open-source front-end web application framework). These native apps are built using platform agnostic programming languages such as JavaScript or TypeScript. They result in fully native Apps, which use the same APIs as if they were developed in Xcode or Android Studio. That is quite interesting! So using JavaScript you can develop fully native apps. That sounds like music to my ears.

Looking at this trend, it promises a lot. The mobile community seems to put a lot of effort in trying to simplify the creation of fully native enriched apps using plain JavaScript and HTML5 functionalities. Until now, we support our users in creating native/hybrid apps with fully native functionality with our Dynamic Server Page (DSP) technology. As we are looking into ways to enrich this technology further, we will follow the developments on this trend as it is fully in-line with our philosophy to share code between applications (client-server, web and mobile apps) and to support rapid application development, which saves our users time and resources in developing and maintaining fully enriched and cool applications. 

 

The future has arrived but has the enterprise?

By Clive Howard, Principal Practitioner Analyst, Creative Intellect Consulting

We recently spoke with John Gledhill, Group Director of Strategy & Innovation at Tribal a global provider of products and services to the international education, training and learning markets. When asked about the key trends within software development he answered, “the obvious one is mobility: so responsive design, HTML 5 and effectively all of that driven by customers who want their applications deployed via mobile technologies is a key element in development today and for the foreseeable future”.

John has seen first-hand the challenges that developing for the native mobile platform (e.g. Apple’s iOS or Google’s Android) poses, “every time iOS gets updated, a new phone comes out with different screen dimensions, we have to go and check that the app works on that.”

To him the benefits of a hybrid approach are clear: “why as an enterprise vendor would you want to spend half your budget trying to keep on top of the proliferation of platforms and platform sizes, 8 inch tablets now, 5 inch phones, what’s this 6 inch phones, is that a tablet or not?”

Common to both hybrid mobile development and Responsive Web Design (RWD), where the web design adapts automatically to fit to the device display, is the use of frameworks such as jQuery, Bootstrap and Angular.js. These frameworks help developers to create responsive UI that contains many of the interaction features familiar to mobile device users. Such frameworks make for faster and more reliable development which can be deployed across various different scenarios.

As John told us “what you actually want is somebody doing that, and saying we have got it covered, you can put your concept inside our framework, we will take care of the native controls, and we will make sure that the screen size is alright”.

The challenge with all of this is that it requires skills that many organisations simply do not have because they’ve not cultivated them. Where organisations have invested in such skills they have a clear competitive advantage whether developing for the web or mobile and for B2C, B2B or B2E.

Recognising the value in the user experience

Underpinning all of this is the desire to create better user experiences for all. Customers demand great experiences and have done for some time. Now employees are demanding them as well within the applications that they use at work. If the organisation does not provide them then they will go elsewhere just as customers do. Recent years have seen a flood of B2B orientated web based applications often referred to as Software as a Service (SaaS). These applications allow some groups within organisations to use them as alternatives to those provided by their employer. The danger is that data and processes move outside of the organisation. Some call this the “consumerisation” of IT. The Bring Your Own Device (BYOD) movement means that employees are bringing a variety of form factors into the workplace and expecting the software provided by the employer to work just as well across all of them. We are now seeing Bring Your Own App which extends the SaaS issue to mobile.

Modern web frameworks and HTML5 can enable this but the technology can only do so much. Experts in user experience and user centric processes are needed within the development lifecycle. This goes deeper than just UI design but extends into performance, reliability, scalability and security of applications. Client applications whether in the browser or running as apps on devices must be both easy to use and performant. That means the backend services supplying them must be fast and the data travelling over the network (Wi-Fi and cellular) needs to be lightweight. This not only improves speed of transfer but also reduces cost of transfer.

The smoke and mirrors of HTML5

From the volume of coverage that HTML5 has received you would be forgiven for thinking that it is fast becoming a ubiquitous skill within application development. However you would be wrong. In many lists of the most in demand skills for 2013, HTML5 did not feature.

Surprising as this may seem, there are reasons for this: two key ones to be precise. The first is that HTML5 is still very new and support amongst web browsers is not universal. For example amongst Internet Explorer users only a small percentage have a version which is HTML5 compatible. The second is that most developers still do not code for the browser.

It is no surprise that of the most in demand languages the old names like Java, C, C++, C# and T-SQL still dominate the market. In fact JavaScript fares better than HTML because it has spread beyond the web browser into other areas of programming. Node.js has become a popular backend solution especially within organisations looking to rapidly deploy lightweight web services for use by mobile apps.

What, no HTML5? Why we are where we are today

At the height of the dotcom bubble, most organisations outsourced their websites to specialist agencies. Enterprise organisations especially took this decision as they felt that they did not have nor particularly wanted those skills (HTML) in-house. Their development teams were hired for Java, C or VB to work on legacy software built around these established technologies. The result was that web skills such as HTML, JavaScript and CSS were fostered within specialist service providers such as digital agencies whilst much of the traditional software development world continued to focus on the desktop. This was true not just within the enterprise but of many suppliers such as ISVs.

Then companies increasingly wanted more and more of their software to be web based but the teams responsible for that software lacked the skills and experience do this. The resulting frustration within parts of the organisation led to the proliferation of buying in software unbeknown to IT, known colloquially as “Shadow IT”. More recently the use of social networks and mobile apps has led to an expectation of user experience from software that their organisation often fails to provide.

The typical enterprise today will have a lot of grey screen applications which are almost impossible to use without training and experience. Into this landscape has come new pressures to deliver mobile apps which require skills that the organisation simply does not possess, or not in the right numbers or parts of the business.

The drums beating for HTML5

In the last 12 months we’ve heard a lot about the benefits of hybrid mobile development to enterprise. This is because the hybrid approach avoids the need to have numerous programming skills and multiple code bases to support apps that have to be built multiple times for each platform (Android, iOS and so on). With hybrid, a single codebase can be developed using a single technology platform and then deployed to a variety of device platforms. Whilst the business case is sound, a lot of hybrid development is based on web development skills.

A further significant change occurring in web development has been Responsive Web Design (RWD). With people now accessing websites from a variety of form factors such as phones and tablets of varying sizes websites need to adapt to the available real estate. What might work on a traditional desktop will not work so well on a 4inch mobile phone screen. Instead of building different sites to cater for these different scenarios RWD is a single site that adapts as screens get bigger or smaller. One of the foundation technologies behind RWD is HTML5. Even enterprises that have adopted some web capabilities are challenged by RWD.

Waking up to the challenge

As with HTML5 the UX skills are also missing because organisations have long ignored these issues. As John Gledhill told us “I think the biggest challenge for organisations like ours is actually design and UX expertise that is really irrespective of technology”.

Where organisations are recognising the UX issue it is often only cursory, as John explained “UX, I think, is still a bit of an afterthought. I have had people saying “can we borrow the UX guy for a week to test the application?”, and you think, well what happens when the UX guy tells you it is unusable? – you are just about to release it! You should have got the UX guy in at the beginning, not at the very end!”

The reason has historically been because development functions have not recognised or studied the value of UX.

As John points out, this is because “we don’t measure return on investment in the right place. We just assume that UX can take a back seat because people will just do what we tell them to do and lump it. But actually, if somebody was measuring productivity gain, if people were measuring time to completion of a particular task through a system, UX is hugely important. If you are looking at reduction in complexity, it really pays dividends when you think about it up front particularly when you have got very large numbers of end users, many of whom might be your customers (or their customers) and not your employees. But people just don’t think that way at the moment.”

Looking to the future and making up for a lost decade

The fact that people in John’s position are beginning to appreciate these issues and recognise that there are skills missing from the organisation is a promising sign. Therefore we can say that all is not lost. Developers can learn new technologies and programming languages. Vendors help through tools that: abstract away some of the HTML, JavaScript or CSS code; enable designer and developer workflows; and integrate the popular frameworks into their tools to make implementation easier.

In addition there is a new breed of developer being trained up by coding boot camps that can churn out web developers in 12 weeks. These folks may not be ready for any heavy backend lifting within complex legacy systems but for rapidly deploying frontends in HTML5 or JavaScript they are capable. Even companies like Google and Adobe are hiring these boot camp graduates.

UX is a fast growing industry and there are now a large number of training courses and resources. Smart businesses are embracing this skillset and in some cases experts are being poached from other industries such as gaming. We are also seeing UX processes being merged with new development methodologies such as Lean and Agile. Some organisations are even starting to reach levels of maturation in this area whereby UX is embedded into the approval and sign-off processes within ALM.

For many enterprise development and IT functions the beginning of this century has been a lost decade when it comes to the tools, technologies, skills and processes that they will need for the future. The time has come to catch-up and they need to begin investing in training, new hires and transformation programmes that will allow them to face the future with confidence.