12
11

More than 5 years have passed since last update.

fablap(2013年2月で配信終了したアプリ)の構成メモ

Last updated at Posted at 2013-03-01

畳むことになってしまい、大変残念なので記念にメモ
もともとはNTTレゾナントが主催するchallengers
というビジネスコンテストで入賞したのがきっかけで、このアプリを作ることになった。
仲間と作ったので、思い入れも多分にある。

使用言語

iOS側

Objective-C

ネイティブアプリという要件だったので。

サーバ側

Python 2.7.3

直近のプロジェクトで使っていたこともあり、ノウハウが蓄積されていたのでPythonを使うことにした。

使用ミドルウェア

iOS側

sqlite

ユーザの画像情報やfab(お気に入り)した情報を保存するために利用していた。

サーバ側

AWS DynamoDB

今回のようなfabしたり、されたりするアプリは複雑なデータベース操作をする必要がない。
データの出し入れが素早く行え、かつメンテナンスフリーなAWS DynamoDBは今回の開発にはもってこいだと思い採用した。

実際、予想通り応答性もよくトラブルも無かった。

twisted

apnsへpush通知を行う為に使用した。
ちなみにInstagram のスケール正攻法を参考にした

apache 2.4.3

使い慣れていたので。ただそれだけ。

使用フレームワーク及びライブラリ

iOS側

nimbus kit

画像の非同期取得とカスタムしたツールバーにバッチを表示させるために使用している。

AFNetworking

直接は利用していないが、nimbuskitを使うためには必須。

Reachability

端末の通信状況を監視するために利用している。
実際監視せずにアプリを申請したらリジェクトされたw

fmdb

SQLiteとのやりとりで使用した。

Facebook SDK ver3.0.7

このアプリはFacebook認証が必須。
最初はバージョン3.1系のSDKを使っていたのだが、ユーザ使用している端末がiOS6の場合、認証の挙動が以前(Facebookアプリを呼び出してからの認証)と違うため、ユーザが認証を拒否することが多かった為、3.0.7にダウングレードしたという経緯がある。

サーバ側

Django 1.4.X

使い慣れている上、DyanamoDBを利用するためのライブラリが揃っていたため、使用した。

django-storages

ユーザの画像をAmazonS3へ送信する為に使用した。
ほんの数行プログラムを追加するだけで、簡単にS3へ送信することが出来る。

boto

DynamoDBとのやりとりで使用。
その他の用途としては、サーバの設定情報を全部boto.cfgに書いていた。これがとても便利。

bpmappers

端末とサーバ間でやり取りするデータの差異をbpmappersで埋め合わせていた。

Dynamodb-mapper

Dynamodbを操作する際、このORマッパーを利用していた。
botoで直接操作するより楽。

DynamoDB-Mock

その名の通り、Dynamodbのモック。
単体テストでDynamodb代わりに使用していた。

django-dynamodb-sessions

Djangoのセッション機能はDynamodbをサポートしていないため、このライブラリを利用する必要がある。

pyapns

apnsへpush通知を送信する為に使用していた。

facebook-sdk

FQLを発行する為に使用した。

その他

サーバ構成はAWS CloudFormationを使って自動構築するようにしていた。
作成する要素は

  • ELB×1
  • autoscaling
  • apiサーバ×1
  • DynamoDB×13テーブル

といった感じのシンプルな内容。

12
11
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
11