Understanding Platform Fundamentals:

HTML5 is a markup language that is developed to work well with CSS3 and JavaScript, with the intent that developers can create applications that can work on touch enabled devices, as well as making them scale down to smaller screens. HTML5 evolved from HTML 4.0.1, which was the previous standard markup language for displaying web pages.

Some of the main reasons for HTML5 being developed was the demand for more interactive, richer web pages and applications that incorporate video and audio to the web. This led to HTML5 having many tags that allow for web developers to easily add features such as videos to their website, and that allow for a user to interact with the website in many ways. There are also tags that can find the geographic location of a user and use this information to streamline the users interactions with the website.

HTML5 was also developed to be as platform-independent as possible, allowing them to run on any operating system so long as it has a browser. The four main platforms that run HTML5 are Microsoft Windows, which uses the internet explorer and, more recently, edge browsers, Apple IOS, which uses the safari browser, Linux, which uses Firefox, and Android, which uses Google Chrome. (Wiley 2012)

Despite HTML being cross platform, when developing an app, it is important to consider what environment and platform you are developing the app for. In some cases, when developing an app for multiple platforms, it may be worth making the app look different for each platform whilst maintaining the functionality. When developing for windows 8 or 10, for example, you must consider the metro style user interface that Microsoft use. The UI is designed to look clean, with a big focus on making good use of all the space on the screen, whilst still looking orderly, whether its on a laptop, tablet, or phone screen. (Buiciag 2017)

On the other hand, when developing an app for IOS, they have no clearly defined UI, rather, they have a list of guidelines for developers to follow to make the app look and feel as good as possible. Among other things, they list 3 specific design principles that they say differentiate them from other platforms. Principles like Clarity, which states that a developer should ensure that text is clear, clean and legible at every size, and that any icons are "precise and lucid". They also ask that developers design the app in such a way that important content and interactive elements are subtly highlighted.

They also list deference as one of these principles, stating that motion within the application should be crisp and fluid, and that the interface should help users to understand and interact with the content, without having to compete with it. Similarly to the metro UI, they ask that the content fills the screen, and that translucency and blurring are used to hint at additional content. They want the interface to be kept Light and airy

The final principle they list is depth. They want developers to ensure that visual layers are distinct, motion is realistic, and that transitions provide a sense of depth. (Apple inc. 2018)

Understanding and Managing Application States:

Whenever someone requests access to an application, a session state gets created, and it only ends whenever the user closes the session. In other words, the application state is from the moment a browser requests a Web page and it ends, whenever that browser is closed. However, a persistent state is when the data/information still exists even after the session is closed. Moreover, in HTML5 developers can use sessionStorage and localStorage, which are JavaScript methods to be able to deal efficiently with state data. AppCache lets the user load data stored on a server even when the user is offline. (Microsoft Official Academic Course 2012:10a).

State management, is when multiple requests from different or even the same Web page occur and the information during that process is still maintained. When a request to access an application is requested, then the session state is created. However, the session ends when the user closes the browser. (Microsoft Official Academic Course 2012:10b).

Application state is an alternative to the session state. When the Web browser sends a request to a Web page to the Web servers that's where the application state is created, and again it ends whenever the user closes the browser.(Microsoft Official Academic Course 2012:10c).

Persistent state information, even after a session ends some data gets stored, and this is extremely important because if someone goes online shopping and every time they open the website and find that their previous items they had in the cart has disappeared they would get upset, due to that many Web applications store data so users can continue from where they left when they return back to the website.(Microsoft Official Academic Course 2012:10d).

Local storage:

LocalStorage object stores data, the data stored in the LocalStorage object has no expiration data, which means it will never be deleted. (Microsoft Official Academic Course 2012:10e).

SessionStorage Object:

SessionStorage Object is the same as LocalStorage object, the only difference is that sessionStorage Object only stores data for one session. In addition, if the user closes the browser then the data is deleted. An example is provided below:(Microsoft Official Academic Course 2012:10f).

Understanding Touch Interfaces and Gestures:

Touch interfaces (such as those on a smartphone or tablet) receive input by converting the users touch gestures into digital commands via the user of a digitizer. Normally, a touch screen device will have two screens; one of which will be an LCD (Liquid Crystal Display) with a glass digitizer overlay.

The Digitizers composition can vary, but the most popular type is the IGZO (Indium Gallium Zinc Oxide) panel; also known as Gorilla Glass. This type of digitizer is very strong, and can accurately receive the users input when used, with micro sensitive receptors that can detect even tiny changes in temperature and pressure. Unfortunately, this technology does require a lot of sensory and conversion technology to be able to be responded to by the processor, and due to this, many IGZO panel devices will have larger Bezels (the area around the screen that does nothing) to house the technology.

Apple allowed touch screens to become widely available to consumers in 2007 (Erickson, 2009), although the technology was available long before this. E.A. Johnson is believed to be the first to develop the touchscreen in 1965 and initially was only capable of receiving one input at a time using primitive technology. Since then, technology has taken a huge leap forward, introducing additional gesture commands (such as pinching to shrink an application or page) and dragging (to scroll). This development has now integrated into the design principality for most devices, meaning consumers now expect this functionality as a standard within digital applications.

Debugging and Testing HTML5 Apps:

Applications written in HTML5 often need to undergo strict processes in the development stage; one process being the Debugging (which usually consists of a series of tests to determine any faulty code or programming mistakes) often defined in the test specification documentation provided with the technical specifications. The tester is normally expected to ensure the functionality of the application before it is released to the public.

Debugging is the routine process of locating and removing computer program bugs, errors or abnormalities, which is methodically handled by software programmers via debugging tools. Debugging checks, detects and corrects errors or bugs to allow proper program operation according to set specifications. (Techopedia, 2018)

This refers to the instance in which a developer will march through their programming and try to pick up any miscellaneous errors which could affect the project at runtime. Most development tools will highlight any errors or inconsistencies within the application's development.

The types of testing:

      -White Box: Whitebox is the testing with full details of project known.

      -Grey Box: Greybox is the testing with partial knowledge about the programming of the project

      -Black Box: Blackbox is the testing with limited or technical knowledge.

Publishing an App to a Store:

Once you have tested, debugged and had the code validated on your application then you only have a few steps left to undertake to prepare the application for upload to a public marketplace such as the Apple Store. Publishing your app to a market is the end result of all your planning, designing, coding and testing. Marketplaces such as the Apple Store and Windows Store are online global platforms meaning that anyone in the world can access your application once it has been published which could lead to you earning some money as a result of your hard work.

Before you can release your app on the store you must register and pay a fee for a developer account and reserve a name for your app. Each marketplace also provides a checklist that you must go through which includes tasks such as naming your app, choosing selling options and choosing a release date for your application.

The description of this process in other, first step when it comes to publishing an app is singing up and reserving an app name, windows messages back every user if the name is taken so they will know if they have to change the name or not. Selling details play a big role when it comes to making profit, since choosing the right price and the right marketplace is very important. Deciding the release date could also influence the success of the app, specially when it comes to seasonal applications, like christmas themed apps. Choosing the category is also very important because if its not categorized correctly then it will be hard to find for users. If the app has minimum hardware requirements it should be included in the description so users will know what to expect. Every developer has to check box if they made sure that they have gone through the accessibility guidelines and the app is tested for being accessible for users with low vision and screen readers.