TL;DR
SlackのチームをまたいだChannelの切り替えが簡単にできるiOSアプリを作りました。
AppStore: MultiTeam for Slack
なんで作ったん?
- Slackで7つのチームに入ってて、うち4つは今もアクティブ
- 基本家でも会社でもPCでSlack使ってるから、iPhoneアプリは出先でぱっと見てぱっと返す用途にしか使ってない
- 本家のアプリやと、ぱっと見ようと思った時にチーム切り替えんのがめんどい
- 昔:
- 右上の
...
ボタンをタップ -
Switch Teams
タップ - 目的のチームをタップ
- 左上のSlackアイコンをタップ
- 目的のChannelをタップ
- 右上の
- 最近(昔から?):
- 目的のチームまで3本指スワイプ(スワイプした先がどのチームかわかりにくい・・・)
- 左上のSlackアイコンをタップ
- 目的のChannelをタップ
- 昔:
- そうじゃなくて、Facebook Messengerみたいに全チームのChannel一覧を出して欲しい
- そしてFacebook Messengerみたいに新着メッセージがあるChannelを上にもってきて欲しい
- そういうアプリ誰か作ってるやろー300円ぐらいやったら買うのにーと思ったらなかったから作った
どんなん作ったん?
- Facebook Messengerみたいに全チームのChannel一覧を出す
- そしてFacebook Messengerみたいに新着メッセージがあるChannelを上にもってくる
- こんな感じ
- メッセージを読み書きする画面も極力本家に合わせて違和感ないように
これで、チームをまたいだChannelの切り替えが、
- 左上の
Channels
ボタンをタップ - 目的のChannelをタップ
で済むようになりました。しかも大体は上の方(もしくは一番上)にあるChannelに行きたいから探すのも楽。
せっかく作ったから小遣い稼げたらいいなと思って、
- 無料で使えるけどチームは3つまでしか追加できない。バナー広告あり。
- 360円のアプリ内課金をすると、チーム数無制限&広告なし。
っていう風にしてます。
とりあえず自分で使えるレベルにはなったのでリリースしましたが、まだまだ細かいところで使いにくい部分はあるので(現時点でTrelloのTODOが26個・・・)、ちまちま直してはアップデートしてます。バグ報告とか機能要望とかこちらのコメントでいただけたら嬉しいです。
おまけ
利用している主なライブラリ
- OAuthSwift: Slackログインを実装するのに利用。
- SlackKit: Slack APIのラッパーライブラリ。がっつりプルリク送った。
- TTTAttributedLabel: メッセージのUILabelのテキストの一部をhtmlのaタグみたいにリンク化するために利用。
- KMPlaceholderTextView: UITextViewに簡単にplaceholderを実装するためのライブラリ。Storyboard上でplaceholderに表示する文字と文字色を設定できるのが地味によい。
こぼれ話
- 最初SlackMessengerっていう名前で申請したらさすがにリジェクトされた
- SlackのOAuthの部分で審査通すのに苦労した。
- 最初はOAuthのログインページを外部Safariで表示するようにしてたら、In-app Safariを使えって言われた
- In-app Safariに変更して再申請したら、今度は「SlackのPriceページが開けちゃう。appleを通さない課金システムへの動線はアウト。」って言われた。そんなん言われてもそのページ使わなSlackログインできひんし・・・と思って、他におんなじことしてるアプリを引き合いに出したりして戦ったけどあかんかった。
- 結局In-app Safariも諦めて
OAuthWebViewController
を継承した自前のWebViewController
を作って、Slackの料金ページを開くとアラート出してWebView閉じるっていう処理を入れたらやっと審査通った