アプリ自体は、使いやすい。
必要なものを用意すれば、タッチのみですぐに発行される。


分かりづらいのはダウンロード先で、ストア内を「新型コロナワクチン接種証明書」 と検索で見つけれなかった。なんでや。

👉 「新型コロナワクチン接種証明書アプリ」をApp Storeで
👉 新型コロナワクチン接種証明書アプリ - Google Play のアプリ
または、デジタル庁のWebサイトに、Android、iPhone ダウンロード先のリンクやQRコードがあるのでそこからどうぞ。
アプリ自体は、使いやすい。
必要なものを用意すれば、タッチのみですぐに発行される。


分かりづらいのはダウンロード先で、ストア内を「新型コロナワクチン接種証明書」 と検索で見つけれなかった。なんでや。

👉 「新型コロナワクチン接種証明書アプリ」をApp Storeで
👉 新型コロナワクチン接種証明書アプリ - Google Play のアプリ
または、デジタル庁のWebサイトに、Android、iPhone ダウンロード先のリンクやQRコードがあるのでそこからどうぞ。
最近、やっと更新されて日本語でも高精度な文字起こしができるようになりました。
レコーダーで、録音した音声を検索できます。会議、講義、バンド練習、家族の思い出など、なんでも録音して保存し、後で再生できます。レコーダーで、録音した音声の文字起こしとラベル付けが自動的に行われるため、大事な情報を簡単に見つけることができます。
「語句の編集」から聞き直しながら意図する語句に編集できます。


また、録音した音声の前後の不要部分を書き起こし文字を見ながら「切り抜く」ことも可能です。

以下の形式で共有することができます。
- 音声 (.m4a ファイル)
- 文字起こし (.gdoc .txt ファイル)
- 動画クリップ (.mp4 ファイル)

私がよく使うのは、テキスト編集画面から「全選択」でクリップボードへコピーしてからの好きなエディタに貼り付けです。
iPhoneやパソコンからもブラウザ経由で録音、文字起こししたアーカイブを確認できます。
以上です。よろしくおねがいします。
シンプルなものにして整理、定型化しておきたい。
「どこに」←「どれを」インジェクトしてるか、とそれの記述をパターン化。

MVVM でいうところの View であるこれらに、ViewModel をインジェクトする場合。
コンストラクタからインジェクトできないいわゆる「Androidクラス」。
以下のものがこれに当てはまる。
- Activity
- Fragment
- View
- Service
- BroadcastReceiver

