An application in computing is simply a program designed to perform a particular task or function in a device. The earlier applications were created to be installed and run on hardware. However, this came at huge costs to develop, maintain, fix bugs, and upgrade the apps, especially when the app has to be developed to run on different operating systems; for example, an image processing application that works on Microsoft Windows and Apple’s Mac. The challenges of maintaining an application is even greater on the mobile front, where there are many more operating systems. As a result, developers are trying to devise ways to make applications run on all devices irrespective of operating system through Internet connection while enhancing the application’s functionality.
MCSE Training – Resources (Intense)
An application can be utilized through an interface. The process of utilizing an application’s capabilities either online or offline is called a service. Applications used in large organizations are often installed, run, and shared out to clients from an application server which regulates and coordinates the inflow and outflow of all the server resources available thereby ensuring scalability reliability and optimal performance.
Recently, there has been an increase in the number of applications being hosted on the Internet. PC applications are being hosted online to eliminate multi-platform development costs and reduce maintenance costs while organizations have recognized the potentials of mobile marketing service (e.g., online banking) and are beginning to deliver their service of portable devices through mobile applications that are also hosted online. PC and mobile applications have to connect to the web to be able to perform application-to-device/PC integration. It is possible that somewhere in the future the majority of mobile applications will be hosted online.
Types of Applications
Applications are developed for various operating systems and devices. The three most common types are:
A. Native Apps
A native app is an app that is built exclusively for a particular computer or mobile device and its operating system. It can be installed from storage media or downloaded from an app store and installed on the device. They are usually written with Java, C#, or some other programming kits.
- Desktop Applications—These are developed and meant to be installed on desktop computers and PCs. Desktop applications that are meant to be utilized by more than one computer can be installed on a server and shared out to various clients. The same desktop applications could be developed for different versions of an OS, e.g., Windows 7 and Windows 10, or the same application for different operating systems, e.g., Windows and Mac.
- Mobile Applications – Just like desktop applications, mobile applications have to be installed on a mobile device (smartphone, tablet, etc) before they can be utilized. They can also be referred to as native applications. Given the diversity of mobile operating platforms (RIM, Android, Apple, Symbian, Java), it is costly to build the same application for different mobile operating systems, as illustrated below. Though some programming tools allow developers to use the same template for different OSes with subtle modifications, some apps will require access to a special functionality unique to an OS only, so it is not possible to use cross-platform templates to build such apps. The app will have to be tailored and built from scratch for a specific mobile OS.
B. Web Apps
- Single Page Web App – A single page application (SPA) is a web application or website that is designed to fit into a single web page that can be updated and adjusted automatically based on the user’s action, so that the entire page does not need to be reloaded all over again when an input is made into the website. On SPA, everything takes place on just one page. For example, when a user inputs a new message into a web-based chatting app, the messages are all displayed in one single page. All the necessary tools and menu needed to use the app are provided in an easy to reach area of the app. This helps to increase the fluidity and responsiveness of the app.
C. Hybrid Application
A hybrid app has the characteristics of both native computer/mobile app and web app. It can be developed by building a native app with a browsing window built into it. The app can be installed on a device. However, when it is launched, the app will have to connect to the Internet to be able to provide service for the user. The native app can make use of the device’s processing power, storage and sensors while the app’s core functionalities runs within the browser’s frame. A hybrid app could be required if a company whose app is already hosted online desires to take advantage of a particular OS popularity so that they can make the app available in the app store for users to download or to reach out to more users.
App Choice Considerations
As with everything in life, there are things to be considered before developing an application. A native desktop or mobile app can created with a killer innovative user interface and effortlessly make use of the computer/mobile device’s processing power and sensors and it is not constrained by fluctuating network conditions, thereby enabling it to run smoothly and efficiently. The downside is that it requires a separate development kit for each OS, more creativity is needed due to competition and a new version will have to developed and submitted to the app store to fix bugs.
A. Native Apps
- Ability to utilize the host device’s hardware and software. This means that native apps can take advantage of the resources inherent in the computer and also integrate with other onboard features, such as GPS, camera, and graphics, and utilities, such as email, calendar, contacts, and gallery, file manager, etc.
- It gives a smoother and more thrilling user experience, especially if the device has high specifications, graphics, and processing power.
- Native apps do not require an Internet connection to run so they can run offline as long as the app is installed on the device. Those that require an Internet connection, such as native app browsers, can pause download/data transfer when network service is slow or unavailable and resume when the connection is restored.
- Native apps can be monetized with ease. Users can pay a token to download an app or load subscription vouchers continually into the app. If the app is very good and becomes popular, the owners can make lots of money within a short period.
- Native apps can be used to build brand rapport/loyalty faster as the app’s logo and initials are constantly imprinted onto the user’s mind every time they run the app.
- Technology specs and requirements are constantly changing. This means that a newly released app might become outdated within a few months of being released as better apps often flood the market regularly, creating tough competition. To keep up with the pace and upgrade one’s app across multiple platforms can be very unsettling and expensive.
- Separate versions of the same native app will have to be created for the app to be available and work across multiple devices. This makes the cost of the app very expensive, even though growing different environments costs money—especially with maintenance and promotion and costs.
- Though cross-platform compatibility can make it easier to create cross platform apps, it doesn’t change the fact that it takes a lot of time and expertise to build a native app.
- To keep the application up to date, the owner will have to wait for feedback from users fix the bugs, rework the interface and test the new app before making it available again as a new version. This process is very long and cumbersome as opposed to simply updating a website.
B. Web Apps
- The app can work across multiple OS platforms. Users only have to connect to the app’s server online through the computer/mobile device’s browser.
- One can quickly identify and ﬁx bugs, add more features if desired, and update the app without having to submit to any app store.
- They’re relatively easy and quick to build and some device-specific customization may be added if required. Also, web browsers have fairly standardized UIs, so it is much easier to create a web app.
- Web apps are more cost-effective to maintain than native apps for the same reasons.
- Users can always access the web app’s service ubiquitously anywhere, even when they are not with their personal device. All that is needed is to get an Internet-enabled device and connect online to the app’s server.
- Web apps cannot fully utilize the device’s hardware and software features.
- If Internet connection bandwidth is poor or service is unavailable, users will not be able to access the app.
- The app may lack the sleek interface and smooth operation experienced with native apps.
Web App framework
Modular Architecture: This is the first and most important decision to be made before building a web application. Modular applications can easily be fused or decoupled in order to promote scalability. Modular apps have greater flexibility and are easy to build and upgrade. A framework that incorporates the use of modules is strongly recommended for all web applications.
Access Log: An access log must be provide and checked before starting to build or improve a web app. Its performance should be evaluated through the server’s log of activities to gather statistics on the number of visitors to the website, how frequently the site is visited, and duration of each visit.
Heterogeneous Support: This gives the developer the flexibility to easily remove or add new frameworks to the app without having to overhaul the current building code to avoid affecting the application’s operation.
Resources Log: These resources provide the support needed to keep the application running smoothly. The resources log shows how many supporting programs are needed and the resources they consume. As more users make use of the app, more supporting resources have to be added steadily in order to ensure availability and failover.
Periodic Updates: There should be a timeline set for updating the web app because outdated frameworks may cause errors when the application is being run and the app will have to be restarted as a result. Periodic updates will help to clear out outdated elements and introduce new improved features into the app.
Businesses are gradually adopting mobile computing applications as a means of cheap advertising to reach many users with their products. However, application services do not equate to a new business model. Rather, they serve as technology that can be used to build apps to support a business model. Nearly every level of business activity involves the use of an application. So it would be cost-effective to prune and simplify the process of an app’s integration into the business’s operations.
Native applications have many costly disadvantages, as they have to be created for multiple OS platforms and regularly upgraded. In order to counter these cons, an increasing number of developers are opting to build web applications because they are easy to build and can be utilized by all devices irrespective of operating system. On the downside, users are twice as slow when using web applications compared with using native apps, mainly because of the low bandwidth and inability of web apps to tap into the device’s processor to boost the user’s experience. Also, there is no clear boundary between browsers and web applications. Alternatively, a hybrid app can be created by infusing a web app into a native app in order to balance the equation.
Accessing and tuning the performance of new and existing applications can be done by using appropriate frameworks. Such frameworks should provide the ability to allocate and manage the applications resources based on empirical results and speciﬁc paradigms.
- Borland Software Corporation: Web Application Developer’s Guide; www.borland.com
- Fernando Monteiro: Learning Single-Page Web Application Development; Packt Publishing, December 2014
- Michaels, Ross & Cole, Ltd: The beginner’s guide to creating mobile applications for your business; www.mrc-productivity.com
- Paul Pop: Comparing Web Applications with Desktop Applications: An Empirical Study; Dept. of Computer and Information Science, Linköping University, Sweden.
- Svein Nordbotten: Introduction To Development Of Dynamic Web Applications; Svein Nordbotten & Associates Bergen 2007
- Web Services Basics; 29731 02 pp. 027-046 r4jm.ps, 5/16/03