Drupal and App development

The discussion about which is better between the mobile website and native app seems never end. Here is my understanding of it. ;-)

Mobile website and App development

App development's learning curve is as steep as Drupal's, as the result, there is no company in ACT is doing the app development. Traditional web developers would like to create mobile website instead of creating the native app. Following table is comparing the mobile website development and app development.

compare

Native app will be able to deliver better user experience than mobile website, but certainly it will cost more to develop and maintain. From the user perspective, they will choose which ever can provide the better user experience. For example, if a mobile website can perform better than a native app, the user will stick with the mobile website. But in the condition that the mobile website and native app are all in the top quality, native app will definitely perform better in the UX as it doesn’t need the browser to run.

Client with the budget would prefer to have both App and mobile website to maximum the target audience. Most clients that are using app are also using the website interface in the backend to manage their content. In this case, a native app and its web interface is inseparable.  

Drupal and App development

As Drupal is one of the best content management system in the world, it can meet most of the requirements about managing content or even more complicated functions related to content management, which in most of the cases are what an app needs as the backend. App developers normally would have to build the backend from scratch, that will leads to great number of legacy issues such as security, expandability, flexibility etc. Whereas Drupal on the other hand are well maintained by large community on the world, dedicated team are fixing security issues,  thousands of plugins available to expand the functions, which makes Drupal a perfect backend platform from app development.   

diagram

 

Drupal developer and App development

The biggest obstacle sitting between Drupal developer and app development is that native app is written by JAVA or Objective C which are not well known by most Drupal and even other frontend developers. To create a native app, Drupal developers have to spend long time on learning JAVA/Objective C, which is the main reason developers are more likely choose mobile website over native app.

The Gap between frontend developer and app development has been widely aware by the community. As the result, there have been couple of open source platforms developed to convert general frontend scripts into JAVA/Objective C that allows frontend developer to actually develop the native app.

As for the Drupal developers, since they already are able to build the backend for the apps, if these platforms can help them to build the frontend, Drupal developers will become an app developer. A Drupal shop technically is an App shop.

Take the example of phoneGap platform, following diagram explains how a Drupal developer can build a native app.

diagram2

 

Drupal 7 itself can provide the service module to make itself accessible by frontend. Drupal developers/frontend developers just need to create HTML/Javascripts in PhoneGap platform, and convert them into native app file.

Problems for Drupal developer in App development

Although PhoneGap has been used widely in app development, it still needs more plugins to catch up with the development of smart phone systems. IOS and Android is releasing the new systems every year, which makes PhoneGap one step behind to catch up the new APIs. For example, PhoneGap still has not got the plugins to take voice input in IOS, on the other hand, PhoneGap almost has all the features covered for Android due to Android's open source feature.

Therefore,  Drupal developer can only build the native app with basic functionalities (for iphone) which means less interactive and more a information showing app like Drupal. However, at least fifty percent of the apps in the world are nothing about gaming, user interaction, but more about the way of sharing information. Companies would like to use app as another way to broadcast themselves just like what they thought when website came out. In this condition, Drupal developer will be able to create native app across the platforms.  

Even platforms like PhoneGap can help Drupal developer to fill the technical gap, Drupal developers can not skip the app release cycle in IOS and Android. Both systems has strict process to review and release an app, which will lead to a longer development time and higher budget for app development than pure Drupal development.

Drupal developer will still need to learn about the platform. But it would be much easier comparing with learning a completely different programming language.   

Platforms are needed in order to create certain version native apps. Following table is showing the combination.

ostable