Developer

What is iPFaces?

Definition

iPFaces is the framework for simple creation of native, form-oriented network applications for mobile devices. The aim of the solution is to screen the programmer completely out from the mobile platform itself, and transfer the entire application logic to central application server level.

Each iPFaces application consists of two main parts:

  • Thin iPFaces client for mobile devices
  • The server part with application logic and definition of iPFaces views

The thin iPFaces client is a fully functional, tuned and stable application, supplied for free for all supported mobile platforms. The entire solution includes also the ensuring of easy distribution of the client application to end users.

The mobile application is adapted to the design and control style of the specific mobile platform. The iPFaces application provides end users with higher user comfort and overall user-friendliness on professional level. The possibility of simple use of advanced mobile functions (GPS localisation, use of integrated camera, compass etc.) is an important part of the iPFaces solution.

From the technological point of view, the server part of the application is a standard web module. iPFaces provides libraries for easy definition of iPFaces forms for the presentation layer of the application for all supported server platforms (ASP.Net, Java and PHP). The architecture and design of the business logic are not limited in any manner and you may use your usual and tested procedures. iPFaces views may also be added to your existing web application, thus easily expanding its functionality to mobile devices.

Communication always runs from the iPFaces client to the server; standard HTTP (S) protocol is used on the communication layer. The client generates simple GET/POST requests and the server responds by returning iPFaces forms definition in XML format. In terms of technology and architecture, the approach is very similar to classic website. The iPFaces client may be compared to a web browser and the iPFaces server to a web server.

Technological scope

When selecting a suitable technology for the programming of a mobile application requesting online communication with the central server part and its data base (management of out-of-office workers, data collection, survey applications etc.), several programmer approaches are available:

  1. Native application for mobile devices
  2. Web application optimised for mobile browser
  3. Use of the iPFaces technology

The following table shows the pros and cons of individual approaches. The percents express the suitability of the use of the specific approach from the point of view of the given criterion:

Criteria Low priority Mid priority High priority
Application user friendliness
Usage of device specific features
Compatibility between device versions
Developer friendliness
Simplicity of app version changing and editing
Support of third party documents and resources
Work with multimedia, graphic effects

Criteria Native application Web application iPFaces application
Suitability

0%

0%

0%


Enter your criteria and click to Evaluate button.

Upon first glance, the table indicates that the iPFaces technology balances individual pros and cons of native and web approach and attempts to keep the position of reasonable centre:

  • Application user friendliness – web applications can never be as user-friendly as classic native applications. In its beginnings, the HTML code was not designed for these purposes. This insufficiency is now being partially compensated by massive use of the Javascript technology, which, however, has excessive performance requirements on many technologies. The iPFaces technology uses native components and their specific features for user interfaces. The design and behaviour of components is thus comprehensible and predictable for the end user. Each component of iPFaces is optimised for the mobile platform and the end application suffers from no performance problems.
  • Usage of device specific features– web applications have major limitations in terms of access to specific HW features of mobile devices. Some issues are partially supported by specialised Javascript libraries, but developers often have no options for using the extending features of a device. The iPFaces has support for advanced features, such as GPS, integrated cameras etc., integrated directly at its core.
  • Compatibility between device versions– native mobile applications are often incompatible among various types and versions of mobile devices. Multiple versions of the same applications must often be developed and tested to be supported by a wider range of devices. The logic of the iPFaces applications is managed centrally on the server part and the solution guarantees 100% compatibility for all supported mobile platforms.
  • Developer friendliness – programming and testing of a native application for mobile devices places high requirements on the expertise of the entire development team, incl. knowledge of the mobile platform itself, the relevant programming code and development environment. Testing a native application is also a rather demanding process, as final tests have to be carried out on the specific mobile device. Development of a mobile application with the aid of iPFaces is similar to web development. Developers with experience with one of the supported web technologies (ASP.Net, Java and PHP) may start working with iPFaces virtually immediately. The iPFaces solution allows also tests of the final application by the developer through a standard web browser.
  • Simplicity of app version changing and editing – distribution to customer end devices and consequent reinstallations of new versions, after logic adjustments, represent a major pitfall of native mobile applications. If there are hundreds of mobile devices operating in the field by the customer, new version update requirements are indeed high. The iPFaces approach is similar to web approach, as all application logic is in one place in the server part. To make a version update, a new server model put on and the entire matter is finished within a moment.

The iPFaces technology takes inspiration from both native and web approach and attempts to achieve a reasonable compromise and balancing of individual pros and cons of both classic approaches. iPFaces thus becomes a unique technology providing you with new options for the development of mobile applications. You may verify here whether iPFaces is suitable also for your project.

Why to use it?

Knowledge of specific mobile device platform is not required.

iPFaces screens you out from specific problems of the development of applications for mobile devices. Get the furtiveness of mobile platforms out of your head; iPFaces will allow you to focus on the application’s logic more.

