Skip to main content

Why app deployment is not a solved puzzle yet?


Already more than 10 years ago, when Google Docs came out, IT experts predicted the time of fat-clients, needing to be installed on your local PC, would long be over. With the ever-increasing power of modern browsers, any application could be served as a web-app and your PC would transition to a light-weight terminal, on which only a browser would be installed and running. Unfortunately looking at my PC today, this trend is far from being completed as I still have dozens of applications deployed on my PC.
As always reality did not quite catch up with the predictions, for multiple reasons:
  • Browsers still have certain functional limitations, making it difficult to build web-applications with same feature completeness as a desktop application
  • Technical performance of web-based applications is often worse than when installed locally. E.g. Google’s gaming platform (Stadia) only came out in 2019, as it took Google years to resolve the latency issue, which is crucial for a good gaming experience.
  • Access to the internet: when applications are not installed, but instead are offered as SaaS solutions, it is required to have an internet connection at all times. While at home and in the office, this is not really an issue, when working on the road (e.g. on the train or at a client) this can be quite challenging. 4G (and soon 5G) networks are a solution, but for personal usage continuously retrieving applications of several dozens of megabytes over your mobile internet connection, will soon exceed your quota.
  • Size of application: currently many desktop applications are monolithic. If they would be migrated to a single-page app, this would mean a download of dozens of megabytes before being able to start the application. It will be required to make them more modular and only download the modules required at a certain moment.
  • Legacy of software vendors: vendors like Microsoft (with Windows and Office suite) have invested millions and several years in creating current code base. Transforming this legacy into a fully web-based application is easier said than done. Office 365 is a first step, but as most of you probably already experienced, the user experience of the online Excel tool, compared to the locally installed Excel is far from the same.
  • Legacy of companies: many companies have developed internal web-based tools, which are not compatible (or at least not guaranteed through extensive regression testing) with modern versions of browsers. As a result, many companies are forced to stay on old version of browsers, which make it impossible to develop new innovative web-based apps in (requiring modern web-browsers).
  • Data privacy concerns: when all applications are working in the cloud, this means also that all data is automatically in the cloud. As many people are still resisting to cloud for data privacy reasons, this is also an important concern to be addressed.
Nonetheless the advantages of browser-based apps are so big, that ultimately they will win over locally installed apps, i.e.
  • Everybody is automatically working on latest version of an application (avoid having to support old software versions, having to push security patches…​)
  • Browsers come with strong built-in security features, which are automatically applied to a browser-based app. If there is no software installed locally anymore, several security issues (like viruses, worms…​) can be significantly reduced.
  • Users don’t need to reinstall and reconfigure all applications when switching PC
  • As a lot of the heavy calculations can be done at server-side, the computers can have cheaper, less powerful hardware
  • Cheaper usage-based licenses, instead of having to acquire software you almost never use
  • All files are automatically and immediately stored in the cloud, meaning files are automatically backed-up
Several new emerging technologies might finally allow to transition to the fully browser-based app world:
  • Web assembly: this new technology allows binary files (i.e. compiled languages like C++, Go or Rust) to run in the same browser sandbox as regular JavaScript code. This enables high-performance applications in the web-browser and opens the browser to code from any programming language.
  • Progressive Web Apps (PWAs): these web apps combine the best of both worlds, allowing to run in the browser, but also allowing to be used when offline (or on a low quality network), to push notifications to users (even when web page not open) and to access device hardware.
  • Single Page Applications (SPA): these are applications contained in a single web page, allowing several user interactions without the browser having to load new pages. Contrary to the 2 above technologies, this technology has become already very common (i.e. all well-known websites like facebook.com or gmail.com, use already this technology). The technology allows a high responsiveness and less network load, but the size of the application to be loaded starts becoming an issue. This is being tackled by minification (removing all unnecessary characters from the code), compression (gzip) or a modular architecture, where only a core composer component is loaded, which retrieves, initializes and runs other modules only when needed.
  • Static site generators (also called Jamstack), like Gatsby, Next.js, Hugo, Hexo, Jekyll, Slate…​ These tools allow to pre-build (pre-rendering) different static HTML-based pages of a website, based on the HTML, CSS, data and JavaScript code. This means that page can be automatically retrieved and does not need to be built at the moment the user requests a specific page. This technique allows to improve performance considerably and gives also certain security benefits (as there is less interactions with the server). Of course, static site generators also come with the disadvantage that the site becomes much less interactive.
  • Content Delivery Networks (CDNs), such as Akamai, Limelight and Mirror Image, provide growing networks and more and more features (e.g. AI based smart routing and smart predictions of CDN cache renewals) to help boost the performance of heavy and complex web apps. Especially in combination with static site generators, CDNs can even more effectively improve the performance by caching all the static content.
