• Save
SnapDishの事例
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,565
On Slideshare
1,556
From Embeds
9
Number of Embeds
3

Actions

Shares
Downloads
0
Comments
0
Likes
4

Embeds 9

https://twitter.com 7
https://si0.twimg.com 1
http://geechscamp.lovepop.jp 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

Transcript

  • 1. SnapDish 料理カメラ 事例 PyCon JP 2012 - 9 - 15 ヴァズ株式会社 - Vuzz Inc. 清田 史和 - Fumikazu Kiyota @kiyotaman
  • 2. 自己紹介• 名前と歳:清田史和 36歳• Twitter: @kiyotaman• 現在:SnapDish 料理カメラ開発者• 特技:日々コーディング• 過去:livedoorでwebエンジニア
  • 3. もくじ• SnapDishって?• SnapDishの設計・開発関連• 今後について(時間があれば)• 質疑
  • 4. SnapDishって何よ?• 料理を簡単においしく撮る 「料理カメラ」• お料理がもっと楽しく、もっと便 利でおいしくなる 「ソーシャル・クッキング・サービス」• iPhone と Android で利用可能!
  • 5. 今、どんな感じ?• リリースから約1年とちょっと• ユーザーに結構 楽しんでもらえている• 比較的 料理好きな女性が多い• 各地で オフ会なども盛ん
  • 6. 実際こんな感じ 料理写真画面上でこんな感じで交流してます。 結構反応があって 盛り上がってます。
  • 7. 私のiPhoneで中を 覗いてみます。 しばしお待ちを。
  • 8. 何が楽しいの?もぐもぐ❤
  • 9. 大切な人がいたら もぐもぐ❤ してあげてください。 もぐもぐ❤ もぐもぐ❤もぐもぐ❤ もぐもぐ❤ もぐもぐ❤ もぐもぐ❤ もぐもぐ❤ もぐもぐ❤
  • 10. 現在• DL 40万以上• 投稿数120万以上• もぐもぐ数500万以上• 1時間ピーク400投稿以上
  • 11. じゃぁ SnapDish って どうなってる?
  • 12. 姿勢未解決の問題を解決をする!で、そのためには、 • オリジナルであり、 • 世界最高品質を目指し、 • 世の中がちょっとよくなることをするで、新しい価値が生まれる
  • 13. 設計ユーザーになりきって 構成書を作る
  • 14. 設計ツールオムニグラフOmniGraffleで、できるだけ細かく丁寧に動作は、赤字で説明
  • 15. 時々、手書きもする手で書いてみる なれたら利用頻度は減るB4 Project Paper
  • 16. 気をつける事サービスの成長とともにニーズが 少しづつ変化するので 仕様は常に動くかんたん てがる じゅうなん
  • 17. 開発スタイルとマインド• デザイン主導• issue 駆動• ネイティブ• 実機確認• 細部にこだわる• ユーザー目線
  • 18. デザイン主導みためが相当大切
  • 19. issue 駆動 issue 単位でタスク管理
  • 20. ネイティブ細かいニーズに答えるには、 ネイティブで書く それが一番 もしくは、自分のフレームワークを作る
  • 21. 実機確認ユーザー目線に立つために、ユーザーが使っている者で できるだけ確認
  • 22. 細部にこだわる ユーザー目線を大切にすると、結局、何度も何度もコードを書き換え、 細部にまでこだわりたくなる
  • 23. ユーザー目線 ユーザーになりきる どうやって?ユーザーがやっていることをやる アプリを使うやおや、スーパーに行って食材を買う キッチンで料理を作る 食べてもらう
  • 24. 隣同士仲良く座ってコミニュケーションをとりやすくする 書きながらコミュニケーション 机 紙 机 私 ボス
  • 25. 開発の流れ・構成書ベースに開発・要望やリクエストなどは Yammer・開発の管理は github の issue
  • 26. デバッグ・要望などの情報 Yammer に #hash 付きで、       どんどんなげてもらう  (#hash 例)   #i iPhone 関連   #a Android 関連   #hash の数は数個にする
  • 27. 開発者がフィルター  ・対応できるものは、すぐ対応してレスする・それ以外は、 必要に応じて開発者が   github の issue にエスカレーション github の issue は開発者のタスク管理用 milestone label を使って管理 issue と code commit は #issueid で紐づける
  • 28. 社内多種多様な大量のリクエスト Write UnRead Yammer + #hash ログ流れる Write Read アウトプット 開発者後で復活の可能性も Ignore エスカレーション To Do Yummer で github issue 消化
  • 29. その他開発のツール• わからない時は、stackoverflow、ggl• iPhone xcode と vi が開発環境• Android は Eclipse を利用• Android は mat を使ってProfiling• iPhone は testflighのsdkを使ってデバッグ• xcode の profiler も使っている• 画像処理は OpenCV を利用
  • 30. m(_ _)mPython の話がまだでした。。。
  • 31. システムについて・インフラ AWS・DB MongoDB・Application Nginx+Memcached+Tornado
  • 32. Route 53CloudFront EC2 S3 SESCloudWatch などオペレーションBoto を利用
  • 33. BotoBoto (ボト?)は Python で書かれた、 AWS の管理ライブラリ#!/usr/bin/env python# SnapDish AWS Admin Toolsimport boto.ec2.elb as elbimport boto.ec2.cloudwatch as cloudwatchfrom boto import ec2, connect_cloudfront
  • 34. Boto ができる事 いろいろです。 調べてみてください。
  • 35. ReplicaSet GridFS GeoIndexGridFS - 料理画像とユーザー画像S3 - プロフィールカバー画像GeoIndex - 食べた場所 (Foursquareのデータと名寄せ)
  • 36. ・Nginx Upstream Fairで Tornado の プロセスをロードバランス・Nginx GridFS で MongoDB GridFS から直接 画像取得し Nginx 側で Image のリサイズをし、 CloudFront の OrginFetchに ttl 3hぐらいで返す・Tornado では pymongo を使って、 MongoDBに接続
  • 37. TornadoTornado (トルネード)は Python で書かれた、 (Non-Blocking) Web Framework #!/usr/bin/env python tornado.options.parse_command_line() http_server = tornado.httpserver.HTTPServer(Application()) http_server.listen(80) tornado.ioloop.IOLoop.instance().start()
  • 38. PymongoPymongo (パイモンゴ)は Python で書かれた、 MongoDB のドライバ #!/usr/bin/env python from pymongo import ReplicaSetConnection from pymongo import ReadPreference con = ReplicaSetConnection(host, replicaSet=repl)
  • 39. Tornado + マルチポスト 同時投稿は、 @tornado.web.asynchronous と MixinBase, MixiMixin, FlickrMixin, TumblrMixin, TwitterMixin, FacebookMixin, など
  • 40. SnapDish with Python Python で基本的な事は全てできる
  • 41. トラフィックの調査方法• Google Analytics SDK (iPhone / Android)• AWS Cloud Watch
  • 42. 今後の課題• マルチポスト• 画像データの管理• DBの分散• キャッシュコントロール• インフラ運用
  • 43. 展望と戦略と課題• Python押し• 海外戦略• アジア展開• ビジネスモデル
  • 44. ご清聴ありがとうございました。 もぐもぐ❤