えいむーさんは明日も頑張るよ

Salmonia3のアップデート開発状況

価格

# Salmonia

先週末にリザルトアップロード洩れがあった場合に暫定的に対応できるバージョンをリリースしたのですが、今後のアップデート方針について解説します。

# ライブラリのアップデート

現在目下作業中なのはこのライブラリのアップデートです。つまり、アプリ自体の開発はしていません。

ライブラリをアップデートして何になるのかということになるわけですが、Salmonia3 は SplatNet2, SalmonStats, SwiftyUI などのぼくが開発したライブラリを利用して動いています。

通信関連のバグ、アカウント切り替えなどの機能は Salmonia3 側ではなく、このライブラリ側の機能なのでライブラリのバグを減らし、機能を増やせばそのまま Salmonia3 側で簡単にその機能を使うことができるようになります。

現在のライブラリのままだと複数アカウントを設定していても起動時に毎回同じアカウントが読み込まれてしまいますし、ライブラリ側にアカウント削除機能などもなく、いちいちアプリ側から削除しなければならない設定になっています。

それがめんどくさいので使いやすいようにライブラリをアップデートしてしまおうというわけです。

# ライブラリのアップデート内容

具体的にどんなことができるようになるのかをメモ。開発中の機能もあるので、全部実装されるかはわかりません。

  • アカウント並び替え機能
    • 現行アプリでは常に最初にログインしたアカウントが利用されますが、並び替えて保存できるようになります
  • 個別のアカウント削除機能
    • 現行アプリでは削除すると全てのアカウントが消えてしまいましたが、個別に削除できるようになります
  • 通信失敗時の動作をより厳密化
    • 詳しく書くと長くなるので控えますが、認証用のトークンが切れていた場合に以前よりも上手に再通信できるようになります
  • X-Product Version の取得に対応
    • 現行アプリでは無理やり X-Product Version を取得していたのですが、上手い具合に取得できるようになります
    • その結果、アプリのアップデートなし、再起動なしで自動的に最新の API に対応できます
      • ただし、API の仕様自体が大幅に変更された場合には対応できません
  • 自動で Salmon Stats にリザルトをアップロード
    • 現行では取得したデータをアプリ側で一度受け取ってからリザルトをアップロードしていました
      • このため、アプリがクラッシュ、フリーズなどした場合に正しくアップロードできていない問題が発生する場合がありました
    • これをダウンロード後にアプリに取り込む前に Salmon Stats にアップロードする仕様に変更しました
      • よって、アプリのクラッシュによるアップロード洩れは発生しません
  • Salmon Stats の差分取り込み機能(予定)
    • 現行では取得中にエラーが発生したりすると最初からやり直しですが、途中からやり直せるようになります
  • ランキング機能(予定)
    • Salmon Stas のランキングは 1 位しか表示されませんが、自分がどのくらいの位置にいるか表示できるようにします

# アプリのアップデート

ライブラリのアップデートが主な内容とはいえ、アプリ側もアップデート予定です。

# アプリのアップデート内容

  • リザルト件数が多くなると重くなる問題の修正
    • これはデータの再計算の処理がとんでもないことになっているためです
    • 設計を変えれば修正可能だと思うので、直す予定です
      • 専門的にはメインスレッドではなくバックグラウンドスレッドで動かせば解決できそう
  • シフト統計のメイン画面の UI の更新
    • わかりにくいって言われたので種類を切り替えられるようにします
  • ユーザフレンドリーな UI に変更
    • 以前のアップデートで実装した UI が好評だったので、同じような感じで別のところにも反映させます
  • グラフ機能の実装(予定)
    • グラフ欲しいって言われたので実装します
    • ただ、要件を満たすグラフライブラリがなかなかないです

# リリースはどのくらいになるの

現在まだライブラリの開発が完全に終わっていません。予定では 11 月中にライブラリの更新を終え(それまでに任天堂のアップデートが来ないことを祈ります)、12 月からアプリの開発といった感じです。

機能の殆どはライブラリ依存ですので、一週間もあれば簡易ベータ版を TestFlight でテストできるのではないかと思います。

最終的なリリースは月末か、年明けになる予定です。

記事は以上。

価格
    えいむーさんは明日も頑張るよ © 2022