While on personal computers, there is a trend towards browser-based apps, it is strange to see that we don’t see the same trend in the mobile space. While initially we saw a lot of "m." websites and later responsive websites (websites which could also be correctly rendered on a mobile device), today almost for everything a native app is being created, even though we see here similar issues:
  • Slow release cycle, especially with certification processes of Apple and Google sometimes taking several days
  • User having to continuously reinstall dozens of apps, often resulting in version conflicts with mobile operating system version or with app backend if not correctly upgraded.
  • Valuable disk space on the smartphone being filled by apps, leaving little room for user data (like pictures)
  • Difficulty to have different apps depending on environment, user…​, making segmentation and testing strategies (like A/B testing, canary testing) more difficult to achieve
  • Users not wanting to make effort to install app for infrequent or one-time usage
At the same time the features of mobile phones are still evolving strongly, which means that the browser cannot always follow the latest new features provided by mobile phone providers to native developers (e.g. advanced access to camera, compass, accelerometer, swipe gestures, AR-toolkit…​) and native apps provide the fastest, most reliable and most responsive experience to users. Furthermore, users are well-acquainted finding apps on their phone, rather than having to open browser and go to a specific website.
But also, in the space of mobile devices, technological evolutions will gradually make the deployment of apps, which needs to be installed on the device obsolete:
  • Most native apps currently require a separate development for Apple phones (native iOS apps are usually written in Swift or Objective-C) and Android phones (native Android apps are usually written in Java), making the development cost very high (more than one code base) and quickly resulting in inconsistencies between both mobile platforms. Cross-platform development frameworkslike React Native (from Facebook and used by e.g. Facebook, Walmart, Tesla and Airbnb), Flutter (from Google), Titanium (used by e.g. eBay or PayPal) or Xamarin (from Microsoft and used by e.g. Slack and Pinterest) try to give a solution to this (develop once and build for multiple platforms), but come still with certain limitations (as they typically need to foresee the common denominator between all supported platforms) and still require to install an app. Thanks to large open-source communities these limitations are rapidly resolved, while remaining gaps can still be resolved by a partial native development (but this mix of technologies complexifies app considerably).
  • Responsive web apps are web sites which render nicely in the browser on a mobile device and are developed using JavaScript, CSS and HTML5. Due to evolutions in these languages, the features of such sites are becoming more and more rich.
  • Hybrid apps: these apps are installed like a native app, but actually are a simplified browser, in which a web-app (built in JavaScript, CSS and HTML5). Typical hybrid app platforms are Apache Cordova (PhoneGap) and Canvas. These apps are easier to scale and upgrade (new versions of code don’t require an upgrade by the user), have only one code base to manage and still give the app experience to the user. On the other hand, responsiveness and UX will be negatively impacted and it’s also more difficult to make use of the latest feature of a mobile platform.
  • Low- and no-code platforms: the rise of low- and no-code platforms for developing web and mobile apps results also in a rise of hybrid apps, as these platforms typically result in hybrid apps.
Will be interesting to see how all those new technologies unfold, but with an increasing digitalization of our world, it’s clear that any overhead and non-productive work (like maintaining 2 code bases for different mobile platforms, having to install and continuously upgrade apps on devices…​) will gradually disappear, when feature sets of browsers become more and more powerful.
What is less clear is where compute and business logic will be executed, i.e. on the client or server-side. Executing code on client-side typically gives better responsiveness and a more dynamic app behavior but means also higher hardware demands at client-side and less control by the app provider. Many technologies mentioned above (like e.g. web assembly) will further enforce this movement. On the other hand, execution on server-side gives more control and requires less compute power on client-side, but on the other hand requires more network bandwidth and a highly scalable server-side. Also in this domain, many new technologies provide answers such as elastic scalability (thanks to cloud infrastructure, container orchestration systems, functions-as-a-service…​), compression techniques, more sophisticated CDNs…​ As in many situations, this comes down to the traditional choice between decentralization (execution as much as possible on client-side) and centralization (execution as much as possible on server-side), which traditionally swings back and forth, but will ultimately end in between, making use of each side depending on the use case.
Check out all my blogs on https://bankloch.blogspot.com/

