- 1. Coil 1.x から Coil 2.x へ移行時に変更したこと
- 2. 親のViewModelを参照する方法
- 3. [Android]AVDManager操作時に”The selected AVD is currently running in the Emulator.”と言われた時の対処法
- 4. Couchbase Lite機能 解説:配列データへのクエリ
- 5. Android12以上だとpush通知受信でクラッシュする
- 6. Sync Gatewayデプロイメント:ロードバランサーとの連携
- 7. Sync Gateway機能解説:Sync Gateway間レプリケーション
- 8. Solar2DのAndroidアプリにusesCleartextTrafficを設定する
- 9. ソフトキーボード出現時に画面内に残るエリアを変更するにはrequestRectangleOnScreenをoverrideする
- 10. Sync Gateway 機能解説:メトリクスREST APIとパブリックREST API
- 11. 【Android】TextView内のURLリンク
- 12. Couchbase Lite機能解説:クエリAPI④関数
- 13. Couchbase Lite機能解説:クエリAPI③ 演算子
- 14. UnitTestにて、verifyでの比較が失敗する時の解決策
- 15. Kotlin FlowのUnitTestをturbineでサクッと書く
- 16. Glanceを使ってJetpackComposeでAndroidのウィジェットを開発しよう
- 17. Androidアプリケーション技術者認定試験ベーシックに合格への道
- 18. ContentProviderでUnknown authorityで困った話
- 19. Jetpack Compose で背景画像を repeat させる
- 20. Couchbase Lite機能解説:クエリAPI①ステートメント
Coil 1.x から Coil 2.x へ移行時に変更したこと
Coil 2.x が rc-01 から kotlin 1.6.10 に対応しました :tada:
https://coil-kt.github.io/coil/changelog/#200-rc01-march-2-2022これを気に Coil を 1.x から 2.x に Update してみたわけですが、多少変更が必要な箇所があったので備忘録を兼ねて記載します
## 関数名の変更
以下の関数名の変更がなされています。必要に応じて変えましょう。
– `loadAny` -> `load`
– `clear` -> `dispose`## OkHttpのDiskCacheは非推奨に
Coil に DiskCache が実装されたのでこれを使いましょう。
ちなみに以下で指定しているCacheサイズは [1.x のサイズ](https://github.com/coil-kt/coil/blob/1.x/coil-base/src/main/java/coil/util/Utils.kt#L43)を参考にしています。“`kotlin
ImageLoader
親のViewModelを参照する方法
# はじめに
ViewPagerを使っていると、Pager内の画面と親のFragmentでやりとりを行い、何かしらのアクションを起こしたい、ってことありますよね
最近ではViewModelを通して親子でやり取りするようなやり方が主流な気がしますが、Pager内のFragmentで親のViewModelを取得する方法を簡単に残しておこうと思います。# ViewModelの取得方法
取得方法は非常に簡単です。“`
private val parentViewModel by viewModels({ requireParentFragment() })
“`
以上です。
基本的なViewModelの取得方法にrequireParentFragmentを指定するだけになります。
上記で親のViewModelを取得可能です、あとはLiveData等を使って親Fragmentへ通知したりする形になるかと思います。# さいごに
親のViewModelを取得するのは簡単なのですが、ViewPagerを使うと双方の関係性が複雑になりがちなので、あらかじめし
[Android]AVDManager操作時に”The selected AVD is currently running in the Emulator.”と言われた時の対処法
# 概要
Android開発をしていて、エミュレータのデータやエミュレータ自体を消去したいときなどにAVDマネージャーを操作しようとすると以下のようなエラーが出ることがある。
PCを再起動したりするとうまくいくが、再起動せずとも解決できる方法があるので紹介する。
# 方法
## **.lockと名のつくファイルを全て消す**
コマンド
“`
rm ~/.android/avd/your_emulator/*.lock
“``your_emulator`に入れるemulatorの名前はlsで確認できる
“`
ls ~/.android/avd/
“`
例
上記の実行結果が以下だった場合
“`
Pixel_5_API_32.avd Pixel_5_API_32.ini
“`削除コマンド
“`
rm ~/.android/a
Couchbase Lite機能 解説:配列データへのクエリ
## はじめに
ここでは、Couchbase Liteデータベースで配列を含むJSONドキュメントへクエリする方法について解説します。
なお、Couchbase Mobileについては、[Couchbase Mobileアプリケーション開発へのロードマップ](https://qiita.com/yoshiyuki_kono/items/6a5bbad1b02196a25417)に記事をまとめている他、(これらの記事を元に構成した)以下の電子書籍を無償で頒布しています。
https://techbookfest.org/product/5074954942939136?productVariantID=5042865933647872
また、Couchbase Mobileは、Couchbase LiteとCouchbase Serverとのデータ同期機能を提供します。Couchbase Serverの存在意義、機能詳細、利用方法等については、拙著[NoSQLドキュメント指向データベースCouchbase Serverファーストステップガイド(インプレスR&D刊)](https:
Android12以上だとpush通知受信でクラッシュする
“`
2022-03-10 11:12:43.765 1360-2196/? E/HwDetectorWithState: a: 3
2022-03-10 11:13:03.322 364-364/? E/android.hardware.power.stats@1.0-service-mock: Failed to getEnergyData
2022-03-10 11:14:00.148 10586-10824/xxxxxxxxxxxxxxxxxxxxxxxxxxxxx E/AndroidRuntime: FATAL EXCEPTION: Firebase-Messaging-Intent-Handle
Process: xxxxxxxxxxxxxxxxxxxxxxxxxxxxx, PID: 10586
java.lang.IllegalArgumentException: xxxxxxxxxxxxxxxxxxxxxxxxxxxxx: Targeting S+ (version 31 and above) requires that one of FLAG_
Sync Gatewayデプロイメント:ロードバランサーとの連携
## はじめに
ここでは、Couchbase Mobileを構成するSync Gatewayをデプロイする際のロードバランサーとの関係について解説します。
なお、Couchbase Mobileについては、[Couchbase Mobileアプリケーション開発へのロードマップ](https://qiita.com/yoshiyuki_kono/items/6a5bbad1b02196a25417)に記事をまとめている他、(これらの記事を元に構成した)以下の電子書籍を無償で頒布しています。
https://techbookfest.org/product/5074954942939136?productVariantID=5042865933647872
また、Couchbase Mobileは、Couchbase LiteとCouchbase Serverとのデータ同期機能を提供します。Couchbase Serverの存在意義、機能詳細、利用方法等については、拙著[NoSQLドキュメント指向データベースCouchbase Serverファーストステップガイド(インプレスR&D
Sync Gateway機能解説:Sync Gateway間レプリケーション
## はじめに
ここでは、Couchbase Mobileを構成するSync Gatewayの機能であるSync Gateway間レプリケーションについて解説します。
なお、Couchbase Mobileについては、[Couchbase Mobileアプリケーション開発へのロードマップ](https://qiita.com/yoshiyuki_kono/items/6a5bbad1b02196a25417)に記事をまとめている他、(これらの記事を元に構成した)以下の電子書籍を無償で頒布しています。
https://techbookfest.org/product/5074954942939136?productVariantID=5042865933647872
また、Couchbase Mobileは、Couchbase LiteとCouchbase Serverとのデータ同期機能を提供します。Couchbase Serverの存在意義、機能詳細、利用方法等については、拙著[NoSQLドキュメント指向データベースCouchbase Serverファーストステップガイド(イ
Solar2DのAndroidアプリにusesCleartextTrafficを設定する
## http通信エラー
Solar2Dで開発したAndroidアプリからサーバーへhttp通信しようとすると、usesCleartextTrafficがデフォルトfalseのためエラーが発生しました。
## 解決方法
最も良いのはhttps通信にすることですが、諸事情によりそれはできないので、プロジェクト直下に`AndroidResources/res/xml/network_security_config.xml`を作成して解決しました。
“`xml:network_security_config.xml
sample.com
“`
## 補足
use
ソフトキーボード出現時に画面内に残るエリアを変更するにはrequestRectangleOnScreenをoverrideする
ScrollViewなどスクロール可能なViewの上にあるEditTextにフォーカスをあて、ソフトキーボードで入力するとき、日本語の場合は特に変換候補が複数行にわたって表示されるなど、表示可能なエリアが入力に応じて変動します。
デフォルトのEditTextを使っている場合、そのEditTextが画面内に収まるようにスクロールしてくれるのですが、入力文字数を表示するカウンターなど、EditTextの下にある要素も見える位置までスクロールして欲しい!ということがあるかと思います。
TextInputLayoutとTextInputEditTextを使えばそのような動作になります。
同様の動作を他の要素でもやりたい。という場合どうすれば良いかの説明です。|ScrollViewの上のEditTextを配置|入力中はEditTextの範囲が画面内に収まる位置にスクロールされる|EditTextだけでなく、下のテキストまで見えて欲しい|
|–|–|–|
|に記事をまとめている他、(これらの記事を元に構成した)以下の電子書籍を無償で頒布しています。
https://techbookfest.org/product/5074954942939136?productVariantID=5042865933647872
また、Couchbase Mobileは、Couchbase LiteとCouchbase Serverとのデータ同期機能を提供します。Couchbase Serverの存在意義、機能詳細、利用方法等については、拙著[NoSQLドキュメント指向データベースCouchbase Serverファーストステップガイド(
【Android】TextView内のURLリンク
# 文字内にURL埋め込み (下線あり)
xmlの“`“`タグを使用。“`strings.xml
確認はこちらから
“`“`activity_main.xml
Couchbase Lite機能解説:クエリAPI④関数 ## はじめに
ここでは、Couchbase Lite 3.0の新機能であるSQL++/N1QLクエリAPIについて解説します。
なお、Couchbase Mobileについては、[Couchbase Mobileアプリケーション開発へのロードマップ](https://qiita.com/yoshiyuki_kono/items/6a5bbad1b02196a25417)に記事をまとめている他、(これらの記事を元に構成した)以下の電子書籍を無償で頒布しています。
https://techbookfest.org/product/5074954942939136?productVariantID=5042865933647872
また、Couchbase Mobileは、Couchbase LiteとCouchbase Serverとのデータ同期機能を提供します。Couchbase Serverの存在意義、機能詳細、利用方法等については、拙著[NoSQLドキュメント指向データベースCouchbase Serverファーストステップガイド(インプレスR&D刊)](https://
Couchbase Lite機能解説:クエリAPI③ 演算子
## はじめに
ここでは、Couchbase Lite 3.0の新機能であるクエリAPIについて解説します。
なお、Couchbase Mobileについては、[Couchbase Mobileアプリケーション開発へのロードマップ](https://qiita.com/yoshiyuki_kono/items/6a5bbad1b02196a25417)に記事をまとめている他、(これらの記事を元に構成した)以下の電子書籍を無償で頒布しています。
https://techbookfest.org/product/5074954942939136?productVariantID=5042865933647872
また、Couchbase Mobileは、Couchbase LiteとCouchbase Serverとのデータ同期機能を提供します。Couchbase Serverの存在意義、機能詳細、利用方法等については、拙著[NoSQLドキュメント指向データベースCouchbase Serverファーストステップガイド(インプレスR&D刊)](https://www.amazon
UnitTestにて、verifyでの比較が失敗する時の解決策
# 初めに
今回、自分が仕事でUnit testを書いていたときに起こったエラーに大きくつまづいたので備忘録として書かせていただきます。
早速ですがエラー内容としては下記の様なものでした
“`
Verification failed: call 1 of 1: 受け取った比較対象. Only one matching call to 用意した比較対象 happened, but arguments are not matching:
[0]: argument: 受け取った比較対象のインスタンスなど詳細情報, matcher: 用意した比較対象のインスタンスなど詳細情報, result: –
“`
では、なぜこの様なエラーが起きてしまうのか。
引数のクラスがdataクラスではないため、equlsが実装されていなくて、引数の比較が失敗するからです### 解決策
では、どの様に解決すべきなのかです。
実はものすごく単純なもので比較をこちらが作って仕舞えばいいのです。
実装方法は下記になります“`kotlin:
verify {
match {
Kotlin FlowのUnitTestをturbineでサクッと書く
Kotlin FlowのUnitTestが上手く書けない・意図したテストにならないなと悩んでいたところ、同じ職場の@iwata-nさんに[turbine](https://github.com/cashapp/turbine)というライブラリを紹介していただきました。(名前がとてもカッチョイイ✨)
導入してみたところ、「今まで悩んでいたのはなんだったのか」と思うほど簡単にテストを書くことができて興奮したので記事を書きました。
# この記事で紹介すること
[turbine](https://github.com/cashapp/turbine)を使ったKotlin FlowのUnitTestの作成方法を紹介していきます。# 最初にやること(dependencies)
build.gradleに以下を追加してください。(2022年3月現在)“`gradle
repositories {
mavenCentral()
}
dependencies {
testImplementation ‘app.cash.turbine:turbine:0.7.0’
}
“`な
Glanceを使ってJetpackComposeでAndroidのウィジェットを開発しよう
# はじめに
昨年、Glanceのアルファリリースがあり、22年3月現在はalpha-03が公開されています。([Glanceとは?](https://android-developers-jp.googleblog.com/2022/01/announcing-jetpack-glance-alpha-for-app.html?m=1))
RemoteViewは使用せず、JetpackComposeを使ってウィジェットが作成できるとあって注目されています。
今回は、Glanceを使って1からウィジェットを作成してみたので、使い方やポイントを紹介します。
基本的な作りから、DBから値を取ってきて反映するところまで試してみました。
ベストプラクティスではなく、調べたり試行錯誤したりしつつ行ったので、お気づきの点がありましたらツッコミをいただければと思います。# 確認環境
“`kotlin
// Glance
androidx.glance:glance-appwidget:1.0.0-alpha03
// Kotlin
org.jetbrains.kotlin:kotlin-s
Androidアプリケーション技術者認定試験ベーシックに合格への道
# はじめに
去年の夏頃、Androidアプリケーション技術者認定試験を受けて合格しました。
勉強方法や参考書など、検索しても古いものが多かったので、最近の合格談として皆様の参考になればと思い記事にしました。# 試験について
http://it.prometric-jp.com/testlist/android/受験料:¥16,500(税込)
受験可能日:ほぼ毎日(会場によっては土日祝も○)
試験形式:70問4択 70%以上の正答で合格
出題範囲:[アプリケーション技術者試験](http://ace.it-casa.org/ace/scope/)出題内容的にはかなり内容が古いです。
出題内容が古いままなので、参考書も新しいものが出ていません。。# 難易度は?
Android java1年、kotlin1年経験した状態で勉強を始めましたが、知らない内容が結構ありました。(個人差あり)
参考書の理解、問題集のやり込みをしないとまず受からないと思います。
andorid javaの知識があれば、参考書もスラスラ読めるので勉強自体にはそこまで時間がかからないと思います。
ContentProviderでUnknown authorityで困った話
ContentProviderを使ってデータを取得しようとしてエラーに引っかかってしまい時間をとられた
“` error
java.lang.IllegalArgumentException: Unknown authority com.sample.content.provider.testprovider
at android.content.ContentResolver.call(ContentResolver.java:2402)
at com.sample.content.client.MainActivity.loadText(MainActivity.kt:27)
at com.sample.content.client.MainActivity.onCreate$lambda-0(MainActivity.kt:17)
at com.sample.content.client.MainActivity.lambda$9zIV18Q6InENemqclwLnyzJ6Kg8(Unknown Sou
Jetpack Compose で背景画像を repeat させる
Android で背景画像を repeat させるには、以下のように実装します。[^1]
“`xml:tile_background.xml
“`“`xml
Couchbase Lite機能解説:クエリAPI①ステートメント ## はじめに
ここでは、Couchbase Lite 3.0の新機能であるクエリAPIについて解説します。
なお、Couchbase Mobileについては、[Couchbase Mobileアプリケーション開発へのロードマップ](https://qiita.com/yoshiyuki_kono/items/6a5bbad1b02196a25417)に記事をまとめている他、(これらの記事を元に構成した)以下の電子書籍を無償で頒布しています。
https://techbookfest.org/product/5074954942939136?productVariantID=5042865933647872
また、Couchbase Mobileは、Couchbase LiteとCouchbase Serverとのデータ同期機能を提供します。Couchbase Serverの存在意義、機能詳細、利用方法等については、拙著[NoSQLドキュメント指向データベースCouchbase Serverファーストステップガイド(インプレスR&D刊)](https://www.amazon.