Pixel3 FeliCa 「Google Pay」と「おサイフケータイ」の違い

一目で分かる「Pay(ペイ)」の基本

Pixel3で支払いしようと思ったら、よく似たアプリが2つある。

「Google Play」
「おサイフケータイ」

どちらかに優先順位をつけてから使い始めたほうが比較もはっきりできるんじゃない?

まずは「Google Pay」を優先的に使っていこうと思います。

理由
1. 電子マネー(前払い)の対応
2. クレカから電子マネーにいつでも移動
3. クレカデータはGooglePayではクラウド保存(アカウント紐付き)
4. ポイントケード対応数はGooglePayのほうが多い
5. ポイントカードはそれぞれの別アプリ不要。(QR読み取り)
6. QuickPay(後払い)が Amex 対応が終了してた
7. Suica は新規登録は年会費無料
8. iD(後払い)はドコモ提供
9. Google Play への懸賞が多い

👉 【実録】 結局「Google Pay」でできることは何なの? | Pixel3

一目で分かる「Pay(ペイ)」の基本

 

1. 電子マネー(前払い)の対応

おサイフケータイ
- 楽天Edy
- モバイルSuica
- nanaco
- WAON
- Quick Pay (後払い)
- モバイルスターバックスカード
- ラッキータッチ
- iDアプリ

Google Play
- 楽天Edy
- Suica (モバイルSuica とは違う)
- nanaco
- WAON

前払いの電子マネーカードは、Suica 使ってたので、それで考えています。

しかし、「Suica」がそれぞれで微妙に違う。(後述)

 

2. クレカから電子マネーにいつでも移動

GooglePayでは、クレカと電子マネーを保存しておくことができます。

不足すればリマインダーからのその場でクレカから電子マネーに入金できます。

 

3. クレカデータはGooglePayではクラウド保存(アカウント紐付き)

Google Playのクレカとは紐付いてはないけど、アカウントに紐付いてる。

バックアップや再入力の手間が省けます。

 

4. ポイントカード対応数はGooglePayのほうが多い

おサイフケータイではおすすめから。

Google Pay では、
「パス」から、「+パス」→「ポイント プログラム」で一覧が表示されます。

 

5. ポイントカードはそれぞれの別アプリ不要。(QR読み取り)

おサイフケータイでマック。

おサイフケータイでは、それぞれのアプリをインストールする方法が多いようです。

インストールしたアプリから入会後、リンク起動させるのでしょうか。

GooglePayでマック。

GooglePayでは、QRコードで読み取るか、会員IDを入力させるようになっています。

もしかして、一度入会したらそれぞれのアプリは不要になるのかもしれません。

 

6. QuickPay(後払い)が Amex 対応が終了してた

誠に勝手ではございますが、携帯電話やスマートフォンを利用した決済システム「AMEX QUICPay」は、2019年2月28日をもちまして、サービスを終了させていただくことになりました。サービス終了に伴い、「AMEX QUICPay」の新規登録およびID再発行の受付は2018年9月30日の受付分をもって終了いたしました。また、更新手続きのご案内は2018年11月30日をもって停止させていただきます。

「AMEX QUICPay」サービス終了のお知らせ | お知らせ - アメリカン・エキスプレス(アメックス)

これサポートセンターに電話したら、

Androidではどっちにしても不可。

iOS7以降だけ使えるそうです。

なお、Apple Pay™の決済システムで使用しているQUICPay+™(クイックペイプラス)のサービスは、引き続きご利用いただけます。

 

7. Suica は新規登録は年会費無料

微妙に名前が違う。

おサイフケータイ
→「モバイルSuica」

GooglePay
→「Suica」

「モバイルSuica」の年1000円程度がGooglePayからの「Suica」無料でした。

ある程度は、機能が限定されてるようなので要注意です。

JR東日本:モバイルSuica>Android端末をご利用のお客さま>Google Pay

「Suica」への登録はGooglePayアプリから簡単にすぐにできます。

入金、購入後残高を見てみたら、おサイフケータイにも表示されていますが、

「モバイルSuica」て書いてるけど、大丈夫かな。

 

8. iD(後払い)はドコモ提供

なお、おサイフケータイのみにあるiDアプリはドコモ提供です。

事前チャージ不要です。

 

9. Google Play への懸賞が多い

いろんなキャンペーンがあってGoolePlayへ報酬が加算されていきます。

Google が力を入れている証拠です。Apple Payを見ているのでしょう。

 

まとめ?

悪いとことしては、退会時、機種変更時にそれぞれのアプリやサイトなどで手続きが必要ではないかと思えます。

細いところでいろいろありそうですが、少しずつ使っていこうと思います。

👉 一目で分かる「Pay(ペイ)」の基本
👉 結局「Google Pay」でできることは何なの? | Pixel3
👉 Pixel3 は PASMO に何ができるのか。
👉 Google Pay とは - Google Pay ヘルプ


アプリをすばやく切り替える方法

アイコンからアプリを起動するより簡単にすばやく操作できる

「履歴ボタン」

を使いましょう。

 

ダブルタップ → 直前のアプリと入れ替え

何も考えずに2回連続でタップすると、直前に利用していたアプリと入れ替わります。

