Why native Android apps need an Android CMS
Introduction
Every app contains content, sometimes lots of it. Instead of being hardcoded in an app, content should rather be separated and maintained independently. That's was CMSes were originally intended for. An Android CMS helps take all the dynamic content out of the codebase, making it accessible to editors and enabling live updating of the in-app content — without resubmitting the app to the Google Play store.
Terminology
An Android CMS is a CMS for putting content into native mobile apps. It's a subgroup of a bigger mobile CMS family — you might be interested in reading a comprehensive overview of those.
Features to look for
An Android CMS serves two audiences: developers and editors. It should be simple enough in terms of development to compensate for their efforts, and at the same time it should be accessible to those who create content. First, we'll focus on features which contribute to development simplicity.
API
A CMS has to come with an API. The best way to get the necessary content out of any system is to make an API request. A well-designed and well-documented API gives the developer full control: no parsing required, no redundant data coming in. An API-based access to content makes for clean, straightforward, maintainable code.
Custom content structures
CMSes shouldn't impose any restrictions on the content model. CMSes should enable setting up content structures according to the project's needs — not the other way around. The same level of freedom that any database gives should be available in a CMS, because the developer certainly knows better how to organize the content.
Content delivery platform
A CMS that delivers content is better than one that doesn't. Setting up a full server stack is fun for the first time, but later it becomes a tiring routine. It's nice when someone (preferably someone trustworthy) has done all the dirty work, so there's literally zero maintenance involved. A customizable, flexible, Heroku-style delivery platform is something to look for in a CMS.
Development tools
Projects get done faster when a CMS comes with SDKs and similar developer tools. This one also relates to the topic of development simplicity. Ideally, you don't have to write boilerplate code — the CMS vendor should've written it for you. In addition to SDKs, things like IDE plugins, tutorials and sample apps greatly help when they exist, making the learning curve much, much smoother.
Contentful, the ultimate Android CMS
If you need to manage content in an Android app — and maybe an iOS app and a website on the way — Contentful might be your best option. Here's why.
Mobile delivery capabilities
Contentful ensures content delivery even in network-impaired mobile environments.
Speed: Contentful's platform supports request bundling and has a built-in CDN.
Sync API and offline sync: help apps not to freeze when there's no Internet available.
Images API and progressive JPEG support help deliver visual assets faster.
Java SDK for getting content
Contentful comes with an SDK for fetching the content via Contentful Delivery API. It helps start building native Android apps faster.
Java SDK for saving content
There's also a second SDK which helps saving content in Contentful.
Sample projects
There's a lot of sample apps, which show how to handle the basic concepts that also contribute to developing with Contentful faster.
Documentation and tutorials
The documentation includes both a comprehensive API reference and an overview of the core concepts used in Contentful, while the tutorials explain in detail how to get certain things done.
Tools
There are several tools which greatly simplify developing Android apps.
Features for editors
Contentful comes with a web application, which contains the essential features for editors and content creators who'll ultimately be responsible for managing in-app content. The editor helps set up the content structure, create and manage content, and control publication flow, as well as managing the media collection. Contentful separates content from presentation, storing the content in Markdown — a clean and widely popular markup language. Take a look at the content editor or see how to set up a content model
Final notes
We invite you to try Contentful, our developer-friendly content management platform.