Subway Tooter blog

Androidアプリ「Subway Tooter」の説明/宣伝用のブログ

1.8.3から1.8.6までの新機能。tootsearch対応。内蔵メディアビューア。

1.8.3から1.8.6までの新機能

1.8.6 (試験実装)アプリ設定/添付メディアに「内蔵メディアビューアを使う」を追加
1.8.4 サイドメニュー/トゥート検索 に tootsearch を追加
1.8.3 アプリ設定に「添付メディアの最大バイト数」を追加

tootsearch対応

Subway Tooter のトゥート検索はマストドン検索ポータルさんのAPIを利用させて頂いていたのですが、マストドン2.0のインスタンスに対応していない?ようで困っていました。何が困るってアプリ名で検索して要望や不具合を収集するのがつらかった。
tootsearch からAPI利用の許可をもらえたので、Subway Tooter 1.8.4 からトゥート検索カラムの種類を増やしました。ありがたや…

内蔵メディアビューア

他のクライアントだと割と普通にあった、内蔵メディアビューアをついにSubway Tooter でも導入しました。

  • デフォルトでは無効です。「アプリ設定/添付メディア/内蔵メディアビューアを使う」から有効にできます。
  • 静止画の場合はピンチ操作でズーム、左右フリックで前後の画像に移動
  • GIFV(音声無し動画)の場合はGIFVの自動ループ。(前後のデータに移動するのは画面下の矢印ボタン)
  • DownloadManagerを使ったダウンロード
  • URLをブラウザで開いたり共有したりクリップボードにコピーしたり

とまあやりたいことは大体できる感じになっています。

f:id:tateisu:20171222120323j:plainf:id:tateisu:20171222120331j:plainf:id:tateisu:20171222120340j:plain

1.5.6から1.8.2までの新機能。リスト機能

しばらくblog更新をサボってましたがアプリの方はそれなりに更新していました。
マストドン本体の新機能への対応を粛々と行っています。Subway Tooter 独自の新機能はとくにありません。

以下は新機能のリストです。

1.5.6 カスタム絵文字の表示
1.5.7 カスタム絵文字のAPNGアニメーション
1.6.0 絵文字データをiamcal/emoji-data と twitter/twemoji 由来のものに変更
1.6.1 絵文字とカスタム絵文字の入力補完
1.6.1 アカウント設定に「サーバタイムアウトを通知しない」を追加
1.6.4 絵文字ピッカー
1.6.6 某タンスのプロフィール絵文字の表示
1.6.7 アプリ設定に「カスタム絵文字をアニメーションしない」を追加
1.6.7 会話ビューでoEmbedのカードを表示する
1.6.9 アプリ設定に「絵文字コードの手前に空白以外の文字があっても変換する」を追加
1.7.0 添付メディアに説明文を指定できます。指定した説明文はTL中に表示されます。
1.7.5 ユーザのmoreメニューに「ユーザからのブーストをホームに表示しない」を追加
1.7.6 サイドメニューに「リスト」を追加。新しいカラム:リスト一覧、リストTL、リストユーザ
1.7.8 ミュート操作時に「通知もミュート」するか選べる
1.7.9 引っ越しされたアカウントのプロフ表示とフォローボタンの挙動を変更
1.8.1 ユーザをリストに登録する際に、他のリストに登録済かどうか分かるようにした
1.8.2 疑似アカウントでも公開TLのストリーミング受信を行う

リスト機能

マストドン2.1からリスト機能が追加されました。
フォローユーザの一部をリストに登録して、そのユーザのみのタイムラインを表示する機能です。
(Twitterと違って)マストドンではリストに追加できるのはフォロー済のユーザだけです。

公式WebUIのリスト追加操作は少し不便さが目立ちます。

  • 未フォローのユーザを直接リストに追加する動線がない
  • いちいち検索しないといけない
  • あるユーザが複数あるリストのどれに登録済か分からない

そこでSubway Tooter では公式Webとは異なるリスト管理UIを用意しました。
(ただしSubway Tooter 1.8.1以降とマストドン2.1.0rc4以降のインスタンスの組み合わせでないと機能しません)

任意のユーザのコンテキストメニューから「リストに追加/削除…」からダイアログを開くと、対象ユーザのリスト登録状況がひと目で分かるように表示されます。

f:id:tateisu:20171214091547j:plain

Subway Tooter では「フォローしてリストに追加」を簡単に行えるようにしています。
まだユーザをフォローしていないことを示すエラーがリストAPIから返ってきた際に、STは「フォローしてリストに追加」を提案します。
フォロー処理がサーバ側で進行中の間はこの処理は失敗しますが、簡単に手動でリトライできます。

