![](https://habrastorage.org/storage2/f2b/dd3/506/f2bdd35066a308ffb2f0b4ad4e8d4074.jpg)
SellobyはTwitterスタイルのプライベート広告サービスであり、最初のAndroidプロジェクトです。 比較的少量のコード(8 KLOCを少し超える)にもかかわらず、Sellobyプロジェクトの実装中に、さらなる作業に役立つ多くの手法と方法論を試しました。 また、Sellobyは、ミニチュアではありますが、Twitterがどのように機能するかを感じる機会を与えてくれました。
このプロジェクトの主なアイデアは、Twitterの投稿などのシステム内のすべてのアナウンスが同種であり、クライアントが一連のフィルターを使用して、このストリームから関心のある情報を受け取ることです。
![](https://habrastorage.org/storage2/711/0e1/464/7110e146481aa999b3479f15101bed54.png)
フィルター
ほとんどの場合、ユーザーは特定の基準で選択された広告のみを必要とします。 たとえば、彼の都市と任意の1つのカテゴリから。 このために、都市とカテゴリによる検索機能が実装されています。 メイン画面のフィードには、3つの表示オプションがあります。
- すべての広告(フィルターが設定されておらず、都市が指定されていない場合)
- ハッシュタグは広告をフィルタリングします
- 都市固有の広告
![](https://habrastorage.org/storage2/4cb/33f/4c5/4cb33f4c54648430c29c172aaef8afef.png)
タグをハッシュするコツが1つあります。 価格については、値ではなく、許容可能な最大および最小価格が示されています。 これにより、サーバーロジックがさらに複雑になりました。正確な一致ではなく、間隔を入力することで、かなり大量のデータから選択する必要があったためです。 いつかバックエンド開発者がこれについて別の記事を書くと思います。
![](https://habrastorage.org/storage2/d57/fef/4c2/d57fef4c2a832a5395d76e35dcaa75c0.png)
現在の都市は、GPS座標によって自動的に決定できます。 これは、今後の開発で使用したチップの1つです。 サーバーには、集落の辞書があります。 簡単なWebサービスを使用して、そこに現在の座標を送信し、都市の名前とIDを取得します。 まあ、または村:)
クリエイティブとハッシュタグを作成する
もちろん、広告の表示に加えて、ユーザーは広告を作成できる必要があります。 広告の作成、つまりハッシュタグの使用において、SellobyとTwitterの主な類似点があります。 ハッシュタグは次のようになります。
- ! -アクション(たとえば、「!Sell」、「!Buy」、「!Rent」など)
- # -オブジェクト(「#電話」、「#車」、「#部屋」)
- @ -場所( "@モスクワ"、 "@ウファ")
- $またはルーブル記号 -製品、サービス、またはオファーのコスト
![](https://habrastorage.org/storage2/107/953/11c/10795311cdcbdd7465525fa3f1990194.png)
最後のタグ、コストについては、個別に話す価値があります。 現在のロケールに応じて選択されます。 システム言語がロシア語の場合、ルーブル記号が付けられます。 そうでない場合は、ドル記号を付けます。 各タグには、最も頻繁に入力される値の自動置換があります。
最大3枚の写真を広告に追加できます。 写真は、携帯電話のギャラリーからダウンロードするか、カメラから直接ダウンロードできます。 それから突然、アンドロイドにバグがあり、カメラによってカメラの動作が異なることが判明しました。 意図的に写真を食べてしまう人もいれば、一時ディレクトリに保存する人もいます。 この問題は簡単な回避策によって解決されました。
![](https://habrastorage.org/storage2/06e/423/968/06e423968ca899568280fe21b7fef057.png)
ハッシュタグと場所に加えて、各広告は数十個のカテゴリのいずれかに属し、それらは一緒にグループ化されます(商品、仕事、不動産、サービス、観光など)。
各広告はお気に入りに追加できます。これは、前に表示した広告に後で戻る必要がある場合に便利です。
ログイン
Sellobyは、独自のログインメカニズムに加えて、FacebookおよびTwitterを介した承認も実装しています。
最も困難なことは、Twitterを介して承認を与えることでした。当時は、そこに独自のSDKがなかったからです。 このため、承認を実行する特別なWebサービスを作成しました。 モバイルアプリケーションは、Twitterサーバーではなく、このサービスに接続します。 ところで、システムでの認証は必要ありません-ユーザー名とパスワードを入力せずに広告を表示できます。 Facebookと連携するために、 Facebook Android SDKを使用しました 。
図書館
このアプリケーションでは、 OrmLiteライブラリを使用してデータベースを操作しました。 これには、複雑なクエリのコンパイルとデータベースの変更にいくつかの困難が伴うため、次のプロジェクトではそれを放棄しました。 また、Androidアプリケーション用のIoCコンテナーであるRoboGuiceの別のライブラリが最良の側面を示し、Parcsisで開発されたすべてのAndroidアプリケーションでその使用が必須になりました。 PullToRefreshライブラリは、Twitterのようなリストを表示するために使用されました。
おわりに
Selloby for Androidの最初のバージョンは、2011年7月15日に公開されました。 現時点では、アプリケーションが完成しており、将来的に大きな変更が待っています。 ニュースをフォローしてください!