iPfaces: Simplifying Mobile Application Development With Java
The mobile application development goldrush is truly underway, but one of the big issues facing developers is that there is no unified development platform. In such a fragmented industry, iPfaces Java based approach will be very welcome to those looking to capitalise across many devices to provide a killer mobile application. I spoke with Pavel Stržínek to find out more about iPfaces, and what it provides to Java developers.
James Sugrue: Can you introduce yourself and your background?
Pavel Stržínek: I have a Master's degree in informatics from Palacky University in Olomouc, Czech Republic, and a background as a software engineer and project manager in the ICT business. Now I work as software engineering director at Edhouse and have been with the company for past couple of years. Edhouse is the producer of the iPFaces solution. As such, I'm responsible for operation of the software development department, development methodologies and software architecture of our solutions and services we provide.
James: Could you explain what iPfaces is all about?
Pavel: The idea itself is not new. We have developed internal the skeleton of a network solution previously for faster production of mobile applications both for industry and customer usage, based mainly on Windows Mobile and Mobile Java platforms. With the roll-out of iPhone and a few commercial projects we did on iPhone platforms for our customers, we thought of utilizing our experience and know-how and offering it to the public as a separate tool. There are already a few such mobile frameworks on the market, but we have chosen a different approach, which we are convinced is better for developers and users: we provide seamless integration with all three of the most used server platforms: Java, PHP and ASP.NET. This way developers and project team members do not have to adopt another new technology and design pattern, and can stick with the used and known techniques to produce mobile applications which are lean, good-looking and integrate well with target platform.
Furthermore, it can be easily added to existing solutions while preserving the present business logic. On
the other hand, we cannot compete against native applications with all the features, the iPFaces platform is not really eligible for writing games and other multimedia applications. It's place is for network clients, community and business applications, road warriors, gathering of data and so on. Besides iPhone, we have recently released clients for iPod (which also runs on iPad), BlackBerry, we are finishing J2ME client and there are other platforms on our roadmap, such as Android and Windows Mobile.
James: What similar products are available?
Pavel: We know of a few, the closest in concept are probably PhoneGap and Rhodes, but as I said, both use a slightly different approach. We try to ease the application development extensively, support more server platforms and we mainly focus on the benefits which project managers and owners can achieve using technology. This is the main goal we follow in every project we do: we provide profit to our customers. We do this in the form of faster delivery, less spending and better quality. If both sides cannot benefit from the partnership, we do not go for such business.
James: How do I distribute my app using iPfaces? Can I put it on the app store?
Pavel: There are several ways to deliver the client application to the end user. First is our iPFaces client present in AppStore, which you as end user can simply configure to work against your own server solution. We can prepare customized iPhone applications for our customers and either take care of its placement in AppStore or let customers install it ad-hoc. For other platforms, we provide OTA (over the air) installation URL on our website for easier distribution to end user devices, or customers can use distribution channels of their choice.
Distribution of the server part of the customer's solution is something which we do not cover. It uses the same patterns as any other internet or web application. The same rules apply for securing the iPFaces application too.
James: What other platforms can the application run on?
Pavel: We support the main three server platforms: Java, PHP and ASP.NET, which should cover the majority of the server application market. We are quite flexible with the concept though, so if a need for other platforms arises, we can add other platforms to this list in future. Besides, one could make a wrap around PHP implementation even now.
James: Do I need to download a runtime for my phone to use iPfaces applications?
Pavel: Yes, you have to install the iPFaces client on your device, so from this point of view it is a kind of a thin client. Or you can let Edhouse provide a custom client for you, with your own design, pre-set server application location and so on.
James: Is it a web-based product?
Pavel: Yes and no. It uses http protocol for communication between server and client, and integrates to web component on server part, but the choice for this is practical, not an intention: it is the easiest way to deal with network settings, firewall restrictions, mobile devices' compatibility and it is the most common way to provide network access to server solutions.
James: Do you think that this type of solution will become more popular?
Pavel: I am convinced it will. Software development evolves from low-level programming to higher levels of expressing the algorithms, ease of use, re-usability, speed of development; and iPFaces and other network frameworks are just one form of such abstraction.
James: What are your opinions on the closed nature of Apple's business, and the absence of an open mobile development platform?
Pavel: Apple is sure smart! I actually do not like it, being liberal concerning people's rights, but I have no power to change it. Time will show if it was the right way for Apple and its users. Right now it seems Apple took the right step.
James: Can you give some examples of applications built using iPfaces?
Pavel: There are quite a few created already and we are planning to create a "Hall of Fame" for them on our www.ipfaces.org site. We also have a few commercial deployments of iPFaces and in development phase from financial and other sectors, mainly for the internal use of customers, employees and representatives. Right now we are working on a new mobile sales and information channel for one of the biggest Czech financial brokers. The solution is based on iPFaces and there are up to five thousands users expected, starting next year.
James: How can I test an iPfaces based application?
Pavel: The easiest way to get your hands on iPFaces is to install the iPFaces client application from AppStore and let it run examples with default settings. For real applications, iPFaces solution provides web interface which emulates the view and behaviour of a real device. Other testing scenarios are possible too, either with device emulators available from Apple or BlackBerry, or you can still test the application on a real device too. The same patterns apply for regression, stress and penetration testing as with any other internet application.