画像読み込みライブラリ「COIL」

Glide や Picasso のような画像読み込みライブラリです。

COroutine
Image
Loader

の略だそうです。

以下の特徴を持っており、ナウい感じです。

- 拡張関数、ラムダなどKotlinの持つ機能を活用。
- コルーチンを利用。
- ディスクキャッシュとストリームバッファリング機能。
- androidx.lifecycle に対応。
- 軽量。
- R8対応。ルール不要。

👉 Introducing Coil: Kotlin-first image loading on Android 

記述例です。


// To load an image into an ImageView, use the load extension function.
imageView.load("https://www.example.com/image.jpg")

// Coil supports urls, uris, resources, drawables, bitmaps, files, and more.
imageView.load(R.drawable.image)

imageView.load(File("/path/to/image.jpg"))

imageView.load(Uri.parse("content://com.android.externalstorage/image.jpg"))

// Requests can be configured with an optional trailing lambda.
imageView.load("https://www.example.com/image.jpg") {
    crossfade(true)
    placeholder(R.drawable.image)
    transformations(CircleCropTransformation())
}

// Custom targets can be created using lambda syntax (onStart and onError are optional).
Coil.load(context, "https://www.example.com/image.jpg") {
    target { drawable ->
        // Handle the successful result.
    }
}

// To get an image imperatively, use the get suspend function.
val drawable = Coil.get("https://www.example.com/image.jpg")

👉 GitHub - coil-kt/coil: Image loading for Android backed by Kotlin Coroutines. 

パフォーマンスを Glide や Picasso と比較した記事がありますが、まあまあのようです。

Coil is a new library, so its performance may increase in the next versions. We are comparing it with mature libraries, so let’s see how it evolves.

Coil は新しいライブラリであるため、次のバージョンでパフォーマンスが向上する可能性があります。成熟したライブラリと比較しているので、どのように進化するか見ておきましょう。

👉 Coil vs Picasso vs Glide: Get Ready… Go! - ProAndroidDev 

ちなみに、必要環境は以下。

- AndroidX
- Min SDK 14+
- Compile SDK: 28+
- Java 8+

今後に期待できますかね。


「Android 10」のバージョンの参照の方法

「Android 10」は、日本時間今朝早朝に3:00頃に更新されていました。



バージョンナンバーについては、内部的にどう参照されるべきなのか。

今回も吐かせてみます、コードから。


for (field in Build.VERSION_CODES::class.java.declaredFields) {
  field.isAccessible = true
  Timber.d(field.get(this).toString() + " -> " + field.name)
}
Timber.d("RELEASE : " + Build.VERSION.RELEASE)
Timber.d("SDK     : " + Build.VERSION.SDK_INT)

👉 Android OS バージョンのコードネームを取得する 

結果


D: 1 -> BASE
D: 2 -> BASE_1_1
D: 3 -> CUPCAKE
D: 10000 -> CUR_DEVELOPMENT
D: 4 -> DONUT
D: 5 -> ECLAIR
D: 6 -> ECLAIR_0_1
D: 7 -> ECLAIR_MR1
D: 8 -> FROYO
D: 9 -> GINGERBREAD
D: 10 -> GINGERBREAD_MR1
D: 11 -> HONEYCOMB
D: 12 -> HONEYCOMB_MR1
D: 13 -> HONEYCOMB_MR2
D: 14 -> ICE_CREAM_SANDWICH
D: 15 -> ICE_CREAM_SANDWICH_MR1
D: 16 -> JELLY_BEAN
D: 17 -> JELLY_BEAN_MR1
D: 18 -> JELLY_BEAN_MR2
D: 19 -> KITKAT
D: 20 -> KITKAT_WATCH
D: 21 -> LOLLIPOP
D: 22 -> LOLLIPOP_MR1
D: 23 -> M
D: 24 -> N
D: 25 -> N_MR1
D: 26 -> O
D: 27 -> O_MR1
D: 28 -> P
D: 29 -> Q
D: RELEASE : 10
D: SDK     : 29

あ、

すでに、Mから内部的には「スイーツ名」は使ってなかったのですな。

(👉 続いて、Android10の新機能を試す(記事更新中...待て))


そんな Camscanner の代替を探す

