Viewfinder: フォトシェアリングアプリのソース25万行を公開

http://corner.squareup.com/2014/05/open-sourcing-viewfinder.html

1 comment | 0 points | by WazanovaNews 3日前 edited


Jshiike 3日前 edited | ▲upvoteする | link

Viewfinderは、プライベートソーシャルネットワークでの写真共有サービス。実際に利用したことはなかったですが、1年ほど前のTechCrunchの記事によると、Google出身者が立ち上げたサービスで、写真のタイムライン表示のUIなどに面白い工夫がされてて、当時はそれなりに注目されていたスタートアップだったようです。

同社は昨年末にSquareに買収されています。いわゆるAcqui-hiringと呼ばれる人材確保目的のディールだったようで、Viewfinderのサービスは現在休止され、チームはSquareの開発チームに入っています。

今回、Viewfinderのサーバ / Android / iOSのソースコード全25万行が、オープンソースとして公開されました。下記の概要に興味あればチェックしてみてはどうでしょうか。

  • サーバは、複数のインデックスオプション(secondary, full-text, geo)を備えたストラクチャードDBスキーマを持ち、Amazon DynamoDB上に構築されている。schema.pyindexers.pyを確認されたし。べき等性のオペレーションを実行する機能については、operation.pyを参照。
  • サーバは、DBとプロトコルレベルでのバージョン管理を提供。versions.py, message.py, json_schema.pyを確認できる。
  • 円形グラデーションを早く描くにはどうすればよいか?CoreGraphics, Corelmageも試したが、最終的にはOpenGLを利用したViewfinderToolを用意した。
  • iOSとAndroidのメタデータ保存にはLevelDBを使っている。CoreDataほど便利ではないという意見もあるが、iOSとAndroidでメタデータストレージのコードを共有でき、簡単で、早いのが気に入った。DB.hContentTable.hを確認されたし。
  • iOSのカメラロールで、重複もしくはほぼ同じような写真を検知するためにperceptual fingerprintの技術を使っている。ImageFingerprint.hImageIndex.hで確認できる。
  • モバイルで使えるフルテキストエンジンが欲しい?LevelDB上でコンタクトリストと写真を検索できるFullTextIndex.hをつくった。
  • XcodeのプロジェクトファイルとAndroidのビルドファイルを生成するのにGYPを利用。Xcodeプロジェクトファイルのコンフリクト解消とiOS/Android間での大量のコードの共有に役立った。
  • C++テンプレのメタデータプログラミングについては、C++メソッドから自動的にJavaメソッドのシグニチャを計算するC++11 variadic templateを利用しているJNIUtils.hを参照されたし。

#square #オープンソース #viewfinder #python #leveldb

Back