The Value of Drupal Apps
A lot has been said about the positives and potential negatives of introducing apps into the Drupal ecosystem, yet it appears that the value of apps still isn't widely known, since we still haven't seen a surge in the number of Drupal apps available.
Simply put: Drupal apps are bundles of convenience
To Achieve, Internet apps mean going the extra mile. Our clients often ask us for solutions they can see and touch. They are looking for specific pieces of code to solve their unique issues. This is where apps come in to play for Achieve. Our target markets are publishing and media, so we understand the diverse set of challenges facing our clients, and our plan is to build apps that address the business goals of the publishing and media industries.
Apps are not a replacement for Drupal modules, or even features for that matter.
Achieve never sees the day where we stop releasing modules into the community. A properly built module posted to Drupal.org should have a broad purpose and allow other developers to extend its functionality based on individual requirements. An app does just the opposite. It's built as a stand-alone solution to a specific challenge faced by a unique market.
Apps are not meant to be building blocks, nor are they intended to be extended upon deployment. One-click to install, and only if needed a highly-evolved admin experience with 2 or 3 choices, and that's it! Ready to go, working "out of the box," and someone to call and scream at if the download doesn't work. Clients want someone to take responsibility for their products. Why wouldn't they, don't you think their clients don't call and scream at them? That's what they do for the products they produce. Achieve believes it's time to stop blaming Dries every time Drupal breaks! (We don't do that, much!) It's time we put our reputations on the line and provide quality products the client sees true value in using. Yes I said value, which means someday soon, these apps will need to cost something. Let's save that for another day.
How do Drupal Apps work?
A Drupal app elevates a module, or a suite of modules, into a well-thought-out one-stop productivity application - built to solve a specific problem, or fulfill a specific need, in a specific niche or market within the Drupalsphere.
Think of the suite of functionality you commonly need when building a website for a specific market. For example, if you build websites targeted toward families, you probably need a "bad language" filter. If you build websites for publishing and media companies, you probably need a variety of functionality - functionality that you can use over and over. An app can turn the knowledge you have acquired over years of experience in a specific niche or market into an all-encompassing "product" for others.
If you are a Drupal end-user, think about the business you are in and the website functionality needs you have - and what you've had to do to fulfill those needs over the years. Likely, an app could have made your life easier by thinking through your needs, then giving you a simple way to install a complete solution.
What Types of Things Can an App Bundle Up for Me?
Apps simply bundle together modules - your own modules, someone else's modules, or any combination - plus everything else needed to solve specific problems when building a website.
Think about the things you must do after you install a module or a group of modules - configuring the modules, building content types, creating vocabularies and taxonomy terms, creating and placing blocks, setting hooks, creating views - and all of these are just examples. If you have to set it up in Drupal, likely you can bundle it in an app.
Imagine if someone had thought through all of this for you - and now gives you a simple way to install of this with a few quick keystrokes - plus gives you sample content that makes it easy to learn how to create your own content. Yes, features does something similar; however the piece that is missing is the advanced user interface and all the documentation and support around the app.
Now you have a taste of the power of Drupal apps.
More about the Value of Drupal Apps
There are many more ways to explain the value of apps. If you have 30 minutes, I recommend you watch this Drupalcon London 2011 session. If you have even more time, you can hear more about apps by watching the following Drupalcon Chicago 2011 presentations:
Achieve Internet Invests in Innovation
At Achieve Internet, we believe in delivering quality on time, every time, in everything we do, and we take it to heart. We do so by documenting our processes, measuring the performance of our development team, and continuing to innovate our day-to-day activities to reduce the amount of man-hours it takes us to deliver a fully finished and tested product to our clients.
We believe that having a "solution" that can be sold, distributed by resellers, and enhanced by value-added resellers will allow Drupal to grow larger and faster than ever before. Apps are an important step to making real solutions a reality.
Achieve is targeting most of our Drupal apps to work with OpenPublish, an open source platform designed specifically for the online publishing industry. OpenPublish is one type of distribution, which is the operating system for a group of apps. It's what the apps "hook into" and it's the distribution that makes sure the apps work well with each other - forming an entire suite of productivity tools.
OpenPublic is another distribution, used by many government agencies that take advantage of apps.
A Good Example of a Drupal App
Want an example of the value of apps? Sure! Say you built a foul language filtering module that provides Drupal with an input filter that parses the content and removes or censors bad words.
With the module, you have your schema, your functions, etc. Users can download your module and enable it on their website. When they do, tables are created in the database and the site is ready for you to tell it exactly what those bad words are that you want to filter out.
An app goes the extra mile and wraps that module into a feature, which is capable of fetching the latest version of your module, surfacing the right roles and permissions to allow users to interact with your module, and populates the bad word list for you, resulting in a one-click installation requiring no further action.
Requirements for Apps
According to the Open Apps Standard (OAS), an app has to be a kit compliant feature. Kit is the name of the specification, or set of guidelines, that provides recommendations and requirements for app development to ensure their interoperability between different distributions and prevent conflicts between themselves and distributions.
That probably sounded complex, but all it means is that, by following these kit guidelines, your app will play nicely when installed alongside other apps or on top of a distribution. Failing to adhere to these guidelines may result in issues like namespace collisions, and roles and permissions difficulties.
At a minimum, an app should include the following components:
-
Specific functionality or the connection of the end user to a third-party service that provides specific functionality
-
The ability to cleanly install, uninstall, enable, and disable the app
-
Settings or configurations for the end user to customize their use of the app's functionality
-
Descriptions, screenshots, and graphics that tell an end user what the app is, what it does, and how to use it
Where to Start?
OK, after dumping an overload of information straight into your brain, it is now time to get our hands on experience and build some apps. In a follow up blog post "Let's Build Some Drupal Apps," you can follow me as I document the steps needed to bring an app to life.
You will need the apps module to run apps on your Drupal website. When you download that module, you will find all the necessary documentation for the Apps API and the reference on how to create your first app manifest file.
Without further ado, let's build some apps.


Comments
Post new comment