こんにちは。
大体iOSとかインフラ周り開発担当のもぐめっとです。
この度firebaseを使ったサービス第一弾として、「mimicha – 匿名シェアチャットアプリ」をリリースしました。
そこで、構成やプッシュ通知の送り方とか、どんな感じで作っているのかの概要を説明していこうと思います。
※本記事はFirebase Advent Calendar2018 22日目の記事です。
21日目は@flatfisherさんの、Codelabで学ぶFirebaseとその先でした。
ラグナロク株式会社のサービス開発についてツラツラと書いていく予定
こんにちは。
大体iOSとかインフラ周り開発担当のもぐめっとです。
この度firebaseを使ったサービス第一弾として、「mimicha – 匿名シェアチャットアプリ」をリリースしました。
そこで、構成やプッシュ通知の送り方とか、どんな感じで作っているのかの概要を説明していこうと思います。
※本記事はFirebase Advent Calendar2018 22日目の記事です。
21日目は@flatfisherさんの、Codelabで学ぶFirebaseとその先でした。
どーも、Teccoです。
iOSの記事が書いてあったので、無言の圧力で今書いています。
Firebase関連は重複するので省略いたしますので、以下をみていただければ。
匿名型チャットmimichaを作った際に使ったiOSライブラリ19選
名前の通りチャットぽいUIが作れるもの。
カスタマイズもけっこうできるんですが、カスタマイズしまくるとそもそも自前で作った方が良かったかもってなるので、あまりにもいじる場合は自前で作っちゃっても良いかもです。
自動で挿入される日付のItemも一つのlistItemとしてカウントされてしまうので、そこらへんをいじるときには注意が必要です。
みんな大好きPicasso
imageUrl指定すれば良い感じで表示とかしてくれるライブラリで、Glideさんとよく比較される永遠のライバル。
実際はImageViewのextensionとしてメソッドを生やして、内部でPicassoを使ってます。
JsonをParseするためのライブラリ
これもよくgsonと比較されるが、おおざっぱに言うとgsonの改良版みたいなもので、Kotlinとの相性も良いので、gson大好き!って感じじゃなければMoshiでいいかな、と思います、たぶん。
丸いImageViewにしたいときに使うやつ
SNSやチャットだとImageViewを丸くしたいっていう要望がよくあるのでそうゆうときに使える。
もちろんxmlでImageViewのbackgroundを指定すればできるんだけど、動的に読み込んだりする時に丸のままいろいろいじったりできる(雑な説明)ので便利。
これもよくある角丸にしたいときに使うやつ
これも上記と一緒で角丸でいろいろ簡単にいじれるので、自前で作るよりだいぶ楽です。楽していきましょう。
AndroidのButtonはダサいのでそれっぽいボタンを作れるやつ
xmlでいろいろいじれるので、大体望むButtonはxmlで完結できるかと思います。
もちろん、Rippleエフェクトも対応しているので安心して使いましょう。
吹き出しっぽいView
これもググったらxmlで自前でできますが、それを簡単にできるので吹き出し使いたい場合は入れておくと楽なので導入しちゃいましょう。
メジャーなAnimationが簡単に書けるライブラリ
mimichaでいうと、何の意味もないですがフクロウ君をタップするとプルプル震えるようにしてます。
実装はカスタムビューで震えるImageViewを作って、それを配置することで使い回せるようにはしてます。
チュートリアルで使えるライブラリ
Viewを指定するだけなのでとても簡単で、スポットライトを当てつつdescriptionを追加できる説明用のライブラリ。
ライフサイクル的にViewが死んでる時に発動させてしまうと落ちるので、通信処理後のViewなんかで使いたいときとかは、少しだけ慎重に実装してあげましょう。
APIを楽に書かせてくれるライブラリ
iOSのAlamofireみたいな存在ですね。有名すぎてググれば大量に情報が出てくるライブラリなので説明は割愛します。
Http通信をスマートにできるやつ
こちらもRetrofitと同様有名なので特段の説明は省きますが、logging-interceptorを使うと良い感じでログれるので、開発時には入れておくと捗ります。
Reactive Programmingを実現するライブラリ
mimichaは全てKotlinなのでRxKotlinでも良かったんですが、なんとなく今回はこっち使いました。(次回はRxKotlin使うと思います
RxAndroidも併用してます。
AndroidのいろんなPermissionをまとまり良く書けるライブラリ
Permissionが断られた場合なども、分けてきれいに書くことができるのでとても重宝します。
バージョンアップによってメソッド名や仕様がけっこう変更されているので、昔から使ってる人は最新版のREADMEちゃんと読んで実装しましょう。
ImageViewの画像を良い感じに全画面表示できるやつ
ダブルタップで縮小・拡大や、ピンチインピンチアウトも標準でついているので、割とそのまま使えます。
ViewのVisibility操作で出し分けたり、DialogFragment使って出したりすればそれだけで十分使えます。
世界にはたくさんのライブラリがあり、その恩恵は計り知れないです。
パフォーマンスの関係で自前で実装したほうが良いという場合などもありますが、せっかく先人が作ってくれた便利なものはじゃんじゃん使っていきましょう。
現在はmimichaとは別の新規アプリを2,3個作り始めているので来年始めあたりに公開できると思いますのでお楽しみにー
こんにちは。
iOS開発者のもぐめっとです。
この度firebaseを使ったサービス第一弾として、「mimicha – 匿名シェアチャットアプリ」をリリースしました。
そこで使った技術やハマった箇所諸々を紹介します。
開発者ブログを開始します!
現在はAndroidはKotlin、iOSはSwift、WebはNuxt.js、サーバはFirebaseあたりを中心に開発しています。
細かいところや、詰まったところなんかを残していきたいと思ってるのでよろしくお願いいたします。
初ブログv( ̄Д ̄)v イエイ