mfks17's blog(Life is Good !!)

趣味や思った事を書いていくと思います

Heliosを触ってみた

皆さん、こんにちは。

heliosというiOSアプリ専用のサーバサイドフレームワークがあるようなので、触ってみました。

parseのiOS専用版というところでしょうか?

parseにかんしてはWatsonさんも記事になさっているので、ここでは割愛させていただきます。対応しているプラットフォームが増えているきがする。

heliosとは

ヘリオスは、iOSアプリのために不可欠なバックエンドサービスを提供するオープンソースフレームワークです。これは、データの同期、プッシュ通知、アプリ内購入、および通帳の統合が含まれます。これにより、開発者は、クライアント - サーバアプリケーションにシームレス、必要に応じて機能を取り入れながら、アップとランニングを取得することができます。 ヘリオス”はモバイル初の”開発のために設計されています。デバイス上の優れた機能を構築し、サーバー側のコンポーネントを必要に応じて実装しています。むしろバックエンドとダウン陥って取得す>るよりも優れたユーザーエクスペリエンスを、クラフティングにあなたのエネルギーのすべてを注ぐ。 ラックのウェブインターフェース上に構築されており、簡単に既存のRailsSinatraアプリケーションに追加することができヘリオス。あなたはヘリオスアプリケーションで始めた場合、または、あなたは、新しいRailsまたはその上にSinatraアプリケーションを構築することができます。

google翻訳先生より

  • helios github pages
  • helios github repository
  • 作者がAFNetworkingの作者というのも、心強いですね。

    インストール

    gemでインストールするようです。

    $ gem install helios
    ...
    Successfully installed helios-0.2.0
    

    現在のバージョンは0.2.0のようです。

    では、Heliosのプロジェクトを作成してみます。

    helios newコマンドで作成します。

    $ helios new app
             create           create  config.ru
             create  Gemfile
             create  Procfile
             create  README.md
                run  bundle install
    Fetching gem metadata from https://rubygems.org/.........
    Fetching gem metadata from https://rubygems.org/..
    Resolving dependencies...
    Using i18n (0.6.1)
    Installing multi_json (1.7.2)
    Installing activesupport (3.2.13)
    Using backports (3.3.0)
    Installing chunky_png (1.2.8)
    Using coffee-script-source (1.6.2)
    Using execjs (1.4.0)
    Using coffee-script (2.2.0)
    Using highline (1.6.16)
    Using commander (4.1.3)
    Installing fssm (0.2.10)
    Installing sass (3.2.7)
    Using compass (0.12.2)
    Using eventmachine (1.0.3)
    Using excon (0.17.0)
    Using thor (0.18.1)
    Using foreman (0.62.0)
    Installing haml (3.1.8)
    Installing json (1.7.7)
    Using rack (1.5.2)
    Using rack-contrib (1.1.0)
    Using nokogiri (1.5.9)
    Using sequel (3.46.0)
    Using rack-protection (1.5.0)
    Using tilt (1.3.6)
    Using sinatra (1.4.2)
    Using sinatra-param (0.1.2)
    Using rack-core-data (0.3.1)
    Using terminal-table (1.4.5)
    Using venice (0.0.1)
    Using rack-in-app-purchase (0.1.0)
    Using rack-passbook (0.1.1)
    Using houston (0.1.1)
    Using rack-push-notification (0.4.0)
    Using rails-database-url (1.0.0)
    Using jsmin (1.0.1)
    Using rack-test (0.6.2)
    Using sinatra-assetpack (0.1.7)
    Using sinatra-backbone (0.1.0.rc2)
    Using sinatra-contrib (1.4.0)
    Using sinatra-support (1.2.2)
    Using zurb-foundation (4.1.1)
    Using helios (0.2.0)
    Installing kgio (2.8.0)
    Installing raindrops (0.10.0)
    Installing unicorn (4.6.2)
    Using bundler (1.3.4)
    Your bundle is complete!
    Use `bundle show [gemname]` to see where a bundled gem is installed.
                run  git init
    Initialized empty Git repository in /path/to/project_dir/app/.git/
    [master (root-commit) f490cb8] Initial Commit
     5 files changed, 160 insertions(+)
     create mode 100644 Gemfile
     create mode 100644 Gemfile.lock
     create mode 100644 Procfile
     create mode 100644 README.md
     create mode 100644 config.ru
    

    では、githubのReadmeをみながらサンプルが動く環境を作っていきます。

    Requirement

    • ruby 1.9
    • PostgreSQL9.1

    rubyはOKとして、PostgreSQLは作者が専用サイトを用意してくれているのでそこから落としてきます。

    インストールが簡単で、ダウンロードしてきた圧縮ファイルを解凍して/Applicationsディレクトリに突っ込めOKです。

    次にコマンドラインから使用できるようにシェルのリソースファイルに以下を追加します。

    PATH="/Applications/Postgres.app/Contents/MacOS/bin:$PATH"
    

    詳しくはドキュメントを参照して下さい。

    ではDBを作成しています。ここでは、githubの通りに進めていきます。

    $ createdb myapp_db
    

    次に.envというファイルを作ります。

    $ echo 'DATABASE_URL=postgres://mfks17@localhost/myapp_db' >> .env
    

    サーバ側でDBをごにょごにょするときは、このオブジェクトをO/Rマッパでいじる感じですかね?

    事前に、githubのサンプルにあるCore Dataも一緒にappディレクトリに突っ込んで置きます。

    では、起動させてみます。サンプルにあるようにhttp://localhost:5000/adminにサクセスしてみます。

    helios server
    

    そうすると、サーバが立ち上がりますので、ブラウザでアクセスしてみます。

    あとは、クライアントとHeliosの統合、Core Dataのリンクを行えばオレオレParseができちゃいますね。

    自分はサーバサイドがよくわかってないので、これを機に勉強したいと思います。

    また、これはそのままHerokuにデプロイできるみたいです。

    最後までお読みいただきありがとうございました。