rails with ios app
Post on 11-Sep-2014
1.716 views
DESCRIPTION
Rails勉強会@つくば #1 での発表スライドです。 http://rails-meeting-tsukuba.doorkeeper.jp/events/6518 iOSとiOSアプリの連携について、Railsアプリケーション開発者向けに簡単に解説しました。TRANSCRIPT
Rails & iOSApp LT@Rails勉強会つくば
あおみかん@AknEp
自己紹介• Railsアプリ書いたりiOSアプリ書いたり
• 最近退院()しました
• フリーランスで仕事してます。おかねください。
• 同人サークル 4th cluster 代表
• 筑波大が舞台のゲーム作ってますhttps://www.facebook.com/suzuki.satoshi.1988
基礎的なこと• アプリとサーバーがHTTP(S)で通信
• 最近のトレンド:
• RESTfulなURL設計→Railsでは当たり前だよね!
• JSONによるAPI→XMLでも良いけどJSONが楽
STEP1: API設計• /api/v1/users.json
• 美しいURLを!
• apigee 社の資料(→)が神
• http://offers.apigee.com/web-api-design-ebook/
• TwitterとかのAPIを使うと様々な作法が分かる
STEP2: 基本仕様の策定• ユーザ認証はどうするのか?
• ユーザ名とパスワードを送ってトークン受け取る方式が良い。 oAuthとか
• → 端末に生パスワードを保存するのは悪
• SSLを使えよ!絶対!
• クライアント側の知識があると設計がよくなる
STEP3: iOSアプリ開発
• CocoaPods でライブラリを使いまくる→ Ruby界隈でいうGemのiOS/OSX環境版
• APIのaction毎にWrapperクラスのメソッドが1つあるようにすると綺麗に設計できる
キャッシュについて• ネットワークアクセスがないと何も表示されないのうざくね?
• → キャッシュの管理を自前でやるのは大変…
• Twitterクライアントとかどうしてるの?
• → 内部DBへの挿入
CoreDataへのキャシュ
サーバー
画面
iOSの世界
CoreData(端末内のDB)
考慮したいこと• 古いアプリをずっと使うユーザーがいるかも?
• APIの更新で旧アプリがバグる
• iOS7で状況は良くなった
• APIは解析される!
• → 中間者攻撃で通信は全部見れる → APIはセキュアに設計しましょう
Facebook/Twitterログイン• WebViewで認証するのはダサい
• Twitter: iOS5以上で対応
• Facebook: iOS6以上で対応
• iOS5のシェアも落ちたので 基本的にOSネイティブでOK
• トークンを受け取る形式のログインをサーバー側であらかじめ策定しておく
ライブラリ紹介とか
• AFNetworking ネットワークアクセスが簡単に書ける。 Authorizationヘッダの指定も基本仕様に存在
• RestKitRestfulなAPIアクセスを超簡単に書けるらしい(最近知ったので使ったことがない…)
宣伝• ベアテイル社 Dr.Wallet
• MAST休学中の学生が中心のベンチャー
• 僕はiOSクライアント側で参画
• レシートを撮るだけで家計簿がつくのは快感
蛇足: respond_to ってどうよ
• 同じコントローラでjsonもhtmlも返せる
• かえって分かりにくいことが多い
• →僕は使ってないです