Salmonia3

Salmonia3 (opens new window)

秘密裏に進めていた Salmonia3 の App Store の審査ですが、二回のリジェクトを経て無事リリースすることができました。

上の URL からインストールすることができるので試してみてください。

Salmonia2 はどうなったの

Salmonia2 を使われていた方ならご存知かと思うのですが、Test Flight 版として Salmonia2 の開発は進めていました。

にもかかわらず何故リリースしたのが Salmonia3 なのかと疑問に思われる方もいるかも知れません。本記事では Salmonia3 の展望と、何故 2 ではなく 3 をリリースしたのかについて解説します。

Salmonia3 をリリースしたわけ

一番の理由は Salmonia2 のプロジェクトが大きくなりすぎたことが挙げられます。

開発を始めたのはちょうどトロントがロックダウンに入って暇を持て余していた 2020 年の 6 月頃だったと記憶しているのですが、開発中に一回プロジェクトを中断して新しく作り直したという経緯があります。

というのも、書けば書くほどコードが複雑化して「これ、もっと楽に書けたよな?」と思い返すことが増えたためです。

なのでいま開発していた Salmonia2 は Salmonia2 のバージョン 2 とも言えるわけです。

この Salmonia2 は割といい感じに開発できていたのですが、「しっかりしたものができてからリリースしよう」と考えていたためようやく形になるまでに半年ほどかかってしまいました。

大まかな機能が全て完成したのがちょうど 2020 年の 12 月頃になります。このあたりからは新規機能の追加ではなく、リリースに向けてのバグ調整などを行っていました。

審査が通らない

ところが、Salmonia2 はなかなか審査に通りませんでした。というか、今でもまだ通っていません。

その理由は 1 では実装してこなかった Google Analytics や Admob や In app purchase などが挙げられます。ここの理解が不十分だったために、コーディングが甘く、審査に何度も弾かれました。

特に課金処理は SwiftyStoreKit を使っており、コーディング自体は楽なのですがい iTunes Store から課金情報がとってこれないなど Apple 側にバグとしか思えないような問題があって大変にめんどくさかったです。

アカウントがログインできないとかしょうもないことをずっとつつかれるのでこれをリリースするのは諦めてしまいました。

シンプルなアプリに機能を追加していく

個人的には Test Flight 版でずっと開発を続けてもいいのですが、導入がめんどくさい上にやはり App Store から検索できないというのは大きなディスアドバンテージです。

しかも、Test Flight 版では課金処理ができませんし、広告も載せられません。つまり完全にボランティアです。

今は一部の方からご支援を頂いていますが、これは一部のユーザに負担をかけ続けてしまうことになります。それは避けたいところです。

そこで、まずは基本的な機能がついたアプリをリリースし、アップデートでどんどん機能を移植していくことにしました。広告や課金処理がなければアプリをリリースするのはさほど難しくないですし、アップデートで弾かれるのであればそれまではアップデートがないバージョンのアプリとして使って頂けることになります。

また、感覚的にも最初の審査が一番キツく、アップデート自体は比較的甘い気がしています。なので、「とりあえずはアプリをリリースする」という方針に切り替えることにしました。

Salmonia2 と 3 の比較

機能 Salmonia2 Salmonia3
リザルト取得
リザルトアップロード
リザルト詳細
リザルト取り込み
シフト統計
将来のシフト閲覧
WAVE 記録閲覧
複数アカウント
ゲーミング機能
広告表示
Salmon Stats 閲覧
ステージ記録

というわけで、現在のところはリザルトを取得してローカルに保存するだけの機能しかありません。

アップロード機能がないのでアプリを削除するなどしてしまうと全ての記録が失われます。Google Apps Script や PC 版の Salmonia を使うなどして別途アップロードしてください。

なんでアップロード機能を削除したのか

アップロード機能をなくしたのは単純にログイン機能が未完成なためです。

現在は WebKit という最新の SwiftUI では削除されている機能を無理やり再現して実装していますが、これが個人的には好きではありません。

WebKit を使って認証情報を取得するというプロセス自体がバグを生みやすく、ログイン失敗自体がそもそも多いためです。

Salmon Stats の認証自体は単に Twitter 認証をしているだけなので Salmon Stats 側が API を整備してくれれば認証率 100%の素晴らしいシステムができます。こういうシステムができるということがわかっている以上、わざわざ認証率の低いレガシーな実装をする気になれないのです。

ただ、手動でアップロード用のトークンを設定できるような機能はそのうち実装する予定です。

実装の優先度について

まず、必要最低限の機能であるリザルトの詳細を見れる機能を実装します。

既に機能自体は実装しており Apple の審査待ち状態です。審査が通ればリリースができるので、早ければ来週の頭には公開できると思います。

Salmon Stats と連携するところはめんどくさいのでリザルトの取り込み機能は遅くなるかもしれません。広告機能や課金処理を優先しようと思います。

このあたりは Salmonia に限らずアプリ開発で生計を立てる上で将来的に必ず必要になってくるので。

旧バージョンの対応について

Salmonia1 の方は 3 の機能が充実次第、App Store から削除してサポートを終了することを予定しています。

1 は iOS9 以上のサポートしかしていないので、こちらはもう切ってしまってもよいかなあと。

まとめ

アプリ開発の広告収入で生活したい!!!!

あと、最近喫茶ステラと死神の蝶っていう美少女ゲームにでてくる四季ナツメさんが可愛いと思い始めています。

記事は以上。