Facebook Night Vol.8に参加してきました!

>

Facebook Night Vol.8に参加してきました!

当日のUstはこちら→http://www.ustream.tv/recorded/24212942
◯公開されている資料
面白法人カヤック HTMLファイ部所属 溝上篤司様
個人でFBアプリを作るメリットとよくある詰まりそうな箇所

スライド内「SearchWall」
ソースコード→https://github.com/AtsushiM/Facebook-WallSearch

以下お話を聞きながら取ったメモです。全て網羅出来ていません。
詳細まで知りたい方はUstでご覧ください。

ビルコム株式会社 ビルコム株式会社 竹馬 力様

Twitter:@tchikuba

Facebook:https://www.facebook.com/tchikuba

今回話すこと:
Facebookアプリ開発の成功要因・考えを話す

◯テーマ
・Facebookの今までの対応
・開発プロセス(PHP)
・苦労話
・新サービスの紹介
・まとめ

ReBuyというFacebook上にショップをもてるサービスを開発
→ReBuy(http://www.rebuy.jp/)

◯開発環境
サーバー:niftycloudでLAMP+nginx
フレームワーク:zend,jquery(mobile)
SCM,BTS: Subversion, Backlog
CI: capistrano+jenkins

◯FB関連対応の紹介
■ OAuth2.0認証への対応
■ オープングラフ対応

・OAuth2.0への対応
req_permsがscopeへの変更
javascript SDK scopeへ変更

・オープングラフ対応
AppNamespace を設定する
ActionsとObjectsを設定

ツール→Debugger でOGP設定などの確認が出来る
Facebook Debugger(https://developers.facebook.com/tools/debug)

◯FBアプリ開発上のTips
nginxは静的ファイル, apacheは動的コンテンツを返すようにした
apacheにmod_rpafを追加してIPアドレスを取得・ログに

Capistrano

Rails発祥
面倒なリリース作業を1コマンドでリリース完了するツール
PHPプロジェクトでもデプロイを自動化

PHPUnit
テストは極力自動化
・単体試験PHPUnit
・結合試験:Selenium
・ユーザーテスト:仕様確認

Jenkins
構築中。Phing連携で構築中

Backlogの有料版利用

◯苦労話
途中でPHP-SDKを変更
ReBuyで作ったボタンにFB.uiのコールバックがFacebookのバグで消えた

◯まとめ
FB仕様変更への最終兵器
FBドキュメントへの最終兵器

最終兵器
リーンスタートアップ
リーン開発

開発チームの国際化
開発チームの多様性
・インド法人を立ち上げた!

ザワット株式会社 鈴木 伸明様

ウィッシュスコープの裏側全部見せます!!
Twitter:@nobuakysuzuky

Facebook: https://www.facebook.com/nobuakysuzuky

wishscope(http://www.wishscope.com/)開発

◯開発環境
linux/apache/mysql/php

・iPhoneアプリ
objective-c

・Android
java

AWSの使用

◯smartphoneは大変(Webアプリ)
スマホユーザーはネイティブアプリの体験を元にサービスの良し悪しを判断しているため、なかなか難しい。

・転送量の削減
html,css,javascriptをミニファイド+gzip
html5のlocal database,cache manifestを有効活用

・httpリクエストの削減
css,javascriptなどの外部ファイルをまとめる
画像ファイルをbase64化しcssとして持たせる

・表示遅延を起こしやすいjavascriptのDOM操作による画面表示を廃止
・javascriptの利用範囲をユーザトリガーのアクションに限定

表示動作速度 ネイティブ>Web
仕様変更速度 ネイティブアプリ<Web
Webアプリとの整合性の担保が難しい
アプリのバージョンアップをしてくれない
→ネイティブアプリのバージョンごとにAPIの管理をする必要がありコストがかかる
なのでまずはWeb版で実験。半年間テストをしてネイティブアプリとしてリリースした

◯高負荷対策
1,同時リクエスト数の見積り
過去の露出実績から同時リクエスト数を想定

2.サービスの特性把握
サービスで主要な3つのアクションを選定
→全てのAPIが使われることはないので限定して選定

3,負荷試験実施
1で想定している同時リクエスト数を2のアクション1つずつに対して行う

4,ボトルネックの特定とチューニング
ブレークポイントを設けることでボトルネックを効率的に把握出来る
ミドルウェアの設定チューニング、プログラムのチューニング、SQLチューニング
→1インスタンスで想定したリクエスト数をさばけるかどうかのテスト

5,インフラ構成を決定

6,サーバリプレイス

◯高負荷対策、その前に

・mysqlのslow query logが出力されるように設定をする
・apacheのlogformatに%tが出力されるように設定する
→高負荷対策を剃る前にまずはここを見直す

iOSアプリディベロッパー、Windows8アプリディベロッパー募集中!!
2012年9月第2回ハッカー道場開催予定

◯Tips
良質なFacebookアプリはFacebookアプリケーションマーケットApp CenterにFacebook公認で掲載される

OpenGraphでネイティブアプリから「いいね」の実行が可能に。

モバイルとの連動がよい
・RequestDialog
Push通知で通知→Facebookを開いてアプリをインストール出来る

・OpenGraph
タイムラインでOGのフィードをタップ
アプリのインストール画面へ

iOSやAndroidのネイティブアプリはSSOを利用すべき

ここらでメモ力尽きましたw
これ以降のお話を聞きたい方はUstで!(http://www.ustream.tv/recorded/24212942)

とても参考になるお話、ありがとうございました!!
個人的にはWebアプリでどう対策すべきか、の部分はとても参考になりました。

まだまだ新米エンジニアですが頑張っていこうと思えました!

何か問題や質問等あれば以下のコメント欄、またはリプライ(@DAI199)までお願いします。