杏z学習帳

Swiftを中心にFlutterやらUnityなどに手を出してます

Annictのクライアントアプリを出した話と林檎さんとのやりとり(2020/02/26)

[雑]Annictのクライアントアプリを出した話と林檎さんとのやりとり

もう2月も終わるのね、、早い。

久しぶりに両OS(iOS / Android)向けにアプリ出しました!

Annict というサービスの非公式クライアントアプリ「AniHub」です!
Annict をお使いの方や、アニメの視聴記録を何かしたいなぁとか思っている人はどぞどぞ!

これで2020は個人アプリ開発者を名乗ってもよさそうですね!?

Flutter で開発しました!

Flutter のおかげで両OS向けにリリースすることができました。
なにげに Flutter で作ったのは2作品目だったりします。
1作品目は技術書典のカタログアプリを作ってたりしてましたけど、リリースはしていないです(笑)

アレは Firebase からスクレイピングしたデータを引っ張ってきて表示するだけだったのだけれど、
(どっちかというと TypeScript のほうが作業時間的には多かった)
今回は Annict の GraphQL API を利用してデータ引っ張ってきたり更新したりと、より一般的なアプリっぽいことをしています💪
ので、これが実質 Flutter 1作品目なのかも?🤔

作りは BloC を作って Stream で入出力を制御して、StreamBuilder を使って更新。
みたいなのが基本的な流れなのだけれど、
途中で CahngeNotifier とか知ったので現状、割と混在してる感じです。

クオリティ的には使用する分には問題ないと思う(多分)のだけれど iOS 向けに Widget 切り分けてたりしてないので、iOS ユーザは結構違和感あるかも?っていう気はしています。

App Store の審査でリジェクトされた!

ここからは AppStore へのリリース苦労話。

Guideline 4.8 - Design - Sign in with Apple

Sign in with Apple を実装してね!っていうリジェクトを喰らいました。
iOS 界隈で話題になったアレです!!
言われて「あ!そういえば。。。」とか思いました。

初回起動画面

これは Android の画像なのだけれど、iOS も最初アプリを立ち上げるとまずこの画面が表示されて Annict への連携がもとめられます。
実装的には WebView で Annict の認証画面を表示している感じです。
そしてこの画面が Sign in with Apple が必要だと言われてリジェクトです。

新ガイドライン的にはそりゃそうなのだけれど、Annict は如何せん僕が管理しているサービスではないのです。
ので、実装できるはずもなく...どうしたものかと悩みました。

そこで、in-app ブラウザで表示しているからガイドラインが適用されるわけで、
Mobile Safari を開いたら適用外で見逃してもられるのでは!?とか悪知恵を働かせまして...
(以前 in-app ブラウザで自分のサイト開いてたら Google 文字列があるぞっていうリジェクトを食らったのを思い出した結果だったりします)

起動画面に連携ボタンをおいて、タップすると Mobile Safari で Annict 認証画面を開く。
認証後には URL Scheem を指定してリダイレクトさせてアプリに復帰させ認証後の処理を行ってアプリが使えるようになる。
という流れにして再度審査に提出してみました。

Guideline 4.0 - Design

リジェクトを覚悟して待っていると
Mobile Safari を開いて連携させるのはユーザビリティがわるいのでという理由でリジェクトされました。。

2回目がリジェクトされて内容を確認する前は、前回と同じく Sign in with Apple でされたと思ったのだけれど、
どうやら違ったので少しのぞみがでてきたという感じはしますね!?
Next Step では Safari View Controller を使うといいよ。という事が書かれていたので、そのとおりにして3度目審査を出しました。
(半信半疑どうせだめだろうと自暴自棄の勢い(笑)で)

無事リリース!!

いやー驚きました!
SafariViewController 使うと個人的には in-app ブラウザと同じで話が最初にもどっただけなので、今度こそ(?)、Sign in with Apple を実装しろとリジェクトされるのだるうと覚悟していたので、ものすごく意外な結果で驚きました(笑)
これで期待通り(?) Sign in with Apple を実装しろとリジェクトされたら、Xcode 10.3 にしてやっちゃろとか思っていたので、嬉しさが倍増です✨

ということで同じ境遇の人で諦めかけた人は試してみる価値があるかもしれません。

が!
ただ正直これはレビュアーガチャがたまたまよかっただけで、今度またリジェクトされるんだろうなぁと個人的には思ってたりします。
これがおkなら割とザルだなぁ〜とか思うし、最初のままでもよくない?とも思うので。
もしかして一度ボタン操作を挟んでから飛ばしてるのが功を奏していたりするんでしょうかね🤔
(いずれにしてもアップデートが怖い)

参考