CrossBridge Lab

技術ネタ、デバイスネタを...

iOS11からのアプリ内のレビュー誘導について

WWDC2017で発表された内容です。

すでにApp Store Review Guidelinesも改定されており、用意されているAPIを使えとなっています。

変更点

  • iOS10までのAppStoreでは最新バージョンの評価が表示されていたが、iOS11からはバージョン別ではなく総合的な評価になる。
  • iOS10.3はAppStoreへのDeepLinkが用意された
  • iOS11からはレビューはSKStoreReviewControllerクラスを使うことを推奨
  • レビューへ誘導するカスタムアラートは禁止

AppStoreへのDeepLink

SKStoreReviewControllerクラス

  • 1年に3回までしか表示できない
  • ユーザーはiOSの設定で評価画面を表示させないように設定することが出来る
  • 評価画面が表示されたかどうかのハンドリングはできない

表示するタイミングの指標

  • ユーザーが何かしらアプリでアクションを終えた後(ゲームのステージをクリアしたあとなど)に自動で出すべきである
  • 評価をするボタン 的なものを用意してはいけない(年3回までという制限があるのでボタンを押しても表示されないことがあるため)

まとめ

  • 独自のレビュー誘導は審査が通らなくなる
  • iOS11では設定画面からDeepLinkを使ってAppStoreアプリのレビュー画面へ飛ばす機能とSKStoreReviewControllerクラスを併用した方が良さげ。
  • ただしSKStoreReviewControllerクラスは回数制限があるので、最高のユーザー体験を得ただろうと確信があるタイミングでメソッドを実行するべき(それでも表示されるとも限らないが・・・)

参考ページ


【リリース】猫好きのためのアプリ:Cattest をリリースしました

猫好きのためのAndroidアプリ:Cattestをリリースしました。 (最近あまり更新できておらず、リリース報告がメインなブログになりつつあるのはご愛嬌。)

Cattestはキャッテストと読みます。Catと最上級のestを組み合わせた名前です。もちろんCatは名詞なので造語ですが🐱

50サイト以上のブログの記事を一覧で見ることができます。その中からお気に入りのブログだけを選択して、それらの記事を一覧で見ることもできます。 f:id:crossbridge-lab:20170509144751p:plain

可愛い猫たちの動画も。 f:id:crossbridge-lab:20170509144924p:plain

ねこが飼えないあなたのために、全国の猫カフェ情報。 f:id:crossbridge-lab:20170509145609p:plain

アプリのアイコンはこちら f:id:crossbridge-lab:20170509130522p:plain

よければストアでダウンロードしてみてください。Android版のみになります。 play.google.com


GolangでSlackの特定のチャンネルにメッセージを送る

Cronで定期的に動かしているGo言語で書かれたプログラムからSlackの特定のチャンネルにメッセージを送りたいと思って調べてみました。

どうやらWebhook URLを使えば簡単にSlackのチャンネルにメッセージを送ることができるようです。 というわけでまずはSlackのWebhookのURLを取得します。

Webhook URLを取得する

ブラウザで以下のアドレスにアクセスします。

https://slack.com/services/new/incoming-webhook

Post to Channelの箇所でメッセージを送りたいチャンネルを選択します。 ここで選んだチャンネルはメッセージを送信するときのデフォルトのChannelとなるだけで、送信する際に別のChannelを指定することもできるます。

選択したらAdd Incoming WebHooks integrationボタンをクリックします。

f:id:crossbridge-lab:20170425234410p:plain

次の画面にWebhook URLが表示されるのでこのアドレスをメモしておきましょう。

f:id:crossbridge-lab:20170425234418p:plain

とりあえずCurlでメッセージを送ってみる

メモしたURLにPOSTメソッドでJSONを送ることでメッセージを送信することができます。textキーが送るメッセージになります。

curl -d '{"text":"Hello Slack"}' https://hooks.slack.com/services/ほげほげ

こんな感じにメッセージが送られてきます。

f:id:crossbridge-lab:20170425235032p:plain

送るチャンネルやユーザー名を指定することもできます。それぞれusernameキーとchannelキーになります。

curl -d '{"text":"Hello Slack", "username":"hoge", "channel":"random"}' https://hooks.slack.com/services/ほげほげ

f:id:crossbridge-lab:20170425235209p:plain

GoでSlackにメッセージを送る

GoでHTTPリクエストを送信する際にはnet/httpパッケージを使います。

package main

import (
    "bytes"
    "fmt"
    "net/http"
)

func main() {
    name := "Go"
    text := "Hello from go"
    channel := "random"

    jsonStr := `{"channel":"` + channel + `","username":"` + name + `","text":"` + text + `"}`

    req, err := http.NewRequest(
        "POST",
        "https://hooks.slack.com/services/ほげほげ",
        bytes.NewBuffer([]byte(jsonStr)),
    )

    if err != nil {
        fmt.Print(err)
    }

    req.Header.Set("Content-Type", "application/json")

    client := &http.Client{}
    resp, err := client.Do(req)
    if err != nil {
        fmt.Print(err)
    }

    fmt.Print(resp)
    defer resp.Body.Close()
}