f:id:tateisu:20171214091559j:plain

1.0.9から1.5.5までの新機能。自動CW。

しばらくblog更新をサボってましたがアプリの方はそれなりに更新していました。

以下は新機能のリストです。

1.0.9 (読み上げエンジンが対応しているなら)トゥートごとに音声をランダムに変更する
1.1.0 通知を個別に削除できる。会話ミュート。
1.1.1 アカウントのアクセストークンを手動入力できる。
1.1.2 名前を引用。
1.1.3 通知のカラム設定に(ブースト/お気に入り/フォロー)を表示しない設定を追加
1.1.4 カラム設定でAcctと本文の文字色を変更できる。GIFアニメを表示する設定。
1.1.8 メンションのインスタンス名部分を省略しない設定。
1.1.9 トゥートの公開範囲をTL中に表示する。プロフィール編集
1.2.1 インスタンス情報。相対時刻表示。
1.2.3 トゥートにNSFWが指定されていたかどうか開閉状態に関わらず分かるアイコンの表示。Android Oの通知スタイル設定に対応。
1.2.4 某タンスのアンケートに投票できる。
1.2.6 某タンスのアンケートを作成できる。
1.2.7 簡易投稿バーでも改行できる設定。
1.2.8 自動的に長文を隠す設定。
1.3.2 タイムラインのフォント(太字部分)を設定可能。
1.3.3 マストドン1.6の固定トゥートに対応。
1.3.7 TL中のアバターアイコン表示のサイズ変更。ローカルユーザのAcctのインスタンス部分を表示しない設定。
1.4.2 プル通知のチェックでタイムアウトが出たら死んだタンスかもしれないので警告を表示する。
1.4.3 トゥート中のハッシュタグをタップした時に引用できる。
1.4.4 某タンスには対応しないことにしました。
1.4.5 マルチウィンドウで非アクティブ状態でもストリーム受信を継続するようにした。
1.4.9 投稿の公開範囲の指定に「Webアプリの設定に追従する」を追加。インスタンス情報のカラムにユーザ数などの指標を表示する。通知カラムじゃなくても自分のトゥートなら「会話をミュート」できる。
1.5.0 添付メディアの送信前にMIMEタイプを検証する。
1.5.1 「別アカウントでお気に入り/ブースト/返信/フォロー/プロフ/メッセージ」のアカウント選択ダイアログで同タンスのアカウントを先頭に表示する。
1.5.5 インスタンス情報カラムにインスタンスのサムネイルを表示する(マストドン1.6.1以降)。

自動CW

中でも実装してみて良かったと思うのは、1.2.8以降で追加された「自動的に長文を隠す」設定です。
TLに急に長文が出るとスクロールするだけで大変ですが、自動CWを有効にすると適当に端折って表示します。これが思った以上に快適でした。

あと実装時の副次的な効用で、CWを開閉した時にテキストが全部表示されないことがあるバグがほぼ消滅しました。

(v1.0.8)URLの引用、ニコる対応

Subway Tooter 1.0.8 をリリースしました。

URLの引用

  • コンテキストメニューに「URLの引用」を追加しました。トゥートやアカウントのURLを引用した投稿を作成できます。

ニコる対応

インスタンスのカスタム絵文字とお気に入りボタンに対応しました。
ただし絵文字は回転しませんし、お気に入りのテキスト表記は「お気に入り」のままです。

(v1.0.6) ユーザ別通知音

「…」メニューから「通称と色と通知音」で通知音を指定すると、そのユーザから発生した通知イベントの音が変わります。 大事な相手や面倒そうな相手には特別な通知音を設定すると便利かもしれません。


お手持ちのmp3やoggファイルなどを通知音に指定したい場合は既存の通知音カスタマイズアプリをご利用ください。
(例) 着メロメーカー https://play.google.com/store/apps/details?id=com.herman.ringtone

(v1.0.2) 簡易投稿バー

Subway Tooter 1.0.2 をリリースしました。

簡易投稿バー


アプリ設定に「投稿/簡易投稿バーを表示」を追加しました。
有効にするとメイン画面でTLを見ながら投稿文を入力できます。
18:9端末などでご利用ください。

Everything is column

Subway Tooter では「サーバから情報を取得して表示する」全てのビューをカラムとして扱います。
ホームやTLはもちろん、ユーザプロフィールも会話ビューも検索もハッシュタグTLもミュートユーザ一覧もフォローリクエスト一覧もカラムです。

