Skip to main content

APPsolutely Necessary: Powering the Mobile Experience with Drupal

Gregg Shanefelt | Principal Engineer, Mobile

Amy Novikau | Senior Developer

May 15, 2022


Phase2 Software Architect, Gregg Shanefelt, and Software Developer, Amy Novikau, describe the differences between mobile and native apps, their business benefits, and the role Drupal can play in the mobile experience. 

What are mobile and native apps?

Mobile apps are downloaded from an app store or similar marketplace and installed on devices including phones, tablets, or even wearables. The most popular operating systems for these apps are iOS and Android. 

There are millions of apps out there but here are a few examples with unique features:

  • American Museum of Natural History Explorer: This app leverages location and wireless technology to allow visitors to learn more about the exhibits they’re experiencing as well as serving as a virtual tour guide.
  • Robinhood: This app takes the complexity out of trading stocks and simplifies the flow, allowing a wider variety of individuals to trade from anywhere, while the market is open.
  • MyFitnessPal: This app allows users to set diet or exercise goals and keep track of them through either location or Bluetooth—paired to a wearable.
  • Home Depot: This app shows the customers exactly where to find the product they’re looking for on a shelf, alongside a map of the entire store.

Some of the most complex mobile apps are games such as Pokemon GO, which make use of more intricate technologies such as artificial intelligence or augmented reality.

Native apps can also be downloaded from app stores or commonly, pre-loaded by device manufacturers. These apps can be over-the-top (OTT) media like Roku, tvOS, Android TV, Fire TV, or gaming systems like Xbox and PlayStation—accessed via any console or smart TV. 

Native apps can be Mac, Windows, or Linux-based as well. Usually desktop apps are built in Electron, which is node.js based, Tauri, which is rust-based, or similar frameworks. 

Examples of popular OTT streaming media apps include Netflix, Hulu, and HBO Max. Spotify and SoundCloud are popular audio apps.

Desktop apps include common apps like Skype and Slack, Discord, and even Visual Studio Code. All of these examples were built with Electron using JavaScript and web languages.

What are some primary benefits of apps for business?

Apps provide new marketing and customer acquisition channels that regular websites cannot. App stores may be the first point of entry for customers looking for a product—as some users will choose to start their search via apps rather than a search engine.

Additionally, apps allow businesses to leverage their customers’ most powerful devices. 

Unless you’re a developer or an avid gamer, the most powerful device you own will likely be your smartphone so it’s important to harness their features. These features include: 

  • Location services—meet the needs of the customer wherever they are
  • Payments—leverage services like Google and Apple Pay that are integrated into the device and enable a much easier payment flow
  • Offline capabilities—customers can experience services in situations where intranet service isn’t available in a much more seamless way than the web provides

Another important advantage is the easy pathways apps can facilitate to help customers complete transactions. For example, if there is a complex process such as booking an appointment or a difficult purchase, apps can provide a seamless flow. Unlike browsers that have many distractions with in-web functionalities, native and mobile apps can offer a more streamlined navigation with a spelled out user flow. All while leveraging features that make the whole experience much more efficient and effective.

Finally, accessibility. The accessibility features on mobile apps are much more robust than what a browser typically provides. There are tons of under-the-hood APIs such as voice, standard keyboard for input, different levels of contrast or font size, and many other features that go hand-in-hand with the device that enable a broader range of inclusivity. 

How does Drupal fit into the app experience?

Drupal is more than just a content management system (CMS). Drupal can handle translations, media, internationalization, and database views that help with custom queries. With these, Drupal can be implemented as a data source either directly through Drupal’s APIs or through a middleware like an application service. 

However, directly calling Drupal as a backend data source has a lot of benefits. The biggest and most obvious benefit is that it’s much easier and faster to implement than middleware. You would have a direct line of communication to your data source rather than needing another service or system in place. On top of that, you can leverage the skills you already have. If you’re experienced with Drupal then using its APIs won’t require as much of a learning curve compared to learning a middleware application service. And Drupal’s core REST API gives you multiple formats that you can use off the bat such as XML, JSON, and HAL_JSON. 

Drupal is flexible—you can store any type of key-value pairs in a database. This allows you to store configurations for run-time in Drupal and have an interface that can be modified by content editors in order to enable or disable features within the app based on what the environment requires. 

And we all know Drupal isn’t just about its core functionalities. It has a large open-source community full of valuable, core modules and fantastic contribs. We have GraphQL, a great contrib module that enables complete control of the GraphQL schema. It provides full support of the official GraphQL specification with all its features, including reading and writing through queries and mutations.

There’s also the RESTful Web Services core module that enables you to expose entities as REST resources to allow a native or mobile app to talk to a Drupal site.

We also have the JSON:API core module which implements the JSON:API spec for the Drupal entities just mentioned.

And to top it off with another fantastic contrib module, we have Druxt Drupal Modules. These Druxt modules greatly simplify decoupled development, making powering mobile apps that much easier.


Learn more! Watch Gregg and Amy’s presentation on this topic at DrupalCon ‘22, in Portland, OR. 

Remote video URL

Recommended Next
Mobile
Native Apps: A Digital Product Strategy
Hands typing on a smartphone
Mobile
Native Apps: Benefits of Native Technology
Woman holding credit card and typing on her smartphone
Mobile
Lessons Learned from Building Enterprise Mobile Apps
Woman holding a cell phone
Jump back to top