Mobile applications
Development of rich, functional, cross-platform applications for mobile devices

Mobile application development

Our approach to mobile application development is to use the same rich, dynamic web technologies that we use to develop desktop RIAs. These applications can run directly in the mobile device's web browser, but generally we would use Apache Cordova to create a native app. Applications created this way are indistinguishable from pure native apps written in Java or Objective C: they are identified and started with icons on the device's home screens, they are installed over-the-air from an app store and they can make use of device-specific features like a camera, geolocation device or accelerometer.

Our hybrid approach has a number of advantages over writing device-specific pure native applications

  • One application runs on all mobile devices. Pure native apps must be developed individually for each target platform - an Objective-C one for iOS and a Java one for Android. This is obviously a huge overhead, and many native app developers only target those two platforms, ignoring users of Windows-based or Blackberry devices
  • That exact same application is also a rich, dynamic AJAX webapp that will run on anything that has a browser. Your mobile app doesn't just run on any mobile device: it runs anywhere
  • No special development environments or tools are necessary. Apps can be developed and tested in a desktop browser, just like a regular AJAX app, using all the mature, feature-rich debugging and inspection tools available to any normal web developer. Only the final stages of testing need to take place on actual mobile devices
  • Generally, our customers are developing apps for internal or business-to-business use, not apps intended for use by consumers. Therefore, the priority is to create an app that can run anywhere, not to ensure that every colour and transition animation is exactly as it would be in a native application on a particular device. That would be great, of course, but an application that looks exactly like a native iPhone app will obviously not look exactly like a native Android app; if you want both, you have to write two applications. That's OK if you are targeting consumers; indeed, that is exactly the approach taken in the consumer space. But the idea of a business developing a core internal application where you need a RIA for desktop users and separate native apps for every mobile platform is almost ridiculous

Cross-platform mobile apps are great, but our customers are increasingly interested in developing applications that run on mobile devices as well as desktop computers, not one or the other. For this, our approach offers an even more compelling advantage: the opportunity to maintain a single codebase for all platforms and all devices - desktops, tablets and smartphones.

Writing a single application that can work acceptably on all devices from desktop computers down to smartphones is certainly challenging, but the adaptive technologies provided by SmartClient / Smart GWT substantially ease the problem. See our mobile samples page for examples of how well this can work, or read the discussion on the SmartClient website for more details.

Mobile business applications are increasingly becoming a reality, but business applications are not the same as consumer applications. Don't make the mistake of thinking that development approaches that work for consumer apps will also work for business apps. Contact us to discuss the challenge of developing mobile apps for business.