Web Development Technology Trends 2019

    Introduction


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



    So, for example, it is not enough for modern banks to have a website with information, you need to have online tools for your customers, a personal account where the user can manage accounts, investments, and loans. Even small businesses need convenient tools, such as making an appointment with a doctor or hairdresser, booking a table in a restaurant or a children's playroom for a birthday, to increase conversion.

    And the owners themselves need to receive timely information in a convenient form according to 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, it can affect the company's efficiency and ultimately its profit. Digital transformation and web or mobile application development will also help here.

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

    Single page application


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

    Single-page applications outperform classic web-applications in speed and usability. With SPA, you can achieve the effect of the website as a desktop application without reboots and significant delays.

    If several years ago single-page applications practically did not support search engine optimization and were used mainly for creating personal dashboards and an admin panel, today it is much easier to create a single-page application with full support for search engine optimization (SEO). Using single-page applications with server rendering, today this problem has completely disappeared. In other words, this is the same one-page application, but at the first request, the server generates not just data, but creates a page ready for displaying HTML and search engines get ready pages with all meta-information and semantic markup.

    With the development of tools for creating client-side web applications, the development and transition to single-page applications in this and subsequent years will only grow. If you have an old application that is outdated and slowly running, and even with a complete page reload when switching between sections, then this year you can safely update to a quick one-page application - now is a good time, technologies already allow you to do this quite quickly and efficiently.

    Having a modern and fast website is very good, but I want to tell you honestly: not all applications can be easily converted to single-page ones, and the transition can be expensive! Therefore, you need to understand who needs this transition and why.

    To help you understand, in the table below I will give some examples when the development or transition to SPA is appropriate and justified, and when not.
    BEHIND
    If you want to make a modern, fast application and want to use not only the web version, but also mobile or even desktop, and all processes and calculations take place on a remote or cloud server. Yes, and so that all clients had one interaction interface and there was no need to make each change 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 web service, you know that it is slow and people are leaving, you want to make it faster, you understand the value of customers and are ready to pay a million rubles for an upgrade.
    You have a mobile application that uses the site’s API, while the site is slow and with full reloads of content when switching between pages
    AGAINST
    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.
    The main activity you conduct 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 sells so well, you don’t see an outflow of customers and complaints
    If you have a working application that cannot be adapted for SPA and you just need to rewrite everything from scratch and use other technologies, and you are not ready to spend several million on it.

    For example: There is a boxed site or some kind of ancient ancient, monolithic code.

    Progressive web applications


    Progressive Web applications is a product of the joint evolution of a native application and a website. In fact, this is 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 to the desktop.

    As a technology or development approach, PWA has been developing since 2015, and recently it has also been gaining enormous 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 support for PWA on its website was able to increase by 25% the time it takes to visit the site and by 260% the number of leads;
    • the well-known dating service Tinder was able to reduce the download speed from 11.91s to 4.69s by developing PWA, moreover, the application weighs 90% less than its native Android counterpart.

    The fact that one of the largest engines for creating e-commerce projects Magento in 2018 launched an early development version of PWA Studio also indicates that it is worth paying attention to this technology. The platform allows “out of the box” to create a frontend based on React for its e-commerce solutions with PWA support.

    Advice for those who already have an Internet project or just the idea of ​​a new service with support for mobile devices: do not rush to write a full-fledged native application, but first look at the PWA technology. Perhaps this will be the best price / quality ratio solution for your product.

    A bit of practice. To create a simple native mobile news application, provided that there is already a ready-made REST server, approximately 200-300 man-hours for each platform are needed. With an average market price per hour of development of 1,500-2,000 rubles per hour, an application can cost about 1 million rubles. If you develop a web application with full support for PWA: push notifications, offline mode and other goodies, then the development will take 200-300 man-hours, but the product will immediately be available on all platforms. That is, saving about 2 times, not to mention the fact that you don’t have to pay dues to be placed in application stores.

    Serverless


    This is another modern approach to development. Because of the name, many people think that this is really serverless development, you do not need to write back-end code, and any front-end developer will be able to make a full-fledged web application. But this is not so!

    When creating a Serverless application, the server is still needed, and so are the databases. The main difference between 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 quickly and easily scale. When creating such an application, the developer may focus on business tasks and not think about scaling and configuring the infrastructure, which subsequently speeds up application development and reduces its cost. Moreover, the Serverless approach will help to save on server rental, since it uses exactly as many resources as needed to complete the task, and if there is no load, then server time is not used at all and is not paid.

    For example, the large American media company Bustle, was able to reduce hosting costs by more than 60% when switching to Serverless. And Coca-cola, while developing an automated system for selling drinks through vending machines, was able to reduce hosting costs from $ 13,000 to $ 4,500 a year by switching to Serverless.

    Over the past couple of years, due to its novelty and 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, tools appear that allow you to remove restrictions, simplify and speed up the development of cloud applications .
    This means that corporate business scenarios in which cloud upgrading was previously considered impossible (for example, for peripheral devices, transmitted data or stateful applications) are now a reality. Good promising tools are kNative and Serverless enterprise.

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

    To help you figure it out, here are a few examples when you should think about 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 several tens. In this case, it’s much more efficient to pay only for the actual use of resources, so we proposed and implemented the solution on Serverless;
    • If you do not plan to dive into the technical details of the infrastructure and overpay for the configuration and support of servers and the balancer. For example, when developing a marketplace, you don’t know exactly what the traffic will be, or vice versa - you plan a lot of traffic and so your application can withstand the load, Serverless is an excellent choice.
    • If it is necessary to perform some streaming events in the operation of the main application, write side data to tables, perform some calculations. For example, to collect analytical data of user actions, process them in a certain way and save them to a database;
    • If you need to simplify, unify or speed up the current application. For example, to create performance-improving services for working with images or videos when a user uploads video to the cloud, and a separate function is involved in transcoding, while the main server continues to work as usual.

    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 Java project 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 in this.

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

    Also popular now: