In my last post, Going Mobile with Drupal: Looking Ahead, I wrote on the direction of Drupal in relation to mobile web and where Drupal fits. As Drupal evolves to meet the demand for mobile content, identifying how to deliver content on mobile devices can still be a tough decision. Options for building mobile apps have evolved since last year, providing more choice and possibly more confusion.
What to Build? Native App or Mobile Web App?
Native apps still offer the best performance and access to events and features such as device file system, UI gestures (double tap, pinch/spread) and contacts. On the flipside, mobile web apps can typically be released faster because a mobile web app is only deployed to one operating system. So, if an app’s feature set doesn’t require a lot of complexity and deep integration with a mobile device’s features, a mobile web app is the more logical choice.
Although, another solution that brings the best of both worlds is the hybrid app. A hybrid app uses a native app “wrapper” to display data from an HTML web app. It’s downloaded and installed from an app store but still implements web functionality to a large degree. Red Hat Mobile is an example of a hybrid Drupal app for Android.
As mobile web browsers continue to improve, I anticipate they will all have the ability to capture the same mobile events and features that a native app can capture. For instance, mobile Chrome and Safari browsers now support accelerometer and gyroscope events. Gartner predicts HTML5 will evolve its capabilities to the extent that mobile web browsers will capture the same events and processing that’s currently found in native apps. As technologists continue to find ways to increase mobile network speeds, mobile web apps will have a distinct advantage over native apps because they are:
- Cheaper and easier to maintain
- Decrease time to market
- Cross-platform compatible
But until mobile browser features and network speeds increase, performance-critical mobile apps that use Drupal as a content store will function best as native apps. However, you’re still looking at longer development timelines and the need for Objective C programming talent for iOS or Java talent for Android. If you don’t have the time to learn Objective C and Java, PhoneGap is one of the most promising frameworks for building hybrid apps that integrate Drupal. The PhoneGap project was donated Apache last year so expect the framework to continue to offer innovative features and tie-ins to native OS properties. Plus, the DrupalGap module helps Drupal developers get a jumpstart on developing with PhoneGap. You may also want to check out Zend Studio 10, which utilizes PhoneGap and jQuery coupled with a WYSIWYG editor to build mobile apps. Zend Studio’s tight integration with its own new phpcloud platform as well as Red Hat’s new OpenShift development platform make it a compelling alternative for mobile app development.
Mobile app development and Drupal continue to become more refined as more mobile OS’s and devices enter the market. Drupal’s role as strictly a content management system is changing to that of service-based content deployment.
What other impacts will mobile have on the direction of the Drupal project?