Technological trends in web development 2019

Introduction

Digital transformation covers more and more different spheres of life and business every year. If a business wants to be competitive, ordinary information sites are no longer enough, mobile and web applications are needed that not only provide users with information, but also allow them to perform some functions: receive or order goods and services, provide tools.

Technological trends in web development 2019

So, for example, it is no longer enough for modern banks to have a website with information, they need to have online tools for their clients, a personal account where the user can manage accounts, investments, loans. Even small businesses need convenient tools to increase conversions, such as making an appointment with a doctor or a hairdresser, booking a table in a restaurant or a children's playroom for a birthday party.

And the owners themselves need to receive timely information in a convenient form on the state of their company, for example, the collection of statistical data and analytics for different departments of production, or the productivity of departments. Often each of the departments collects this data in its own way, and can even use different tools, and the owner needs to spend a lot of personal time to figure it all out, indirectly or directly, this can affect the company's efficiency and ultimately profit. Digital transformation and the development of a web or mobile application will also help here.

Technologies do not stand still and are constantly evolving, and what was used a few years ago may already be irrelevant today, or what could not be done a few years ago has already become a reality. There are more and more modern tools that help you create web and mobile applications faster and better. Based on personal observations and experience, I want to share my vision of which technologies and tools will be in demand in the near future and why they should be paid attention to when creating a modern web application.

Single page application

Let's define some terminology. Single Page Application (SPA) is a web application whose components are loaded once on one page, and the content is loaded as needed. And when switching between sections of the application, the page does not completely reload, but only loads and displays the necessary data.

Single page applications greatly outperform classic web applications in terms of speed and usability. Using SPA, you can achieve the effect of a website working like an application on a desktop, without reboots and significant delays.

If a few years ago, single-page applications did not support search engine optimization and were used mainly for creating personal accounts and administration panels, today it has become much easier to create a single-page application with full support for search engine optimization (SEO). By using single page applications with server rendering today this problem has completely disappeared. In other words, this is the same single-page application, but at the first request, the server generates not just data, but creates a ready-to-render HTML page and search engines receive ready-made pages with all meta-information and semantic markup.

As client-side web application development tools continue to evolve, the development and transition to single page applications will only increase this year and beyond. If you have an old application that is morally outdated and works slowly, and even with a complete reload of the page when switching between sections, then this year you can safely upgrade to a fast single-page application - now is a good time, technology already allows you to do this quite quickly and efficiently.

Having a modern and fast website is great, but I want to be honest with you: not all applications can easily be converted to single page, and the transition can be expensive! Therefore, you need to understand who needs such a transition and why.

To help you figure it out, in the table below I'll give some examples of when developing or moving to a SPA is appropriate and justified, and when it's not.

FOR

If you want to make a modern, fast application and want to use not only the web version, but also the mobile or even desktop version, and all processes and calculations take place on a remote or cloud server. Moreover, so that all clients have one interaction interface and there is no need to make every edit to the server code when adding a new client.

For example: social network, aggregators, SaaS platforms (software as a cloud service), marketplaces

If you have a store or a web service, you know that it is slow and people leave, you want to make it faster, you understand the value of customers and are ready to pay for an upgrade from a million rubles.

You have a mobile application that uses the site's API, but the site is slow and with complete reloads of content when switching between pages

VS

If your target audience does not use modern browsers and devices.

For example: specific corporate areas, such as the development of internal systems for banks, medical institutions and education.

You conduct your main business offline and are not ready to provide any services online, and you just need to attract customers.

If you have an online store or web service that is already selling well, you do not see the outflow of customers and complaints

If you have a working application that cannot be adapted to SPA and you just need to rewrite everything from scratch and use other technologies, and you are not ready to spend several million on this.

For example: There is a box site or some self-written ancient, monolithic code.

Progressive Web Apps

Progressive Web applications (progressive web application) is a product of the joint evolution of a native application and a website. It is essentially a web application that looks and behaves like a real native application, can receive push notifications, work offline, etc. In this case, the user does not need to download the application from the AppStore or Google Play, but simply save it to the desktop.

As a technology or approach to PWA development, it has been developing since 2015, and recently it has also gained immense popularity in the e-commerce field.

