Drupal as backend for mobile App

Project description

Habinator mobile App was published in both Apple Store and Google Play. The App "Digital Health Advisor and Life-Coach" allows user to reach personal goals and make lifestyle changes - which is the only real way to get healthy. The mobile App was implemented in React Native. The backend is Drupal 8 including Google Firebase, API's from social media sites to allow easy account creation and login, and an external email service for efficient marketing purposes.

Project was made using known best practices and helper tools like Fastlane which allows us to make a release and upload it to both stores in minutes with a one command. We also configured an optimized TIP Solutions hosting stack including AWS CloudFront for faster data delivery globally.

Benefits

Because Drupal 8.7 has JSON API and REST modules in core requesting and posting data between the App and backend is as easy as it gets. Additionally creating a new API Endpoint takes about two minutes.

Authentication and data encryption is done with an OAUTH module and it's dependencies which even anonymize the user (GDBR requirement).

Core's standard taxonomy, entity reference and node systems are known to give a powerful tool to create the data architecture as usual. Other benefits using Drupal are that the content can be generated using WYSIWYG editor and other common content creation tools - and then consumed by the App. Translations and multilingual properties are easy to build as always.

Challenges

Building the backend did require developing six custom modules which took about a month. These included implementing the social login options using Twitter or Facebook to create an account. Also push notifications contrib modules we're not suitable for our purposes but we found official Firebase PHP bundles which we could use to build a perfect notification system. Additionally security measures required a little work because we don't allow the App users to login to the backend.

Conclusion

People has been asking if Drupal 8 is suitable for a mobile App backend?

We we're also very skeptic and we never would have recommented Drupal 7 but version 8 is a totally different system. Community's documentation about mobile App's gives a starting point.

The answer really seems to be "yes, it's very suitable" - even in the area of performance. The common conception is that "Drupal is slow" but the people doesn't understand that Drupal is only PHP code using a database and there are tools like Redis to make it very fast if the site is build correctly.