Topics
Web and Mobile Apps

Web and Mobile Apps

A few years ago, applications were typically used on desktops and laptops and had most of the application installed on the machine or some parts on a server that was connected on a closed organization network. And applications were used by smaller groups of users within the organization.

Today, The Internet and the World Wide Web have become an integral part of our work and personal lives. Applications also have become far more widespread in terms of how they are accessed, from all locations and from multiple devices.

Web Apps

The first transition from desktop applications happened with the introduction of web browsers and web servers. Applications started to be developed such that the program logic would work on the web servers (and application servers) and user interfaces would work in web browsers programmed using standard and common languages such as HTML, CSS, and JavaScript.

With this design applications could now be accessed by users from anywhere in the world, and not necessarily from within their organizations. The use of the browser as a universal client reduced the efforts of installing software on user computers.

These applications are known as Web Apps and are probably the primary architecture for most apps in use today.

Mobile Apps

While mobile phones were earlier only capable of making voice calls, today, they have evolved technologically to almost work like a computer. Now, such phones are referred to as smartphones, and just like computers, they come with their own operating system.

With this capability, many applications can be used directly from a smartphone and do not required a computer. Given that mobile phones are more widely used than computers and also the fact that they can be carried with easily, versions of app that run on mobiles, known as mobile apps, are now taking over from web apps.

The approach and technology used to developed mobile apps are similar to those used to build web applications. There are however, several new requirements and challenges to building web and mobile apps.

Smartphones have significantly smaller screen sizes and they work with touch screens instead of a keyboard and mouse. This requires a great deal of effort in user interface design since there is not as much space to display content and other elements as on a desktop screen, Their processing power is lower and they have a smaller memory, which means apps have to be designed efficiently and should not require too many computing resources. Finally, smartphones are often on cellular data networks which, depending on the coverage in the area, may not provide a reliable connection. This means apps should not require heavy data transfers.

Mobile apps have an additional challenge that did not exist earlier. Traditional, or even web applications, can be distributed or made accessible to users without any validation by a third party. This approach has inherent risks in that you as an end-user have to trust the application provider. Mobile apps cannot be freely distributed in this manner.

In terms of their architecture, mobile apps act as a client that needs to be installed on the smartphone. They then connect with the servers as required. But since they do not work with a universal client as web browsers, it takes us back to the original problem of installing multiple client apps on your smartphone and upgrading the apps every time there is some change.

Fortunately, since mobile apps have come into play only after the Internet and the World Wide Web, it has become easy to download and install client-side updates. Mostly this is taken care of in the background by the smartphone operating systems without requiring any user intervention.

There is one more significant difference in architecture. Mobile apps as a client have all the presentation logic built into them instead of fetching it from a web server. And for the processing logic and data, they use a communication mechanism known as Application Programming Interface (API). We will cover Service Oriented Architecture and APIs in a later topic.

While there are challenges to developing mobile apps, they offer several advantages over web applications, in addition to mobility. Smartphones come with several sensors such as cameras, touch sensors, voice controls, GPS, and many others that are not available on desktops. Mobile apps can leverage these additional hardware components and provide a much better user experience than web applications.

There are two main operating systems used on smartphones, Android by Google and iOS by Apple. Both companies have mandated that apps can be installed on smartphones only if downloaded from their online app stores. And before any app can be made available for download on either store, it has to go through validation by the respective store owners (Google and Apple). This ensures that only high-performance and secure apps reach end-user smartphones, which is a great benefit to end-users but a challenge for app developers.

Just as several high-level languages evolved for traditional application development, several languages and programming environments have evolved specifically for web and mobile apps.