Mewstを公開してから一週間が経ちました。 この間にちょこちょこと改善を続けてきたので記事にまとめておこうと思います。 今後も定期的に記事にまとめていきたいです。
これはOAuth認可したときに得たアクセストークンを使い続けた結果有効期限が切れて、TwitterのWeb APIにリクエストできなくなっていただけでした…。
期限が切れたらリフレッシュトークンで新しいアクセストークンを得るようにして、ずっとクロスポイントできるようになりました。
すごく細かい変更ですが、これによりどのアカウントと連携してるんだっけ?というのが無くなったので嬉しいです。
公開当初から僕のアバター画像をサイト上に表示していましたが、実はあれは固定で表示しているだけで、最近まで画像アップロード機能を使ったものではありませんでした。 アップロード機能自体はありましたが、本番環境の設定が足りておらず画像がアップロードできない状態でした。
設定を追加して、今はアップロードできるようになっています。
投稿を続けていると無限に投稿が表示されてしまうため、ページネーションを設けました。
タイムラインは過去の投稿を振り返ることがあまりなさそうなのと負荷軽減的な目的で一定期間までの投稿しか見れないようにするかもしれないので、カーソル型のページネーション (この投稿以降の投稿を表示するといった方式) を実装しました。
カーソル型のページネーション:
プロフィールページには自分の投稿だけが表示され、自分の投稿は過去のもの含めて全て見たいので、全て見やすいようにオフセット型のページネーション (1ページ...nページみたいな方式) を実装しました。
オフセット型のページネーション:
ゆくゆくはTwilogやAnnictの記録一覧ページみたいに月別に投稿が表示できるような機能を追加して、過去の自分の投稿が振り返りやすくしたいです。
これも非常に細かい話ですが、言語選択のセレクトボックス内の文言を修正しました。
修正前は日本語でサイトを表示していたとき「英語」と「日本語」が表示されていましたが、これだと日本語がわからない人が日本語でサイトを表示したとき英語に戻すのが難しくなるため、↑のスクショのように英語を併記するようにしました。
横幅がページごとにマチマチだったりしたのでそのあたりを調整したり、ナビゲーションバーのロゴの大きさや色を調整するなどしました。
Vanilla Rails is plenty (翻訳) などを参考に サービスクラスを使わずに実装するように心がけたりしていましたが、大量のconcernsなモジュールの中にメソッドやコールバックなどを入れていくのも見通しが悪くなりそうだなとも思ったので、モジュールではなくクラスを定義してデリゲートするように修正するなどしていました。 これによりそのモデルでどんなことができるのかがメソッドレベルで把握しやすくなったような気がします。
以上が直近のアップデート内容でした。
コツコツとアップデートを重ねるMewstをよろしくお願いします。