「ダブルタップ」を連続して行うと、簡単に2つのアプリを交互に行ったり来たりできます。

動画では、わかりずらいですが、ダブルタップしています。



絵文字 (えもじ) パック - Google Play のアプリ

 

タップ → 履歴の一覧表示から入れ替え

これまで利用したアプリの画面がトランプのようにスタック上に並んで表示されます。

よく使うアプリ以外は削除しておくと分かりやすくなります。

 

Android Pie (9.0) の場合

中央のピル型のボタンで行いますが、上記の操作方法が変わります。

「ダブルタップ」→ 「右スワイプ」
「タップ」→ 「上スワイプ」

おすすめなのが

「右スワイプ長押し」

です。

スライダーが表示されて、そのまま指を離さずにアプリを一覧表示から選択できるようになります。

その他、いろいろな切り替え操作を覚えるとストレスなく操作できるようになります。
→ Android 端末 キーボード切り替え方法あれこれ
→ 入力文字の 日本語 と 英数記号 切り替えをシンプルにする設定

Emoji Pack - Apps on Google Play


最小限 の Kotlin を最短で学ぶ

最小限 の Kotlin を最短で学ぶ

シンプルな記事あったので。

Learn Kotlin for Android in One Day – Mayur Rokade – Medium

1. 変数

変数は「var」。


var username: String = "some user name"

定数は「val」。Java の final と等価。


val API_DELAY_CONSTANT: Int = 100

null で初期化するには「?」。 null を利用可能にします。


var myString: String? = null

static な定数には「companion object」。


class Animal {

    companion object {
        const val DEFAULT_NUM_OF_EYES = 2
    }
}

animal.numOfEyes = Animal.DEFAULT_NUM_OF_EYES

遅れて初期化するには「lateinit」。


lateinit var user: User
lateinit var items: List<String>

2. 関数

これは、public。Int を返します。


fun getNumber(): Int {
    return 1
}

private で引数を渡す場合。


private fun getStringLength(str1: String, str2: String): Int {
    return str1.length + str2.length
}

static 関数。


class MyStringUtil {

    companion object {
        fun getOddLengthString(str: String): String? {
            if (str.length % 2 == 0) return null

            return str
        }
    }
}
var str: String = MyStringUtil.getOddLengthString("hey")

「?」を使って、null を返すことをコンパイラに伝えています。

3. ループ と when

コレクションである items に「in」で。


var items: List<String> = ArrayList<String>()

for (item in items) {
    // do something with item
}

インデックスにアクセスすることもできる。


for (index in items.indices) {
    // access items using index
    // items.get(index)
}

Java の switch は、Kotlin では「when」。


// A cool example of when statement
fun describe(obj: Any): String? {
    var res: String? = null

    when (obj) {
        1 -> { res = "One" }         // if obj == 1
        "Hello" -> res ="Greeting"  // if obj == "Hello"
        is Long -> "Long"            // if obj is of type Long
        !is String -> "Not string"   // if obj is not of type String
        else -> {
            // execute this block of code
        }
    }

    return res
}

4. Null 安全

Java で NPE を避ける場合。if で。


if (person != null && person.department != null) {
    person.department.head = managersPool.getManager()
}

Kotlin では「?」を使って、if を省くことができる。chain可能。


person?.department?.head = managersPool.getManager()

null の場合を処理したいときは「?:」を使う。


var name = person?.name ?: throw InvalidDataException("Person cannot be null.")

5. クラス

「open」で継承可能。なければ, Java の final class と同じ。


open class Animal {
    // This class is open and
    // can be inherited
}

class Dog : Animal() {  // Notice the paranthesis
    // Class dog is final and
    // can't be inherited
}

// Compiler throws error
class Labrador : Dog {

}

6. シングルトン

「object」を使う。


object Singleton {
    var name: String = "singleton object"

    fun printName() {
        println(name)
    }
}

// later in the code
Singleton.name
Singleton.printName()

7. インターフェース

インターフェースの継承は直感的に。


interface Named {
    fun bar()
}

interface Person : Named { // Person inherits Named
    fun foo()
}

class Employee() : Person {
    override fun bar() {
        // do something
    }

    override fun foo() {
        // do something
    }
}

関数に渡す場合は少し違う。


// A function that accepts and interface as a parameter
private fun setOnClickListener(listener: View.OnClickListener) {
    // do something
}

// Passing an interface to the function
setOnClickListener(object : View.OnClickListener{
    override fun onClick(view: View?) {
        // do something
    }
})

8. 型チェックとキャスト

「is」や「!is」を使う。


if (obj is String) {
    print(obj.length)
}

if (obj !is String) {
    print("Not a String")
}

「as?」を使って例外を避けてキャスト可能。失敗時には null を返す。


val x: String? = y as? String

9. 例外

Java とほぼ同じ。


throw Exception("Hi There!")

try {
    // some code
}
catch (e: SomeException) {
    // handler
}
finally {
    // optional finally block
}

まとめ

重要な最小限の部分からきちんと学んでいくこと大事。

- Kotlin で FizzBuzz
- 「Fragment を利用するか、しないか」という話