Some real life examples:

  • last year, the Best Western River North hotel, after launching a new PWA-enabled website, was able to increase revenue by 300%;
  • Arabic Avito OpenSooq.com, after creating PWA support on his site, was able to increase the time of visiting the site by 25% and the number of leads by 260%;
  • the famous dating service Tinder was able to reduce the download speed from 11.91s to 4.69s by developing a PWA, moreover, the application weighs 90% less than its native Android counterpart.

The fact that you should pay attention to this technology is also evidenced by the fact that one of the largest engines for creating e-commerce projects, Magento, launched an early developer version of PWA Studio in 2018. The platform allows you to create a front-end based on React for your e-commerce solutions with PWA support out of the box.

A tip for those who already have an online project or just an idea for a new mobile-enabled service: do not rush to write a full-fledged native application, but first look at PWA technology. Perhaps this will be the best solution in terms of price and quality for your product.

A bit from practice. To create a simple native mobile news application, provided that there is already a ready-made REST server, it takes about 200-300 man-hours per platform. With an average market price per hour of development of 1500-2000 rubles per hour, an application can cost about 1 million rubles. If you develop a web application with full PWA support: push notifications, offline mode and other goodies, then the development will take 200-300 man-hours, but the product will be immediately available on all platforms. That is, savings of about 2 times, not to mention the fact that you do not have to pay fees for placement in app stores.

Serverless

This is another modern approach to development. Because of the name, many people think that this is really serverless development, there is no need to write back-end code, and any front-end developer can make a full-fledged web application. But it's not!

When building a Serverless application, you still need a server and a database too. The main difference of this approach is that the back-end code is presented in the form of cloud functions (another name for serverless is FaaS, functions as a service or Functions-as-a-Service) and allows the application to scale quickly and easily. When creating such an application, a developer can focus on business tasks and not think about scaling and configuring infrastructure, which subsequently speeds up application development and reduces its cost. Moreover, the Serverless approach will help save on server rental, since it uses exactly as many resources as necessary to complete the task, and if there is no load, then server time is not used at all and is not paid.

For example, a large American media company, Bustle, was able to reduce hosting costs by more than 60% by switching to Serverless. And the Coca-Cola company, in developing an automated system for selling drinks through vending machines, was able to reduce hosting costs from $13000 to $4500 per year by switching to Serverless.

For the past couple of years, due to its novelty and its limitations, Serverless has been mainly used for small projects, startups and MVPs, but today, thanks to the evolution of software, the versatility and power of server containerization, there are tools that allow you to remove restrictions, simplify and accelerate the development of cloud applications. .
This means that enterprise business scenarios where cloud upgrades were previously considered impossible (for example, for edge devices, data transfer, or stateful applications) are now a reality. Good and promising tools are kNative and Serverless enterprise.

But with all this, Serverless is not a silver bullet for web application development. Like any other technology, it has its advantages and disadvantages, and you need to choose this tool with understanding, and β€œdo not hammer nails with a microscope”, just because it is more technologically advanced.

To help you figure it out, here are a few examples of when to consider Serverless when developing a new or improving an existing web service:

  • When the load on the server is periodic and you pay for idle capacity. For example, we had a client with a network of coffee machines and it was necessary to process requests and collect statistics only a few hundred or thousand times a day, and at night the number of requests dropped to a few dozen. In this case, it is much more efficient to pay only for the actual use of resources, so we proposed and implemented a solution on Serverless;
  • If you do not plan to dive into the technical details of the infrastructure and overpay for setting up and maintaining servers and a balancer. For example, when developing a marketplace, you don’t know exactly what traffic will be, or vice versa - you plan a lot of traffic and so that your application will surely withstand the load, then Serverless is an excellent choice.
  • If you need to perform some streaming events in the main application, write side data to tables, perform some calculations. For example, collect analytical data of user actions, process them in a certain way and store them in a database;
  • If you need to simplify, unify or speed up the current operation of the application. For example, to create performance-improving services for working with images or video, when a user uploads a video to the cloud, and a separate function is engaged in transcoding, while the main server continues to operate normally.

If you need to process events from third-party services. For example, process responses from payment systems, or redirect user data to CRM to speed up the processing of requests from potential customers
If you have a large application and some parts of the application can be implemented more optimally using a language other than the main one. For example, you have a project in Java and you need to add new functionality, but there are no free hands, or in this language, the implementation may take longer and there is already a solution in another language, then Serverless can help with this.

This is not the whole list of tools and technologies that deserve attention, I just shared what we ourselves use every day at work and know exactly how they can help the business.

Source: habr.com

Add a comment