helios beta

an extensible open-source
mobile backend framework

Astronaut!

Helios is an open-source framework that provides essential backend services for iOS apps, from data synchronization and push notifications to in-app purchases and passbook integration. It allows developers to get a client-server app up-and-running in just a few minutes, and seamlessly incorporate functionality as necessary.

Astronomer!

Helios is a constellation of mobile backend components—Mix and match to meet the specific needs of your app. Built on the Rack webserver interface, Helios can be easily added into any existing Rails or Sinatra application, or used by itself.

Get Started

Use the following commands to install Helios, create a new app, and start running the app locally at http://localhost:5000/admin

$ gem install helios
$ helios new app
$ cd app && helios start

Features

Data Synchronization
Read and write between the client and server over a conventional REST webservice, which can even be automatically-generated from a Core Data model.
Push Notification
A device registration endpoint, paired with an easy-to-use admin interface that lets you manually send push notifications to selected devices.
In-App Purchases
Track and verify all of the transactions made in your application.
Passbook
Everything you need to interface as a Passbook webservice, including pass registration, updating, and notifications.
Newsstand
Complete management of issues, covers, and assets, with plist-based web services and Atom feeds.
Logging & Analytics
A powerful way to capture stats and trends from app installations.

Deploying to Heroku

3...2...1... Blastoff!

Install Heroku Toolbelt

Install the Heroku Toolbelt, and you'll have everything you need to deploy your Helios application to Heroku, including Git and the heroku terminal command.

Create an App

In your Helios app directory, do $ heroku create app-name (or tempt fate by letting Heroku generate a name for you).

3...2...1... Blastoff!

All that's left to do is a $ git push heroku master In almost no time at all, your app will be online and operational.

Client Integration

Of course, that's just the server half of the equation. The following iOS client libraries make it easy to integrate with Helios.

Ground Control

Remote Configuration

GroundControl gives you a dead-simple way to remotely configure your app, allowing you to add things like feature flags, impromptu A/B tests, or a simple "message of the day").

Cargo Bay

The Essential StoreKit Companion

StoreKit is the Apple framework for making In-App Purchases. It's pretty good, but it has a few rough edges. CargoBay smooths out those rough parts by providing one step receipt & transaction verification, and more.

SkyLab

Multivariate & A/B Testing

SkyLab is a backend-agnostic framework for multivariate and A/B testing. Test conditions are persisted across sessions and launches using NSUserDefaults, ensuring that every user will have a consistent experience, no matter which testing bucket they end up in.

Orbiter

Push Notification Registration

Orbiter is a small library that provides simple interfaces to register (and unregister) for Push Notifications with Helios.

Antenna

Extensible Remote Logging

Antenna logs notifications asynchronously to any number of web services, files, or Core Data entities. Each logging message comes with global state information, including a unique identifier for the device, along with any additional data from the notification itself.

Astrodog!

AFNetworking

A Delightful iOS & OS X Networking Framework

AFNetworking is a delightful networking library for iOS and Mac OS X. It's built on top of NSURLConnection, NSOperation, and other familiar Foundation technologies. It has a modular architecture with well-designed, feature-rich APIs that are a joy to use.

AFIncrementalStore

Core Data Persistence with AFNetworking, Done Right

AFIncrementalStore is an NSIncrementalStore subclass that uses AFNetworking to automatically request resources as properties and relationships are needed.