The programming of applications for mobile devices often requires specific knowledge of a specific platform, programming code and development environment. Various skills are required for various mobile devices:

  • iPhone – iPhone OS, Objective C
  • Android – Android OS, Java Android SDK
  • BlackBerry – BlackBerry OS, Java BlackBerry JDE API
  • Smartphone - Symbian OS, C/C++ or J2ME
  • Smartphone - Windows Mobile, .Net CF or J2ME
  • Classical cellular – various native platforms, J2ME

Devices using the same platform often differ, as do even two versions of firmware for the same devices. Mobile applications’ programming and testing is a nightmare for most developers.

If you use iPFaces, you are screened out from these problems fully and you do not have to care about the programming of the mobile client at all. All you have to do is install the general iPFaces client to the mobile device in the standard way and file the address of your iPFaces server upon its first launch. The iPFaces client is supplied for free for various mobile platforms as a standard part of the entire solution.

Use of standard web processes

The iPFaces technology is created according to standard design patters and customised for web application development processes. The main idea is to bring the development of iPFaces applications as close to web developers as possible. The iPFaces architecture, individual components and their use comply with these principles. At the beginning, the developer decides which of the supported web technologies is most preferable for him/her, and then uses this technology on the server side. This iPFaces access supports also simple expansion of your existing web application through the addition of a new interface for native iPFaces client.

Web access was selected for its massive prevalence, simple use, large knowledge base available online and wide support of development tools and web servers for various server platforms. The web protocol (HTTP/HTTPS) is a standard today, with the clear advantage of simplest passage through various heterogeneous network environments.

Web access enables centralised application management and simplifies distribution of new application versions. All you have to do is to update the central iPFaces web module on the server in the standard way. There is no more need for lengthy reinstallations of mobile devices, which there may be hundreds or even thousands of in your customer’s production environment.

Choose the platform in which you will develop applications for your mobile devices

One of the biggest advantages of the iPFaces solution is support for multiple web platforms on the server side. There is no need to learn new technologies and new programming procedures. All you have to do is to choose your favourite platform and you may start developing immediately. The technologies supported by iPFaces account for most of today’s web world:

  • ASP.Net – the iPFaces library contains a set of standard custom components with direct support in visual designer (VS2005, VS2008)
  • Java – iPFaces is implemented as a standard JSP Tag library with intellisense support in development environments (NetBeans, Eclipse)
  • PHP – iPFaces is implemented as a simple object library with intellisense support in environments using the PHP Doc standard (NetBeans, Eclipse PDT)

In the future we plan to support more mobile platforms on the part of the client. This will give iPFaces another dimension and will allow you to write applications for various mobile devices in a single server technology:

  • iPhone – fully supported, starting with iPFaces 1.0
  • BlackBerry – available in beta version, starting with iPFaces 1.1
  • J2ME – available in beta version, starting with iPFaces 1.1
  • Android – fully supported, starting with iPFaces 1.3
  • Windows Mobile – planned for future

How to use it?

Overview & Platforms

If you decide to use iPFaces in your project, the only thing you need to program is your own application server module. If you have experience with classic web development under the ASP.Net, Java or PHP platforms, programming of an iPFaces application is a simple task for you. The server part of the application is a standard web module and the iPFaces solution provides a library for the support for creation for iPFaces forms on the presentation layer of your server application. The libraries are designed with the view of simple integration into your web module in mind.

Just a few simple steps are required for the initial launch of your own iPFaces application. All processes may be found on Quick start page.

Use of client in Android / iPhone / BlackBerry / Mobile Java device

The “iPFaces Client“ application is available for free directly in the Android through Android Market or in the iPhone through Apple AppStore. Installation of iPFaces BlackBerry client application is possible in two different ways: Over The Air (OTA) or throw the Desktop manager. Installation of Mobile Java client is also possible in two way: Over The Air (OTA) and throw the local installation (Bluetooth, IrDA, cabel).

Upon first launch of the application, the user is asked to fill in the application address of the iPFaces server in the standard URL format. Following first successful communication, the further look and conduct of the client application is fully controlled by the server logic.

Quick start

Select your preferred platform for the development of iPFaces applications:

Documentation

All parts of the iPFaces solution are fully documented and the online version of the documentation is available in the Support & Services section, and downloadable packages come with complete printable version of documentation. Answers to your questions may be found also in the FAQ section, on public developer forum or do not hesitate and contact us directly through the contact form.

Source codes

All source codes of the server parts of the platform, available for non-commercial and commercial use under the BSD licence, are available in the download section.

Is it free?

The iPFaces client application is free of charge for all supported mobile platforms, both for non-commercial and commercial use. The distribution is secured by Edhouse through standard channels for the specific mobile platform (iPhone - AppStore, Android - Android Market, …).

The server part of the iPFaces technology is fully opened, both for non-commercial and commercial use under a BSD licence, in line with the FOSS principles.

For serious commercial deployments of your own iPFaces projects we suggest you to take advantage of professional services. We can also prepare branded client application for your deployments, with your logo, graphics and look and feel, tailored with your own solution.