カラムは複数追加できて自由に並べ替えできて、好きなタイミングで他のカラムに切り替えられます。明示的に閉じるまではアプリを再起動しても残っています。

WebブラウザのタブやEmacsのバッファと同じくらい一貫した操作性と利便性を提供します。 Everything is column.

別アカウント操作

タイムラインを見てて「あ、これ別のアカウントでファボりたい」と思ったことはありませんか?

Subway Tooter は「別アカウント操作」を積極的にサポートしています。
「マルチアカウント対応」を謳うクライアントなら当然できて然るべきことです。

トゥートに対する別アカウント操作
  • 別アカウントでお気に入り
  • 別アカウントでブースト
  • 別アカウントで返信
  • 別アカウントで会話ビューを開く
  • 疑似アカウントで会話ビューを開く。(1.2.2から)
ユーザに対する別アカウント操作
  • 別アカウントでフォロー
  • 別アカウントでメッセージを送る
  • 別アカウントでプロフを開く
制約によりできないこと
  • 疑似アカウントでプロフを開く。ユーザアカウントの取得やユーザによるトゥート一覧の取得のAPIにはアクセストークンが必要になるため、疑似アカウントではプロフを開けません。

もし何か他にも便利そうな操作を思いついたら教えてください。可能なら実装します。

タイムラインのフィルタ

Subway Tooter はタイムライン表示をカラム設定でフィルタすることができます。

「添付データあり」

この項目をONにすると添付データのあるトゥートだけがタイムラインに表示されます。
インスタンスの「メディアタイムライン」とほぼ同じことを、どのインスタンスでも実現可能です。
ただし動作は結構重いです。

「ブーストを表示しない」「返信を表示しない」

ホームTLではブーストや返信の非表示設定が可能です。

「すべての画像を隠す」

添付メディアのサムネイルをNSFWと同じ状態にします。
ただし既に開閉したサムネイルには効果がありません。最後に開閉した時の状態を覚えています。

正規表現フィルタ

指定した正規表現にマッチしたトゥートを非表示にします。

正規表現のサンプルは #正規表現フィルタ などのハッシュタグを参考にするとよいでしょう。

Subway Tooter グッズの紹介

Subway Tooter のグッズを BOOTH で販売中です。

  • Subway Tooter マスキングテープ 25mm幅 \1650円+送料 (オンデマンド生産)
  • Subway Tooter マスキングテープ 15mm幅 \1250円+送料 (オンデマンド生産)
  • Subway Tooter ステッカー 16cm \260円+送料 (在庫50)
  • Subway Tooter ステッカー 10cm \180円+送料 (在庫45)

↓10cmと16cmのステッカー。

↓16cmステッカーはかなり大きいです。

↓マスキングテープ。

(v1.0.0) 重複チェックヘッダを付与しない / バグ修正

Subway Tooter v1.0.0 をリリースしました。

正式版?

このアプリの場合は 1.0.0 といっても正式版とかメジャーアップデートとかそういうセマンティックバージョン的な意味合いは全くなく、単に100回目のリリースってだけです。

  • versionCode=100
  • versionName="1.0.0"

つまり versionCode をドットで区切っただけだった!

100回リリース達成!

これがゲームならなんか実績解除されて強くなりそうですが、現実にはそんなことは特にありませんでした。

重複チェックヘッダを付与しない

Subway Tooter はデフォルトで投稿時に「Idempotency-Key」ヘッダを付与して同一内容の連投を防止するようになっています。回線状態や操作ミスなどでの連投を防止するのが主な目的です。

重複チェックヘッダを付与しない」を有効にするとこのヘッダを付与しなくなります。連投がしたい人には嬉しいかもですね。

バグ修正

v0.9.9 で追加されたフォントサイズ設定を行うと、簡略表示でタイムラインが表示されなくなるバグを修正しました。

(v0.9.9)通知音の選択 / フォントサイズの調整

Subway Tooter v0.9.9 をリリースしました。

通知音の選択

アカウント設定で通知音を選択可能です。

お手持ちのmp3やoggファイルなどを通知音に指定したい場合は既存の通知音カスタマイズアプリをご利用ください。

(例) 着メロメーカー https://play.google.com/store/apps/details?id=com.herman.ringtone

フォントサイズの調整

アプリ設定でタイムラインのフォントと Acct/時刻のフォントのサイズを調整可能です。
数値の単位はsp(scale-independent pixel)です。 sp と実際のピクセル数の関係は、端末設定の「文字の大きさ」の影響を受けます。
空欄にするとデフォルトの大きさ(14とか12とか)に戻ります。

