
Client applications can be written for smart phones, just like for PCs, in Java or in a “native” platform language. The function of a custom specific application is limited only by the development effort, but developing mobile client applications has proven very expensive and time consuming.
Unlike a PC of today, where there is almost limitless memory and storage space for client applications, the mobile devices are limited in run-time memory as well as storage space. Installing and upgrading applications can also be time consuming due to the limited data capacity.
Software development is time consuming, and it is even more time consuming for mobile devices. Regards has to be taken to lack of functionality, small memory and low CPU capacity, as well as to a small display and limited input facilities. The enormous amount of function libraries and development tools, which exists for “fixed world” applications, is yet lacking for mobile applications. The UI builder tool and component set that is standard in most development suites for PC could be harder to find in mobile development tools.
Communication protocols, such as SOAP and XML-RPC, which are very convenient when a PC client communicates with a server, are often too heavy for mobile applications, due to the rather low data capacity in the networks, and low processing capacity of mobile devices. Developing specific protocols is expensive and very time consuming, due to the need for long test-phases.
Changes and upgrades to a service with specific phone clients are complicated and expensive, as all clients have to be re-installed, and often, the protocols used between the client and server have to be revised.
Building custom mobile client applications gives great flexibility, but the price is long development cycles and complicated change management.
