Web apps do not differ much from traditional web applications, except for three details:
- Can be installed on the local device (mobile, tablet, desktop)
- Can be performed offline
- Have access to APIs and manipulate local device capabilities like camera, accelerometer, GPS, etc.
But what is the magic behind it all?
Some mobile operating systems, such as Firefox OS, perform the web apps directly. Others like Android and iOS, require applications to be packaged in any form and compiled with specific APIs so they can be installed and run.
Anyway, web apps can not be written without discretion. They must follow certain patterns that involve, for example:
- HTML5 / CSS3 specific code design patterns that fit the various screen resolutions (responsive design);
- Possible to be performed offline;
- Support 'touch';
- Standards and conventions dictated by each platform.
Below we examine some tools, libraries and frameworks that help in the development of web apps, among IDEs, libraries, frameworks, and other resources.
IDEs with support for HTML5
Sublime Text : this editor has one of the best implementations of the feature "Auto Completion" I've ever seen. Also has a new feature: The "minimap", which presents a miniaturization of the entire source code, making navigation easier.
NotePad ++ and Eclipse are two other excellent options for editing HTML code.
Buzz allows easy manipulation of the HTML element SOUND.
Hammer a library that implements multi-touch support in their applications.
Frameworks for game development
Crafty provides a framework for building HTML5 games. Among its features are: cross browser, choice of Canvas or DOM maps sprites, collision detection and modularization. Quintus , EnchantJ S and ImpactJS are other software in the same category.
Hybrid Mobile Frameworks
Are frameworks that act as a bridge between the web app and the device, which can be Android, Windows Phone, Apple, etc ..
Frameworks for servers
That's all. I hope this information will help them create their first web application running on various mobile devices.
More information, see my presentation on SlideShare