選択してコピー

Subway Tooter はトゥートのテキスト等を「選択してコピー」画面から扱うことができます。

わざわざ別画面にしている理由は「メタデータをまとめてコピー/共有できるから」です。
トゥートのURL、時刻、投稿者のAcctやdisplay_nameなど、本文以外の情報も含まれるので、メモアプリへのスクラップ保存などに適しています。

選択されたテキストに対して行える操作は

です。

画面表示のカスタマイズ

Subway Tooter の画面カスタマイズ設定は多くもなければ少なくもない感じです。
ただしその方向性が他クライアントとは少し異なります。
「切り替えなしで複数アカウント複数カラムを扱う」というコンセプトのアプリなので、カラムやアカウントに色を設定することは識別のために重要なのです。

テーマ

アプリ設定の「見た目/UIテーマ」で明るいテーマと暗いテーマを切り替えられます。

カラムの色

カラム設定を開いて下にスクロールして「色と背景」を選ぶとカラムの色をカスタマイズできます。
カラムを閉じるとカスタマイズされた情報は失われます。

カラムに背景画像と透過度を設定することもできます。かわいい/楽しい/かっこいい背景を設定するとタイムラインがより楽しく見えるかもしれませんね。

フッタ部分の色

アプリ設定の「見た目/フッタの色」でカスタマイズできます。

自アカウントの通称と色

アカウント設定の「通称と色」を選ぶとアカウントのAcct( user@host ) に通称と色を設定できます。
設定した通称と色は以下の部分に反映されます。

  • カラムの頭に表示されるAcct
  • 各トゥートの頭に表示されるAcct
  • フッタのカラムボタンに表示されるアンダーバー (色が設定された時だけ表示されます)
  • 各トゥートの @mention 部分 (色が変わります)

カラムフッタにアンダーバーがつくとアカウントを識別しやすくなります。おすすめです。

他アカウントの通称と色

アカウントやトゥートのコンテキストメニューで「通称と色」を選ぶと、そのアカウントのAcct( user@host ) に通称と色を設定できます。
それが自アカウントでなかった場合、設定した通称と色は以下の部分に反映されます。

  • 各トゥートの頭に表示されるAcct
  • 各トゥートの @mention 部分 (色が変わります)

交流のあるユーザには色だけでも設定しておくとTL上で識別しやすくなります。おすすめです。

display_name を頻繁に変更するユーザには通称と色を設定しておくと見破りやすくなります。おすすめです。

簡略表示

トゥートごとにボタンがいくつも表示されているのが煩わしいと思ったことはありませんか?
アプリ設定で簡略表示をONにすると、これらのボタンがポップアップ表示に変わります。

ファボやブーストの状態を確認するためにワンアクション挟まないといけないので、良し悪しですね。
カラムごとに設定したいかも…

フォローボタンをボタンバーに表示する

トゥートごとのボタンバーにフォローボタンを表示します。

ワンアクションでフォロー操作ができるようになります。TLを巡回してフォロー、ファボ、ブーストを押して回るソーシャルモンキーにピッタリな機能ですね!

ついでに Subway Tooter のフォローボタンはフォロー、被フォロー状態がわかるようになっています。
フォロー中なら人が青くなり、被フォロー中ならアイコンの右下に青い丸が表示されます。

タイムラインのフォント

アプリ設定から変更可能です。
ただしフォントによってレイアウトがかなり崩れます。

フォントサイズ

(v0.9.9以降)アプリ設定から変更可能です。

フォントの色

UIテーマで白と黒を選ぶことができます。
フォントの色を個別に変更する機能はありません。

ストリーミング対応(v0.4.4)

Subway Tooter は Mastodon のストリーミングAPIを使ったタイムライン自動更新をサポートしています。

タイムライン自動更新が可能なカラムの種類

  • ホーム
  • 通知
  • ローカルタイムライン
  • 連合タイムライン
  • ハッシュタグタイムライン

ストリーミングAPIが使われるのはアプリのメイン画面が表示されている間だけです。

カラム設定でストリーミングの有無や画面復帰時の自動更新の有無を設定できます。

取得漏れ

「取得漏れ」でトゥート検索してもらうと分かると思うんですが、このアプリに限らず取得漏れは発生します。ストリーミング受信にはリトライという概念がないため、通信に問題があった場合は単純に再接続するしかありません。再接続されるまでの間はトゥートを受け取れませんし、再接続がうまくいかない場合もリトライを繰り返すまでの間はトゥートを受け取れません。