Software Application are essentially a computer program designed to perform a task. Way back there used to be systems analyst who would analyse the manual paper& pen process in a business environment eg in small chemist shop or a hotel booking etc. Refining these process and optimizing them after which the process was transferred to Computer Application onto computer system.
The terminology App was first used to describe an Application that was made to be renedered on the web browser. Desktop Application were replaced by Web Apps. Desktop Apllications and Web Applicationd are still prevalent however, the term App refers to Mobile Appications.
All apps are software programs design to perform or replace a task.
System Analyst will perform a Requirement Analysis to break down the Business Process or Real Life Process situations into tasks to be performed in natural language.
Computer programmer will translate this using the suitable programming environment/language to software programs that will run and perform, the ‘requirement tasks’ on to a computer device (desktop, mobile smartphone tablets), browser or a Virtual Machine (simulator).
The software program Application is classified according to the different environment, in chronological order, they are rendered on i.e.
Desktop apps on computer desktops,
WEB APPS on web browsers which in itself runs on computer desktops or mobile smartphones or tablets. And just call APPS run on mobile devices (smartphones or tablets)
From those humble beginnings today almost every area or every field has been analysed and computerized through DeskTop Applications made in probably Visual Basic. VB or other platforms allowed the programmer to create the logic and flow which was finally deployed via an executable file. Almost all applications were made this way. When the executable file was run, a program or Application was open, which allowed a user to use its features through the careful crafted features the Designer of the DeskTop Apllication had created. Initially the emphasis was on the Application was designed to get the tasks done. Later emphasis was on how easy the user could use the Application with ease, hence starting the birth of Graphical User Interface (GUI) designers.
Business Analyst analysed the Business process. Loosely, the system analyst anlaysed the tasks processes and programmers implemented the process in a computer language of their familiarity to achieve a Computer Program Application that users used to complete their tasks.
To this day the same footsteps are followed to make a computer Application Business Logic -> Tasks process -> Application.
With the advancement of Web Technologies the Desktop Applications were replaced with Web Applications. Initially, the same logic was used but this time the Applications were made not as executables for the desktop but as Applications that could be run on the Web Browser making these applications independent of the computer hardware and different operation systems but to be rendered onto the web browser (Internet Explorer) .
An interesting point to note is that all applications first needs to be analyzed from the business and system processes thereafter programs can be made either for a browser or computer.
Examples of Apps: originally Email, calendar, and contact databases, then mobile games, factory automation, GPS and location-based services, order-tracking, and ticket purchases
A mobile device is either installed mostly with either Apple’s IOS operating system or Samsung’s ANDROID operating system.
A mobile apps is an application built to run on IOS or Android mobiles device such as a phone/tablet or watch.
Apps are generally downloaded from the App Store (iOS) or Google Play Store (Android).
Some apps are free, and others have a price, with the profit being split between the application’s creator and Apples IOS or Google Play Store
Types of mobile apps
There are mainly three kinds of apps- Native, Hybrid and Web-based.
Native Apps are targeted towards particular mobile platforms. Apple app won’t work on android device and Android app won’t work on apple devices.
Hance most business make separate apps or multiple apps.
Advantages of developing native apps:
Can incorporate best-in-class user interface modules for better performance, consistency and good user experience.
Users also benefit from wider access to Apps Program Interfaces (APIs)
Limitless use of all Apps from the particular device they also switch over between apps easily.
Hybrid Apps is a mix of native and web-based apps developed using Xamarin, React Native, Sencha Touch.
Hybrid apps support web and native technologies across multiple platforms.
Hybrid apps are easier and faster to develop, using single code which works in multiple mobile operating systems.
hybrid apps are slower in speed and performance.
apps sometimes look n feel inconsistent for different mobile operating systems.
By default, these Apps captures minimum memory space in the user devices compared to Native and Hybrid Apps. Hance, all personal databases on the Internet servers, can be access by any device.
Presence of strong internet connection is required for proper behavior and user-experience of this group of Apps
Disadvantages is that app developers don’t get sufficient access to mobile operating system API.
Mobile Development Consideration FrontEnd, Middleware and Back End: Consideration FrontEnd
Mobile user interface (UI) Design
Mobile UI contexts signal cues from user activity, such as location and scheduling that can be shown from user interactions within a mobile application mobile devices run on battery have to consider a wide array of screen sizes, hardware specifications and configurations. They have various features (ie. as location detection and cameras).
Mobile application development (Front End):
Requires the use of specialized integrated development environments.
Emulator are used to test mobile apps. The developer does not need to have a physical device.
Emulators consider and contexts, screen, input and mobility as a wireframe for design. The user is often the focus of interaction with their device Interface entails components of both hardware and software.
Mobile application development (Back End): Mobile UIs, or front-ends, rely on mobile back-ends to support access to enterprise systems. The mobile back-end facilitates data routing, security, authentication, authorization, working off-line, and service orchestration.
Back End functionality is supported by a mix of middleware components including: mobile app server Mobile Backend as a service (MBaaS) and SOA infrastructure.