phpカンファレンス関西2011/スマートフォン時代のwebシステム
TRANSCRIPT
スマートフォン時代のWebシステム
株式会社フィードテイラー熊倉洋介
2011-04-02
自己紹介
熊倉洋介 / kumatch
所在地 大阪市北区
事業iPhone・iPad・MacOSX アプリ開発これらに付随するWebシステム開発
iPhone・iPadアプリ 企画コンサルティング
従業員 5名
理念 まだ世にないモノを開発・提供して世界を変える
特徴Objective-C暦8年のエンジニアが在籍社内の開発環境は全て基本MacOSX
直近の実績
路線図アプリ「まるごと路線図」(ヴァル研究所様 iPhone/iPad無料App総合1位)
天気予報アプリ「そら案内 for iOS」(弊社&日本気象協会様 iPad無料App総合1位)
ニュースリーダーアプリ「livedoor News」(ライブドア様)
ポッドキャストアプリ「きくカネ?」(ソニー銀行様)
ポッドキャストアプリ「こちカブ」(ラジオ日経社様)
株式会社フィードテイラー
公開終了アプリ実績数 : 60以上
アジェンダ•そら案内
•天気予報アプリケーション
• SyncBoard
•サーバ連動型ドキュメント共有アプリケーション
×
そら案内 for iOS
一般財団法人 日本気象協会
公開1ヶ月半で30万ダウンロード
Sources
CreatesJSON files
JSON
Request
JSON files
https://www.url.com/iphone
Page title
•2150 sources/notice
•100ms-800ms / source
•350,000 Requests/day
•Over 15,000 Requests/hour
•AM 7-8, PM 10-12
サーバ連携型のドキュメント共有アプリケーション
クライアント側に同期され、オフラインで閲覧可能
ユーザ管理・グループ管理により適切な範囲に配布される
営業部 企画部
営業部 営業部 & 企画部 企画部
ドキュメント管理者upload
downloaddownload download
オンラインストレージセキュリティ監視
打ち合わせの資料の共有
upload
downloaddownload download
•Linux (CentOS)
•Apache
•MySQL
•PHP
•ユーザ認証
•ドキュメント同期
•ドキュメントツリー
•ファイルデータ
•クライアント通知
•HTTP
•Resource
•Method
• Status Code
REST
•産創館の場所
•今日のカンファレンスのプログラム
•この発表の生放送動画
REST - Resource
• http://goo.gl/maps/3svI
• http://phpcon.php.gr.jp/kansai/program/
• http://www.ustream.tv/channel/phpcon-kansai
REST - Resource
REST - Resource
http://api.twitter.com/1/statuses/home_timeline.xml
•GET
• POST
• PUT
•DELETE
REST - Method
• 200 OK
• 401Unauthorized
• 404 Not Found
• 500 Internal Server Error
REST - Status Code
PHPで使うURL Routing
ex. /users/{username}/bookmarks
GET POST
PHP class Bookmarks Bookmarks
PHP class method index() add()
args $username $username
PHPで使うURL Routing
PHPで使うURL Routing
ex. /users/{username}/bookmarks
GET POST
PHP class Bookmarks Bookmarks
PHP class method index() add()
args $username $username
SyncBoardRESTによる応答
• JSONによるドキュメントの構造情報
•ドキュメントファイル
•エラーコードによるハンドリング
スマートフォン:主役サーバ:裏方
まとめ•そら案内
•解析済み静的ファイルによる通知
• SyncBoard
•REST アーキテクチャの採用
•スマートフォン向けのサーバは裏方として
PHPでRESTを組んでわかったこと株式会社フィードテイラー
熊倉洋介
2011-04-02
PHP Requests
• $_GET
• $_POST
• $_FILES
REST Requests
PUT /api/events/42Content-Type: application/json
{"name":"PHPカンファレンス関西","date":"2011-04-02"}
REST Requests
$body = file_get_contents('php://input');
認証
•BASIC Auth
•Cookie Session = NG
•Challenge Token (ex. oauth)