Comments

Popular posts from this blog

Transforming the insurance sector to an Open API Ecosystem

1. Introduction "Open" has recently become a new buzzword in the financial services industry, i.e.   open data, open APIs, Open Banking, Open Insurance …​, but what does this new buzzword really mean? "Open" refers to the capability of companies to expose their services to the outside world, so that   external partners or even competitors   can use these services to bring added value to their customers. This trend is made possible by the technological evolution of   open APIs (Application Programming Interfaces), which are the   digital ports making this communication possible. Together companies, interconnected through open APIs, form a true   API ecosystem , offering best-of-breed customer experience, by combining the digital services offered by multiple companies. In the   technology sector   this evolution has been ongoing for multiple years (think about the travelling sector, allowing you to book any hotel online). An excellent example of this

Are product silos in a bank inevitable?

Silo thinking   is often frowned upon in the industry. It is often a synonym for bureaucratic processes and politics and in almost every article describing the threats of new innovative Fintech players on the banking industry, the strong bank product silos are put forward as one of the main blockages why incumbent banks are not able to (quickly) react to the changing customer expectations. Customers want solutions to their problems   and do not want to be bothered about the internal organisation of their bank. Most banks are however organized by product domain (daily banking, investments and lending) and by customer segmentation (retail banking, private banking, SMEs and corporates). This division is reflected both at business and IT side and almost automatically leads to the creation of silos. It is however difficult to reorganize a bank without creating new silos or introducing other types of issues and inefficiencies. An organization is never ideal and needs to take a number of cons

RPA - The miracle solution for incumbent banks to bridge the automation gap with neo-banks?

Hypes and marketing buzz words are strongly present in the IT landscape. Often these are existing concepts, which have evolved technologically and are then renamed to a new term, as if it were a brand new technology or concept. If you want to understand and assess these new trends, it is important to   reduce the concepts to their essence and compare them with existing technologies , e.g. Integration (middleware) software   ensures that 2 separate applications or components can be integrated in an easy way. Of course, there is a huge evolution in the protocols, volumes of exchanged data, scalability, performance…​, but in essence the problem remains the same. Nonetheless, there have been multiple terms for integration software such as ETL, ESB, EAI, SOA, Service Mesh…​ Data storage software   ensures that data is stored in such a way that data is not lost and that there is some kind guaranteed consistency, maximum availability and scalability, easy retrieval and searching

IoT - Revolution or Evolution in the Financial Services Industry

1. The IoT hype We have all heard about the   "Internet of Things" (IoT)   as this revolutionary new technology, which will radically change our lives. But is it really such a revolution and will it really have an impact on the Financial Services Industry? To refresh our memory, the Internet of Things (IoT) refers to any   object , which is able to   collect data and communicate and share this information (like condition, geolocation…​)   over the internet . This communication will often occur between 2 objects (i.e. not involving any human), which is often referred to as Machine-to-Machine (M2M) communication. Well known examples are home thermostats, home security systems, fitness and health monitors, wearables…​ This all seems futuristic, but   smartphones, tablets and smartwatches   can also be considered as IoT devices. More importantly, beside these futuristic visions of IoT, the smartphone will most likely continue to be the center of the connected devi

Neobanks should find their niche to improve their profitability

The last 5 years dozens of so-called   neo- or challenger banks  (according to Exton Consulting 256 neobanks are in circulation today) have disrupted the banking landscape, by offering a fully digitized (cfr. "tech companies with a banking license"), very customer-centric, simple and fluent (e.g. possibility to become client and open an account in a few clicks) and low-cost product and service offering. While several of them are already valued at billions of euros (like Revolut, Monzo, Chime, N26, NuBank…​), very few of them are expected to be profitable in the coming years and even less are already profitable today (Accenture research shows that the average UK neobank loses $11 per user yearly). These challenger banks are typically confronted with increasing costs, while the margins generated per customer remain low (e.g. due to the offering of free products and services or above market-level saving account interest rates). While it’s obvious that disrupting the financial ma

