ペット専用SNSアプリを支える技術と工夫など


ペットの写真や動画を投稿できる[ペットじまん](https://jiman.pet/)というサービスを作りました！

なんと今年(2020年)1月リリースから現在までに１万を超える投稿をしていただいています！
１万投稿までに行った工夫などを紹介できたらと思います！

- 2020年1月リリース
    - [Web](https://jiman.pet/)
    - [AppStore](https://apps.apple.com/jp/app/%E3%83%9A%E3%83%83%E3%83%88%E3%81%98%E3%81%BE%E3%82%93/id1494069672?mt=8)
    - [GooglePlay](https://play.google.com/store/apps/details?id=pet.jiman.production&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1)

# 画像
![petjiman_ios_android.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/160183/9827033c-3235-d383-5085-1cb98e36949a.png)

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/160183/74dad8e4-8be3-67c9-fff4-a04d48715b61.png" width="50%">

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/160183/439ad021-7205-5d43-30ec-802c0c51d7d8.jpeg" width="50%">

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/160183/78229558-7285-aedd-facd-e05fb88907de.jpeg" width="50%">


# できること

- 自分のペットを登録
- 画像の投稿
- 動画の投稿
- 商品のレビュー投稿
- 投稿に対していいね
- 投稿に対してコメント
- コメントに対してリアクション
- フォロー
- 検索機能

# 技術スタック
- サーバーサイド
    - [Ruby](https://www.ruby-lang.org/ja/)
    - [Ruby on Rails](https://rubyonrails.org/)
- フロントエンド
    - [Ionic](https://ionicframework.com/)
- インフラ
    - [さくらのvps](https://vps.sakura.ad.jp/)
        - リリース当初はAWS EC2を使用していたのですが、EC2は従量課金でかつ画像ありきのシステムなので、常に画像が投稿される
            - データ転送量が高くついた
            - さくらのvpsはデータ転送量無制限なので乗り換えた
    - [Apache](https://httpd.apache.org/)
    - [phusion/passenger](https://github.com/phusion/passenger/)
- データベース
    - [MySQL](https://www.mysql.com/jp/)
- Amazon Web Services
    - [Amazon S3](https://aws.amazon.com/jp/s3/)
        - 写真、動画を保存
    - [AWS Elemental MediaConvert](https://aws.amazon.com/jp/mediaconvert/)
        - アップロードされた動画をmp4に変換する
    - [AWS Lambda](https://aws.amazon.com/jp/lambda/)
        - S3の指定バケットに動画がアップロードされたら、そのファイルをMediaConvertでMP4に変換する
- Firebase
    - [Firebase Authentication](https://firebase.google.com/docs/auth?hl=ja)
        - ユーザー管理
    - [Firebase Cloud Message](https://firebase.google.com/docs/cloud-messaging?hl=ja)
        - プッシュ通知

# 工夫したところ
- 会員登録不要
    - 一般的にSNSは会員登録（ソーシャルログインなど）が必要ですが、とりあえず始めたい人のためにゲストログインを作った
    - 気に入った人は機種変更などに備えてソーシャルログインを促すようにした

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/160183/f60d94a7-2c29-e8fe-6c51-f56f71471226.png" width="50%">

- 画像に吹き出しをつけれる
    - ペットに感情の吹き出しをつけることによって他のペットSNSアプリと差別化できるようにした。
    - Railsで[CarrierWave](https://github.com/carrierwaveuploader/carrierwave)など画像アップロード系の実装したことがある人ならお馴染みの[ImageMagick](https://imagemagick.org/index.php)を使いました
 
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/160183/be362a34-9ca1-8aed-eb5a-5348a0d12fe6.png" width="50%">

- レビュー☆1対策
    - アプリホーム上部に問い合わせリンクをつけました
    - これで大体の苦情はアプリストア経由ではなくお問い合わせ経由できます

![スクリーンショット 2020-11-30 17.17.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/160183/461d033c-c19d-1522-ffe4-7c45258d93d1.png)

- コメントにリアクションがつけれる
    - slackのリアクションのようなものです
    - 返事するほどでも無いけど、見たよ的な使い方をしてもらってます
![スクリーンショット 2020-11-30 17.20.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/160183/1dd01fde-410c-1aed-c635-1406c6a8d15b.png)

# 課題
- 検索が重い
    - SQLのlike文で複数テーブルまたいで検索しているので重いです
    - 無料で全文検索実装するなら[algolia](https://www.algolia.com/)にしようと思っています（やるとはいってない）
        - [イケてる全文検索サービス「Algolia」を触ってみよう](https://qiita.com/tschy/items/eefbb3a0dc60cd11ab9a)
- 画像を遅延読み込みしていない

# SNSを作るに当たって参考にしたサイト
- [Cartune](https://cartune.me/)
    - 車好きが集まるコミュニティアプリ
- [LIPS](https://lipscosme.com/)
    - コスメクチコミアプリ

# SNSを作るに当たって１００回読んだ記事
- モチベーションをありがとうございます
    - [『CARTUNE』に学ぶ、全国の車好きが熱狂するグロース施策](https://careerhack.en-japan.com/report/detail/1014)
    - [「コミュニティの時代」をつくるMirrativ、LIPS、CARTUNEの3人にサービス立ち上げのコツを聞いてきたよ](https://note.com/ossam/n/nc9d87357d510)

# PS
- こっちに投稿したらlenovoもらえたかも
    - [個人アプリ/サービス開発の進め方と運用、得た学び 【PR】 Lenovo Advent Calendar 2020](https://qiita.com/advent-calendar/2020/lenovo_app)