The rapid pace of improvements in browser technologies and the growith of HTML5 have presented many opportunities and challenges for web app developers. In the following interview, Ido Green, developer advocate for Google Chrome OS, reviews some characteristics of the “modern” web app and covers a few design points and helpful tools developers should keep in mind. Green will expand on these ideas in an upcoming free webcast, “Modern Web Applications Utilizing HTML5 APIs,” on Thursday, May 30 at 10 a.m. PT.
What is a “modern” web app?Ido Green: A “modern” web app is an application that utilizes HTML5 APIs and browser technologies to let the users accomplish a certain goal.
In most of the “great” web applications we see several characteristics:
- They are self contained (maybe from here we got the term “one page application”) with one main goal.
- They feel “native”: they are leveraging HTML5 APIs that let the app have “native” capabilities, like Offline, Geo, drag and drop, transitions, etc.
- They are “offline first,” since we wish our users to be productive when there is no connection or when there is a flaky connection. These apps are built from the ground up with the idea of “offline.” It’s similar to a native app that you will “install” first and later fetch the data.
- They are device aware: the apps are working great on mobile devices as well as on laptops and desktops.
- They offer great performance: the great modern apps are utilizing CSS3, HTML5 and the mobile browsers to give the users a smooth experience where everything is working fast. The “offline first” methodology is helping here as well.
What kinds of design considerations should developers be aware of when designing a modern web app?
Ido Green: They should be aware that users will use their web app on a huge range of devices with different browsers. So, concepts like responsive design and progressive enhancement are not just buzz words. They are important to make the best app for each platform or device. There are many good frameworks that help in that, and I hope to cover the important ones in the webcast.
Another topic is “smart client,” or the fact that as we’re shifting more and more logic and code to the client side, we need to make sure we avoid the classic “spaghetti code.” There are many MV* frameworks that will help us in organizing and maintaining our code there.
What role does HTML5 play?
What are some other tool highlights for developers building modern web apps?
Ido Green: There are many tools out there. In the webcast, we will just touch on a few open source projects that are more “full tech stack”: Yeoman and Thorax.js are two good options.
This interview was edited and condensed.