Client App Technologies

I was pondering the options if you need to build some kind of client application these days. The two main categories seems to be Native Clients and Web Clients. Further, these categories could be split into subcategories by building for the desktop or for different kinds of mobile devices. A third category that seems to be increasingly popular these days is hybrids that usually consist of a native client using web technology.

Things to consider when choosing an architecture

Native Clients

Native clients are a good choice if you only intend to target a specific platform and you're not concerned with having to install clients. Tools and languages for building native clients are very mature.

Tools for Building Native Clients

Desktop
Mobile

Web Clients

Desktop web clients

By Desktop Web Clients I refer to to an application running in a web browser with network connectivity.

Building a web client you could use two different strategies:

Stand-alone
Server-backed

Mobile web clients

These can be built the same way as desktop web clients, but in addition they can be packaged with tools for native application distribution like Apache Cordova a.k.a. PhoneGap. There are lot's of frameworks available for building mobile web apps.

Web clients are a good choice if you want to be platform agnostic and don't want the trouble of traditional client installations. Tools and languages are less mature than native tools but are improving fast.

Tools for Building Web Clients

Desktop
Mobile