それぞれのクラスに付ける2つのアノテーションと ktx による記述でプロパティにインジェクトする。
@AndroidEntryPoint
class MainFragment : Fragment() {
private val viewModel: MainViewModel by viewModels()
@HiltViewModel
class MainViewModel @Inject constructor(
repository: MainRepository
) : ViewModel() {
Module を使った ViewModel コンストラクタへのインジェクト。

インターフェースの型でリンクする。
@HiltViewModel
class MainViewModel @Inject constructor(
repository: MainRepository
) : ViewModel() {
Hilt 備え付けの Component でライフサイクルを考慮して、実装型でインジェクトする。
abstract、@Binds は、インターフェースを介す場合の、 @InstallIn( ViewModelComponent::class)、 @ViewModelScoped は、 ViewModel に対してのインジェクトのパターン。
@Module
@InstallIn(ViewModelComponent::class)
abstract class RepositoryModule {
@Binds
@ViewModelScoped
abstract fun bindRepository(impl: DefaultRepository): MainRepository
}
Androidクラスのようなプロパティへのインジェクトとは違う @Module、@Provides を使ったコンストラクタインジェクトの Hilt基本的パターン。
SingletonComponent は、旧 ApplcationComponent で生存期間最長。

class DefaultRepository @Inject constructor(
private val localDao: LocalDao,
private val contentResolver: ContentResolver,
private val sharedPreferences: SharedPreferences
) : MainRepository {
@Module
@InstallIn(SingletonComponent::class)
object DataSourceModule {
@Provides
@Singleton
fun provideLocalDao(
@ApplicationContext context: Context
): LocalDao {
return LocalDao(context)
}
Context は、 @ApplicationContext と @ActivityContext がすでに用意されているので区別しながらアノテーション1つのみで注入できる。これ便利。
@Module
@InstallIn(SingletonComponent::class)
object DataSourceModule {
@Provides
@Singleton
fun provideLocalDao(
@ApplicationContext context: Context
): LocalDao {
return LocalDao(context)
}
しかし、どの位置でも自在にインジェクトしようとするとコケる。
[Dagger/MissingBinding] @dagger.hilt.android.qualifiers.ActivityContext android.content.Context cannot be provided without an @Provides-annotated method.
@Module 直下の @Provides メソッドの引数で使うものですか。
buildscript {
ext.versions = [
"hilt" : "2.41",
]
dependencies {
classpath "com.google.dagger:hilt-android-gradle-plugin:${versions.hilt}"
}
}
apply plugin: "org.jetbrains.kotlin.kapt"
apply plugin: "dagger.hilt.android.plugin"
dependencies {
implementation "com.google.dagger:hilt-android:${versions.hilt}"
kapt "com.google.dagger:hilt-android-compiler:${versions.hilt}"
androidTestImplementation "com.google.dagger:hilt-android-testing:${versions.hilt}"
kaptAndroidTest "com.google.dagger:hilt-compiler:${versions.hilt}"
testImplementation "com.google.dagger:hilt-android-testing:${versions.hilt}"
kaptTest "com.google.dagger:hilt-compiler:${versions.hilt}"
}
多少の流儀はあるけど、 Component 記述がなくなっただけでも記述量は大幅に削減できます。
alpha らしく、まだコンポーネント名など変わるんかもしれんが、ここも適宜修正させてもらいます。
👉 【MVVM】 Kotlin Flow で使える5つの利用パターン
👉 skydoves/Pokedex: 🗡️ Android Pokedex using Hilt, Motion, Coroutines, Flow, Jetpack (Room, ViewModel) based on MVVM architecture.
👉 Hilt and Dagger annotations cheat sheet - Android Developers - Medium
【Retorofit】コピペで使える NetworkModule【Dagger Hilt】
👉 https://t.co/zf9cpgxPEG #kotlin #android #プログラミング— chanzmao (@maochanz) March 17, 2022
ロック画面時に謎だったのですが、
このアプリを入れてみて分かりました。
👉 センサーツールボックス - Google Play のアプリ
「近接センサー稼働中」
の明示ですね。
で、
ロック画面では、どの機能がLEDを点滅させているか?
ということですが、

[設定] - [システム] - [ジェスチャー] からの
「ふせるだけでサイレントモードをオン」
のようです。
👉 How to disable the annoying flashing dot on your Pixel 5 - 9to5Google

AndroidStudio 上でプロジェクトテンプレートの「KMM Application」を動かそうとすると以下のようにコケる。
An exception occurred applying plugin request [id: 'com.android.application']
> Failed to apply plugin 'com.android.internal.application'.
> Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.
You can try some of the following options:
- changing the IDE settings.
- changing the JAVA_HOME environment variable.
- changing `org.gradle.java.home` in `gradle.properties`.
* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 509ms
Command PhaseScriptExecution failed with a nonzero exit code
** BUILD FAILED **
The following build commands failed:
PhaseScriptExecution Run\ Script
/Users/maochanz/AndroidStudioProjects/KMM/build/ios/iosApp.build/Debug-iphoneos/iosApp.build/Script-7555FFB524251A00829871.sh (in target 'iosApp' from project 'iosApp')
(1 failure)
先程のビルドエラーのメッセージにもあるように、Java 11 (JDK) を IDEである AndroidStudio に認識させる方法として、3つが挙げられている。
- IDE設定の変更
- 環境変数 JAVA_HOME の変更
- gradle.properties の org.gradle.java.home の変更
この3つのうち、どれを変更すればいいのか。
AndroidStudio には、以下でビルド時のJDKを選択できる。
[Preferences]
↓
[Build]
↓
[Build Tools]
↓
[Gradle JDK]

現在の AndroidStudio には、「openjdk version "11.0.10" 2021-01-19」 が同梱されており、それを選択することもできるし、別に自分でインストールしているものも選択可能になっている。
Android Studio 2.2 以降には最新バージョンの OpenJDK のコピーがバンドルされています。この JDK バージョンを Android プロジェクトで使用することをおすすめします。https://t.co/SlOhcOr3y1
— chanzmao (@maochanz) January 27, 2023
Android Studio Electric Eel | 2022.1.1 の JDK11 設定 https://t.co/IunCsj5G3y #android #kotlin #プログラミング勉強中
— chanzmao (@maochanz) January 27, 2023
しかし、IDEA製品では、自分で入れたJDKを使うほうが良さそう。
JetBrains IDE製品には、JetBrains Runtime(JBR)と呼ばれるIDE自体の実行に使用されるJava実行環境が同梱されています。これは皆さんが書くコードのコンパイルや実行に使用するためのJDKとは(本来)別のものです。https://t.co/DCSAxaK1KA #android #kmm #androidstudio #プログラミング
— chanzmao (@maochanz) January 18, 2023
Mac に Homebrew で OpenJDK11 を インストール する https://t.co/ixFMjoNEu2 #androidstudio #Android
— chanzmao (@maochanz) November 1, 2022
インストールしたら、パスを確認しておきましょう。
❯ /usr/libexec/java_home -V
Matching Java Virtual Machines (1):
11.0.18 (x86_64) "Homebrew" - "OpenJDK 11.0.18" /usr/local/Cellar/openjdk@11/11.0.18/libexec/openjdk.jdk/Contents/Home
/usr/local/Cellar/openjdk@11/11.0.18/libexec/openjdk.jdk/Contents/Home
影響範囲: AndroidStudio 上のすべてのプロジェクト
利用するユーザーの環境変数の JAVA_HOME に設定する。
先程、確認した同梱JDKのパスをセットします。
❯ vi .zshrc
...
export JAVA_HOME=$(/usr/libexec/java_home -v11)
export PATH="$JAVA_HOME/bin:$PATH"
❯ source .zshrc
❯ echo $JAVA_HOME
/usr/local/Cellar/openjdk@11/11.0.18/libexec/openjdk.jdk/Contents/Home
❯ java -version
openjdk version "11.0.18" 2023-01-17
OpenJDK Runtime Environment Homebrew (build 11.0.18+0)
OpenJDK 64-Bit Server VM Homebrew (build 11.0.18+0, mixed mode)
この環境変数を利用して AndroidStudio は、JDK の位置を認識します。
しかし、ユーザー単位の環境変数なので、これを利用した他のアプリケーションにも影響するかもしれません。
AndroidStudio の再起動で反映されます。
影響範囲: OS上 JAVA_HOME 利用アプリケーションたち
gradle.properties は、AndroidStudio 上のプロジェクトの gradle 設定ファイルです。
以下のように追記します。
org.gradle.java.home=/usr/local/Cellar/openjdk@11/11.0.18/libexec/openjdk.jdk/Contents/Home
AndroidStudio 上部メニューから [Build] → [Rebuild Project] で反映されます。

影響範囲: AndroidStudio上 該当プロジェクト

❯ ./gradlew -version
------------------------------------------------------------
Gradle 7.6
------------------------------------------------------------
Build time: 2022-11-25 13:35:10 UTC
Revision: daece9dbc5b79370cc8e4fd6fe4b2cd400e150a8
Kotlin: 1.7.10
Groovy: 3.0.13
Ant: Apache Ant(TM) version 1.10.11 compiled on July 10 2021
JVM: 11.0.18 (Homebrew 11.0.18+0)
OS: Mac OS X 13.1 x86_64
ビルド自体は、JAVA_HOME の変更か、gradle.properties の変更、のどちらか一つで通り、生成されたアプリも問題ないようにみえる、が正しくはどうなのか。
上記の設定で改善されない場合は以下で。
Java home is different. が消えない。 https://t.co/V0tUkHuOGj #android #AndroidDev #プログラミング #kotlin #java
— chanzmao (@maochanz) November 13, 2022
【Android Studio】Settings - Build Tools - Gradle JDK の選択肢がゴミだらけで意味不明の場合
👉 https://t.co/GXGX1v50Im #android #androidstudio #gradle #jdk #プログラミング pic.twitter.com/qAl0GvxsDk— chanzmao (@maochanz) January 25, 2023
👉 Mac に Homebrew で OpenJDK11 を インストール する
👉 JetBrains Toolbox で Android Studio の Stable/Beta/Canary が同時に管理できる?
👉 Android Studio と JDKバージョン