From app to super-app to personal assistant

In July of this year,   KBC bank   (the 2nd largest bank in Belgium) surprised many people, including many of us working in the banking industry, with their announcement that they bought the rights to   broadcast the highlights of soccer matches   in Belgium via their mobile app (a service called "Goal alert"). The days following this announcement the news was filled with experts, some of them categorizing it as a brilliant move, others claiming that KBC should better focus on its core mission. Independent of whether it is a good or bad strategic decision (the future will tell), it is clearly part of a much larger strategy of KBC to   convert their banking app into a super-app (all-in-one app) . Today you can already buy mobility tickets and cinema tickets and use other third-party services (like Monizze, eBox, PayPal…​) within the KBC app. Furthermore, end of last year, KBC announced opening up their app also to non-customers allowing them to also use these third-party servi

Can Augmented Reality make daily banking a more pleasant experience?

With the   increased competition in the financial services landscape (between banks/insurers, but also of new entrants like FinTechs and Telcos), customers are demanding and expecting a more innovative and fluent digital user experience. Unfortunately, most banks and insurers, with their product-oriented online and mobile platforms, are not known for their pleasant and fluent user experience. The   trend towards customer oriented services , like personal financial management (with functions like budget management, expense categorization, saving goals…​) and robo-advise, is already a big step in the right direction, but even then, managing financials is still considered to be a boring intangible and complex task for most people. Virtual (VR) and augmented reality (AR)   could bring a solution. These technologies provide a user experience which is   more intuitive, personalised and pleasant , as they introduce an element of   gamification   to the experience. Both VR and AR

Low- and No-code platforms - Will IT developers soon be out of a job?

“ The future of coding is no coding at all ” - Chris Wanstrath (CEO at GitHub). Mid May I posted a blog on RPA (Robotic Process Automation -   https://bankloch.blogspot.com/2020/05/rpa-miracle-solution-for-incumbent.html ) on how this technology, promises the world to companies. A very similar story is found with low- and no-code platforms, which also promise that business people, with limited to no knowledge of IT, can create complex business applications. These   platforms originate , just as RPA tools,   from the growing demand for IT developments , while IT cannot keep up with the available capacity. As a result, an enormous gap between IT teams and business demands is created, which is often filled by shadow-IT departments, which extend the IT workforce and create business tools in Excel, Access, WordPress…​ Unfortunately these tools built in shadow-IT departments arrive very soon at their limits, as they don’t support the required non-functional requirements (like high availabili

PFM, BFM, Financial Butler, Financial Cockpit, Account Aggregator…​ - Will the cumbersome administrative tasks on your financials finally be taken over by your financial institution?

1. Introduction Personal Financial Management   (PFM) refers to the software that helps users manage their money (budget, save and spend money). Therefore, it is often also called   Digital Money Management . In other words, PFM tools   help customers make sense of their money , i.e. they help customers follow, classify, remain informed and manage their Personal Finances. Personal Finance   used to be (or still is) a time-consuming effort , where people would manually input all their income and expenses in a self-developed spreadsheet, which would gradually be extended with additional calculations. Already for more than 20 years,   several software vendors aim to give a solution to this , by providing applications, websites and/or apps. These tools were never massively adopted, since they still required a lot of manual interventions (manual input of income and expense transaction, manual mapping transactions to categories…​) and lacked an integration in the day-to-da

Beyond Imagination: The Rise and Evolution of Generative AI Tools

Generative AI   has revolutionized the way we create and interact with digital content. Since the launch of Dall-E in July 2022 and ChatGPT in November 2022, the field has seen unprecedented growth. This technology, initially popularized by OpenAI’s ChatGPT, has now been embraced by major tech players like Microsoft and Google, as well as a plethora of innovative startups. These advancements offer solutions for generating a diverse range of outputs including text, images, video, audio, and other media from simple prompts. The consumer now has a vast array of options based on their specific   output needs and use cases . From generic, large-scale, multi-modal models like OpenAI’s ChatGPT and Google’s Bard to specialized solutions tailored for specific use cases and sectors like finance and legal advice, the choices are vast and varied. For instance, in the financial sector, tools like BloombergGPT ( https://www.bloomberg.com/ ), FinGPT ( https://fin-gpt.org/ ), StockGPT ( https://www.as