Helios.io Getting Started Guide

Helios 提供了 iOS apps 一個很好的後台框架,當然是用好用的 Ruby,如果你還不會,試試 Ruby 吧。Notification, Password 當然有,但特別的是它做了一個我很有興趣的嘗試,Client & Server 之間資料同步的 Do not Repeat Yourself (DRY)的功能。

在開發 iOS app 時,一個常遇到的問題就是,Core Data 的資料變動後,要同步回遠端的伺服器。比較好的解法是,先在 background thread 寫入 Core Data, 有空時再把資料同步到伺服器。AFNetworking & AFIncrementalStore 就是把這兩件事做得很好的 Library。

Helios 有趣的地方來了,它會讀取你的 Core Data 的 Schema, 然後在 Postgres 裡面,建立相對應的 Schema 還有基本的 API 呼叫,只要 30 分鐘,你就有免費的後台了,Restful 的 GET/POST/PUT/DELETE 全部都有了。

需要

  • Ruby 2.0 stable 2.0.0-p247, HEAD
  • PostgreSQL stable 9.2.4
  • Homebrew

下面操作的來源是 https://github.com/helios-framework/helios ,但是我更新了一些環境上的設定

在 OS X 上面安裝

  1. 檢查 Ruby

    ruby -v
    ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-darwin12.3.0]
    
  2. 安裝 Helios

    gem install helios
    

    如果失敗的話,加上

    brew install libxml2 libxslt
    export NOKOGIRI_USE_SYSTEM_LIBRARIES=1
    gem install helios
    

    Credit Zekus

  3. 建立一個 Helios app

    helios new myapp
    
  4. 建立 Postgres 資料庫

    createdb -h localhost myapp
    

    如果不行

    createdb: could not connect to database template1: could not connect to server: Connection refused
    Is the server running on host "localhost" (::1) and accepting
    TCP/IP connections on port 5432?
    

    就手動起始 Postgres

    pg_ctl -D /usr/local/var/postgres -l logfile start
    createdb -h localhost myapp
    
  5. 啓動 web server

    $ cd myapp
    $ helios server
    
  6. 打開 http://localhost:5000/admin/,你應該可以看到 Helios 太空色調的 UI 了。

接下來,就是把 Core Data model 跟 Helios 整合起來,這邊我就沒遇到什麼問題了,照個 Helios 使用說明 還有 iOS Core Data buildpack 做就行了,有卡關的,歡迎投書,我再把它補上。

我用的 Podfile

platform :ios, "7.0"
pod "AFNetworking"
pod "AFIncrementalStore"

最後的完成品


Live Demo

PS. 給那些每天在 Core Data, Client-Server 同步在奮戰的朋友們。順便找個機會用用傳說中好用的不得了的 logdown. 我一個小時就寫好這篇了。