「Google Play Protect」を実際に確認するまでの道のり

Google、新セキュリティサービス「Google Playプロテクト」の提供開始 - iPhone Mania

Android標準の包括的なセキュリティーサービス「Google Play プロテクト」が提供開始!特に操作することなく、自動でウイルスなどをスキャンして削除などの対策をしてくれる - S-MAX

- 2017年7月19日より提供開始
- Google Play サービス 11 以降が必要
- ストア以外のアプリも対象として24時間自動的にスキャンする

今まではどれを使ったらいいのか, 有料版を購入すべきかなど悩んでいた「ウィルススキャンアプリ」ももう不要となるのでしょうか.

まずは, Play サービスのバージョンを確認しておきます.

ややこしいのがスキャン結果の確認方法がいくつかあったりします.

端末の Google Play ストア アプリ を開きます。
メニュー アイコン Menu icon > Play プロテクト アイコン をタップします。

Android – Google Play プロテクト

この位置には「play プロテクトアイコン」がみつかりませんでした.

なので別の方法で.

設定の「Google」→「セキュリティ」内に「Google Play Protect」(日本語環境なら「Google Play プロテクト」)という項目ができます(機種によっては「アプリの確認」などと名称が違うとのこと)。

Android 7.x(開発コード名:Nougat)以降のGalaxyシリーズでは「設定」→「Google」→「セキュリティ」から

Android標準の包括的なセキュリティーサービス「Google Play プロテクト」が提供開始!特に操作することなく、自動でウイルスなどをスキャンして削除などの対策をしてくれる

設定アイコン選択後から適当に進もうとすると迷います.

やっとありました.

アプリを100個くらいいれていましたが現状は問題ないようでした.

追記 2017-09-12: Playストアで表示されるようになっている!

現在 バージョン 8.1.73 で左メニューから簡単に利用できるようになってます.

一度, インストールしている全アプリを更新してみたらいいかもしれませんっ.

→ Android 8.0 Oreo「Picture in Picture」を実際に確認する


ターミナルで Github Contributions Calendar を見る

Github でどんだけ貢献しているか見る草.

Viewing contributions on your profile - User Documentation

みなさんもきっとこれをコマンドラインを使ってターミナルなどで見たくないと思います.

そこで, ふと, 思い出したフレーズ.

ここまで見てきたように、Rxを入れたからといってすべてのクリックイベントをObservableにすべきかというとそうではなく、状況に応じてListenerとObserverとPub-subを使い分けるのが良いです。ここに書いたパターンがすべてではありません。どういう場面で何を使うべきかはユースケースに依存するので、Jakeが言うようにたくさんコードを書くしかないとのことです。

Rxのビューバインディングのパターン - Qiita

どんだけ書いているか見てみましょう.

JakeWharton (Jake Wharton)

複数のプロジェクトで結構書いてます.

PHPで.


<?php

define('USER_NAME',         'JakeWharton');
define('URL_CONTRIBUTIONS', 'https://github.com/users/%s/contributions');
define('REGEX_PARSE',       '|data-count="(.*)" data-date="(.*)"/>|U');

date_default_timezone_set('Asia/Tokyo');

$svg = file_get_contents(sprintf(URL_CONTRIBUTIONS, USER_NAME));
preg_match_all(REGEX_PARSE, $svg, $matches);

if (count($matches[1]) !== count($matches[2])) {
    echo 'not match two size!!';
    exit;
}

$data = array_combine($matches[2], $matches[1]);

//var_dump($data);

foreach ($data as $date => $count) {
    echo sprintf('%s % 2s %s',
                 date('Y-m-d D', strtotime($date)),
                 $count,
                 str_repeat('*', $count));
    echo "\n";
}

グリッドなグラフでみたほうが全然見やすいですね.


開発者が見ておくべき /r/androiddev にみるAndroid環境の王道

それなりに王道の本筋ではないかと思えますがどう思います?

/r/androiddev survey time! : androiddev

以下, 箇条書きに.

端末は Google Nexus シリーズ.

Root化やROMカスタマイズはしない.

Linux はラップトップで Ubuntu (Unity).

Windows はデスクトップで10.

Mac はラップトップで 10.12 Sierra.

主携帯は Android, タブレットは持っていない.

開発OS は OSX Intl Core i7, SSD, メモリ16G.

アプリにタブレット向けデザインは作成しない.

minSdkVersion は 16 (4.1.x).

アーキテクチャは MVP.

DIライブラリは Dagger 2.

Rx ライブラリは RxAndroid + RxJava2.

代替のフレームワークは Cordova.

データのシリアライズは Gson.

データ永続化は Realm.

ネットワーク処理は Retrofit.

画像読込みは Picasso.

Viewバインドは ButterKnife.

思ったより RxJava2 の躍進が早いなあと思いました.


material.io「COLOR TOOL」で視覚的に配色をすばやく確認する

デザイナーでもプログラマーでなくても素早くブラウザで確認できます.

Color Tool - Material Design

自分が決めた配色のイメージを簡単に右上のアイコンリンクで他人に伝えることができます.

こんな感じで

あとは, 開発者向けに一括で出力できたらなあ.


android-apt が不要となった ButterKnife

Butter Knife - Android library statistics - AppBrain

バージョンを上げてみると落ちるのでなぜかな, と.

これまでAndroid開発でannotation processingを実行したい場合はhvisser/android-aptを利用するのが王道となっていましたが、Android Gradle plugin version 2.2から公式にサポートが開始されました。

android-apt becomes obsolete - Qiita

2016-10-04
From apt to annotationProcessor
As of the Android Gradle plugin version 2.2, all functionality that was previously provided by android-apt is now available in the Android plugin. This means that android-apt is officially obsolete 😉

hvisser / android-apt / wiki / Migration — Bitbucket

Reflection を利用していた ButterKnife も予定通りに,

実行時に全力でReflectionするButter Knifeと違い・・・(c.f. Butter KnifeもAnnotation Processingする方式に切り替えるっぽい? => Split the compiler and runtime into separate artifacts. by serj-lotutovici · Pull Request #323 · JakeWharton/butterknife).

Butter Knife、今までありがとう。 Data Binding、これからよろしく。 - Qiita

JakeWharton on Aug 1, 2015
This dependency can probably be removed

Split the compiler and runtime into separate artifacts. by serj-lotutovici · Pull Request #323 · JakeWharton/butterknife

ButterKnife 8.4.0 で, Gradle Plugin の annotation processor を利用するようになり, android-apt を利用が不要になっていました.


-Note: If you are using the new Jack compiler with version 2.2.0 or newer you do not need the
-'android-apt' plugin and can instead replace `apt` with `annotationProcessor` when declaring the
-compiler dependency.

Just use 'annotationProcessor' for instructions. · JakeWharton/butterknife@716e1f3

この android-apt 利用時の記述が無駄にあると, フィールドにバインドされずにリスナーセットなど操作時に「んおっ?」となります.

まとめ

Gradle Android plugin 2.2.+ で ButterKnife 8.4.+ の場合 android-apt は不要.

以下2行のみ. proguardの記述不要.


dependencies {
  compile 'com.jakewharton:butterknife:8.4.0'
  annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'
}

Butter Knife

Annotation Processor のこれまで流れを知っておけばハマることもなかったのだろうと思います.

ButterKnife GitHubリポジトリ の issue などから調べようとすると, 謎の漢字での書き込みが激しく逆に混乱してしまいました.

Issues · JakeWharton/butterknife

com.android.support.* の dependencies のバージョンが揃わない件