Starting On WebApps - Introduction

Introduction

Web Apps form the next major incarnation of HTML in the Web Browser, where fully functional applications are loaded dynamically over the Internet and run in the browser. The W3C (http://www.w3.org/) have been working to incorporate many local capabilities into the latest HTML specification ( http://dev.w3.org/html5/spec/Overview.html ). 

Unfortunately Web Apps have been overshadowed by their sister Native Apps, which are more powerful, natively installed applications that can be found on the various App Stores. However Web Apps are set to make a comeback with the advent of Google's ChromeOS and the increasing requirement to support multiple platforms using a common technology. 

Web Apps rely on well known web technologies, such as HTML, CSS and JavaScript, yet leverage them to produce powerful applications. The technical barrier to entry is typically a lot lower with a Web App over a Native App, which can help when starting out with a new idea. 

My intention is to provide a set of guides to help you understand programming and develop a useful application that can run on a Desktop but are specifically targeted at smart phones and tablets. The guide does not intend to linger on the finer points of Computer Science, Architectural Design or Optimisation, rather focusing on building useful tools that can be deployed quickly and enhanced later.

Hopefully this will allow you to get things up and running quicker, so that it is more enticing to you the reader and will allow you to start developing your ideas sooner. Then if you become successful, sure, read up on all the clever bits as well.

Getting Started

The fundementals of Web Development are pretty easy to grasp and the biggest benefit is that you probably have all the tools you need already. Just to make sure here is what I would recommend as a good starting point: -
  • Firefox [http://www.mozilla.org]- The best browser for web development given the number of plugins and tools that are available for it. 
  • Firebug [http://getfirebug.com/] - The essential plugin for Firefox, to turn it into a web development powerhouse.
  • Notepad++ [http://notepad-plus-plus.org/ ] - My favourite text editor. Nice and light, fast with syntax highlighting. 
  • Eclipse [http://www.eclipse.org/] - If you prefer an IDE, then give Eclipse a go. Far more complete than Notepad++ but includes a ton of stuff not needed for what were doing.
All software required will be introduced as we proceed, but you may want to consider some of the following tools to help: -

  • Internet Explorer - Comes with your PC and with IE9 is really showing some improvements again. A mobile variant of IE9 will also be shipping with the new Mango release of Windows Phone 7, replacing the ageing IE7 (urgh).
  • Chrome [http://www.google.com/chrome] - Webkit based browser that is the fastest on the market. 
  • Safari [http://www.apple.com/safari/] - Definitely worth downloading if you are developing for the IPhone. Provides some features to test your Web App on an IPhone style browser. 

Concepts

Occasionally it is useful to take a step back and look at the bigger picture. I will cover these in a "concepts" section in each article. Feel free to skip these, as they do not form part of the tutorial and pick them up later at your convenience.

Finally

This guide focuses on a new area of Web development which aims to provider Web Apps for smartphones. Web Apps are developed in a similar way to websites, but make greater use of the latest browser features, JavaScript and CSS. Web Apps are a great entry point in to software development as they are fairly easy to get started with, using common technologies such as HTML and JS, they are typically portable between devices, are fully ARIA accessibility compliant and have the capability to store information locally on the users device. What Web Apps lack in power compared to installed device specific Apps, they make up for in time to market and flexibility.

Web Apps are platform agnostic, meaning they can be run on pretty much anything. This is advantageous as it means that a single code base can be maintained, whilst supporting numerous platforms. This cannot easily be achieved using native apps, as most of the hardware supports completely different technologies such as Objective C and Java. ,

No comments:

Post a Comment