Googleが、人気のOCR機能付きPDF作成アプリ「CamScanner」にマルウェアが見つかったとして、これをGoogle Playストアから削除しました。CamScannerはこれまでに1億回以上もダウンロードされていました。

👉 Google Playでのダウンロード数が1億超のスキャナーアプリ「CamScanner」が悪意あるアプリに変貌 | カスペルスキー公式ブログ 

👉 見つかりませんでした 

Previously, a similar module was often found in preinstalled malware on Chinese-made smartphones. It can be assumed that the reason why this malware was added was the app developers’ partnership with an unscrupulous advertiser.

以前は、中国製のスマートフォンにプリインストールされたマルウェアで同様のモジュールがしばしば発見されました。 このマルウェアが追加された理由は、アプリ開発者と悪意のある広告主とのパートナーシップにあると考えられます。

👉 An advertising dropper in Google Play | Securelist 

CamScannerはウェブサイトでAdHubと呼ばれるサードパーティの広告SDKに悪意あるモジュールが含まれていたことを明らかにし、これを取り除いたバージョンを配布しています。しかし日本語のGoogle Playストアでは、記事執筆時点では2014年の古いバージョンが配布されています。

Google PlayStore で公開できていないようで、別の場所で apk を配布しています。

Dear CamScanner Android Users,

Our CamScanner Team has recently detected that the advertisement SDK provided by a third-party named AdHub, integrated in Android Version 5.11.7, has been reported for containing a malicious module that produces unauthorized advertising clicks.
Injection of any suspicious codes violates the CamScanner Security Policy! We will take immediate legal actions against Adhub! Fortunately, after rounds of security check, we have not found any evidence showing the module could cause any leak of document data.
We have removed all the ads SDKs not certified by Google Play and a new version would be released. Meanwhile, you may follow the steps HERE to update to the new version.
We would appreciate your patience and understanding.

CamScanner Androidユーザーの皆様、

CamScannerチームは最近、Androidバージョン5.11.7に統合されたAdHubというサードパーティが提供する広告SDKが、不正な広告クリックを生成する悪意のあるモジュールを含むと報告されたことを検出しました。
不審なコードを挿入すると、CamScannerセキュリティポリシーに違反します!Adhubに対して直ちに法的措置を講じます!幸いなことに、一連のセキュリティチェックの後、モジュールがドキュメントデータのリークを引き起こす可能性があることを示す証拠は見つかりませんでした。
Google Playで認定されていないすべての広告SDKを削除しました。新しいバージョンがリリースされます。その間、こちらの手順に従って新しいバージョンに更新することができます。
ご理解とご理解のほどよろしくお願いいたします。

👉 Detail 

1. Please tap HERE to upgrade with the latest Android version 5.12.5.

2. Since the apk is not from Google Play, you may receive system notices before downloading & installing the new version. It is okay to proceed further.

3. Maybe you are using the v5.12.5 updated from Google Play, then there is no action needed. You may check out your version in the CS app Settings -- Feedback -- About.
If you have any other problems, please feel free to contact us at asupport @ intsig.com. We will help you out ASAP.

1. ここをタップして、最新のAndroidバージョン5.12.5にアップグレードしてください。

2. apkはGoogle Playのものではないため、新しいバージョンをダウンロードしてインストールする前にシステム通知を受け取る場合があります。さらに先へ進んでも構いません。

3.たぶん、Google Playから更新されたv5.12.5を使用している場合、アクションは必要ありません。CSアプリの[設定]-[フィードバック]-[バージョン情報]でバージョンを確認できます。
他に問題がある場合は、asupport @ intsig.comまでお気軽にお問い合わせください。できるだけ早くお手伝いします。

downloadForGP-apk

👉 詳細 

きっと、その広告SDKが埋め込まれてない旧バーションは PlayStore にもあります。

👉 CamScanner HD - Scanner, Fax - Google Play のアプリ 

以下、代替アプリリンク集リンク。

👉 5 Free CamScanner Alternatives for Android 

👉 7 Alternatives to CamScanner | Product Hunt 

👉 10 Best CamScanner Alternatives for Android and iOS | Beebom 

思ったよりたくさんあったので驚きました。

代替はいくらでもあるのです!!