rails with ios app

Post on 11-Sep-2014

1.716 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

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も返せる

• かえって分かりにくいことが多い

• →僕は使ってないです

top related