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.
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.
Use the following commands to install Helios, create a new app, and start running the app locally at
$ gem install helios $ helios new app $ cd app && helios start
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.
In your Helios app directory, do
$ heroku create app-name (or tempt fate by letting Heroku generate a name for you).
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.
Of course, that's just the server half of the equation. The following iOS client libraries make it easy to integrate with Helios.
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").
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 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 is a small library that provides simple interfaces to register (and unregister) for Push Notifications with Helios.
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.