【Android10】隠し機能の「画面録画機能(screenrecord)」を使うべし

 
「電源ボタン」の長押し

    ↓

「画面の保存」の長押し

で「画面の録画」ができるようになっております。

まだ、隠している機能のようで、

adb 経由で設定を有効化する必要があります。

 
adb shell settings put global settings_screenrecord_long_press true

あとは表示されるダイアログに従っていくだけでアプリなしで画面を動画で録画できるようになります。



録画された動画は、「動画」(Movies) 以下に保存されています。

以下も参考にどうぞ。

👉 【Android Q】 端末画面動画 (screenrecord) が簡単に録画録音できるのよ、アプリ不要! 

👉 🆕 【Android11】クイックタイルから「画面録画(スクリーンレコード)」が可能に 


「Kotlinx Json」の登場でサードパーティJSONライブラリは不要となる。

JSONのライブラリ何を使ってますか?

👉 square/moshi: A modern JSON library for Kotlin and Java. 
👉 FasterXML/jackson: Main Portal page for the Jackson project 
👉 google/gson: A Java serialization/deserialization library to convert Java Objects into JSON and back 

これらは、Javaベースで書かれています。Kotlin は100%相互運用可能ですが微妙に期待しない挙動をします。


data class User(
    val name: String,
    val email: String,
    val age: Int = 13,
    val role: Role = Role.Viewer
)

enum class Role { Viewer, Editor, Owner }


{
    "name" : "John Doe",
    "email" : "[email protected]"
}


class JsonUnitTest {

    private val jsonString = """
            {
                "name" : "John Doe",
                "email" : "[email protected]"
            }
        """.trimIndent()

    @Test
    fun gsonTest() {
        val user = Gson().fromJson(jsonString, User::class.java)

        assertEquals("John Doe",user.name)
        assertEquals(null, user.role)
        assertEquals(0, user.age)

//      User(name=John Doe, 
//           [email protected], 
//           age=0, 
//           role=null)

    }

}

デフォルト値が期待通りにパースできません。

kotlinx.serialization が登場!!

JetBrains産です。間違いないでしょう。



👉 Kotlin/kotlinx.serialization: Kotlin multiplatform / multi-format serialization 

- クロスプラットフォーム
- 非リフレクション
- アノテーション @Serializable
- Kotlin v1.3.30+


@Serializable
data class User(
    val name: String,
    val email: String,
    val age: Int = 13,
    val role: Role = Role.Viewer
)

enum class Role { Viewer, Editor, Owner }

class JsonUnitTest {

    private val jsonString = """
            {
                "name" : "John Doe",
                "email" : "[email protected]"
            }
        """.trimIndent()

    @Test
    fun jsonTest() {
        val user = Json.parse(User.serializer(), jsonString)

        assertEquals("John Doe", user.name)
        assertEquals(Role.Viewer, user.role)
        assertEquals(13, user.age)

//      User(name=John Doe, 
//           [email protected], 
//           age=13, 
//           role=Viewer)

    }
}

Gson では無視されていたデフォルト値がきちんと使用されます。

以下のセットアップでどうぞ。


buildscript {
    ext.kotlin_version = '1.3.60'
    repositories { jcenter() }

    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath "org.jetbrains.kotlin:kotlin-serialization:$kotlin_version"
    }
}


apply plugin: 'kotlin' 
apply plugin: 'kotlinx-serialization'


repositories {
    jcenter()
}

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    implementation "org.jetbrains.kotlinx:kotlinx-serialization-runtime:0.14.0" // JVM dependency
}

👉 Kotlinx Json vs Gson - Juraj Kušnier - Medium 



Gradle Build Scan は設定不要!!


👉 Getting started with build scans | Gradle Inc. 

無料です。

A build scan is a shareable and centralized record of a build that provides insights into what happened and why. By applying the build scan plugin to your project, you can publish build scans to https://scans.gradle.com for free.

👉 Creating Build Scans 

ターミナルから実行です。設定記述の追加は不要になりました。


./gradlew assembleDebug --scan

出力されるURLクリックから結果を見ることができます。

実行時間の一覧を見せてくれたり、

Gradle は 6.0、org.gradle.parallel=true をサジェストしてくれたりします。

有料版では、さらに高機能に使うことができるようです。


Chrome ダークモードの選択しているタブが見づらい

パソコン版のChromeだけども、ダークモードにしていると、なんだか分かりづらくね?

選択中のタブが。

こうしてスクリーンショットで見ても分かりづらい。

イライラだわ!

[設定] - [デザイン] から、テーマを変更しましょうか。

他のダーク系テーマに変更しました。

分かりやすくなりました!

てか、

手動でテーマ変更とかしたらダークモードの意味がねえけどな!

👉 Android で ダークモード 


【Gboard】QWERTYキーが3種類あってはまる件【日本語入力】

前にも書きましたが。

👉 入力文字の 日本語 と 英数記号 切り替えをシンプルにする設定 

今現在の Gboard でもなんだか気持ちが悪いのですが。

 

QWERTYキーが3種類ある

日本人が使おうとするとき、QWERTYキーは3種類あります。

次のようにキーのレイアウトと表示される候補が違うのがわかります。

「日本語12キーから設定する英字QWERTY」

「日本語QWERTY」

「英語QWERTY」

このことが設定を分かりづらくさせています。

 

3種類を比較する

英語QWERTYでは、キー上をなぞって高精度に素早く英単語を変換できる「グライド入力」を使うことができます。

よって、3種類を表にすると以下のようになります。

QWERTY 変換候補 グライド入力
12英字 英語 2列
日本語 日本語 2列
英語 英語 1列

 

そもそもどう入力したいのか?

私の場合ですが。

日本語文字
→ 12キー【フリック入力】で
→ 【日本語単語】候補表示・選択
→ 入力欄に反映

英数文字
→ QWERTYキー【グライド入力】で
→ 【英単語】候補表示・選択
→ 入力欄に反映

 

まとめ

そんな設定にしたい人用にまとめておきます。

1. 「キーボードの言語とレイアウト」は、「日本語 12」と「英語(米国) QWERTY」のみ。

2. 「グライド入力」は、すべて有効化。

3. 「12キーレイアウトの設定」は「英字入力は QWERTY」をOFF。

4. 「キー」は「言語切り替えキーを表示」をON。

5. 日本語と英数の切り替えは「多言語切り替えボタン」で行う。

最後に、設定画面上のQWERTYキー設定位置を図にして概念的に分かりやすくしておきます。

使いたいQWERTYキー1つだけを有効にすることが大事です。

みんなはどうしてますか?

ちなみに、複数のキーボードアプリ間を切り替え利用したいときにも「多言語切り替えボタン」は役に立ちます。

👉 初めての Gboard キーボードのレイアウト設定 
👉 Android 端末 キーボード切り替え方法あれこれ