- 1. Android12以上だとpush通知受信でクラッシュする
- 2. Sync Gatewayデプロイメント:ロードバランサーとの連携
- 3. Sync Gateway機能解説:Sync Gateway間レプリケーション
- 4. Solar2DのAndroidアプリにusesCleartextTrafficを設定する
- 5. ソフトキーボード出現時に画面内に残るエリアを変更するにはrequestRectangleOnScreenをoverrideする
- 6. Sync Gateway 機能解説:メトリクスREST APIとパブリックREST API
- 7. 【Android】TextView内のURLリンク
- 8. Couchbase Lite機能解説:クエリAPI④関数
- 9. Couchbase Lite機能解説:クエリAPI③ 演算子
- 10. UnitTestにて、verifyでの比較が失敗する時の解決策
- 11. Kotlin FlowのUnitTestをturbineでサクッと書く
- 12. Glanceを使ってJetpackComposeでAndroidのウィジェットを開発しよう
- 13. Androidアプリケーション技術者認定試験ベーシックに合格への道
- 14. ContentProviderでUnknown authorityで困った話
- 15. Jetpack Compose で背景画像を repeat させる
- 16. Couchbase Lite機能解説:クエリAPI①ステートメント
- 17. animateItemPlacementは追加と削除のアニメーションは提供されていないという話
- 18. PreferenceHeaderFragmentCompatを使って2ペイン対応の設定画面を作る
- 19. Jetbrains ToolboxでAndroid StudioのBeta版やCanary版などをインストールする手順
- 20. 【第三回】UnityでAndroidゲームアプリを作る ~キャラクターをとりあえず立たせる~
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.
animateItemPlacementは追加と削除のアニメーションは提供されていないという話
Jetpack Compose 1.1.0にanimateItemPlacementというmodifierが追加されて、LazyColumn/Rowのアイテムアニメーションが追加されました。
これにより、リストの位置が変更されたときに自動でアニメーションが効くようになりました。The API is really simple. You just need to apply a special modifier for the item content. Don't forget to also provide keys for your items so it is possible to find the new position for the moved element pic.twitter.com/q8d01hASmX
— Andrey Kulikov (@and_kulikov) November 2, 2021
まだExperimentalAPIですが、いい感じに動作しています。現状は単純にmodifierに指定するだけで使うことができるのでとてもかんたんです。
“`kotlin
items(uiState.cards, key = { it.id }) {
Column(modifier = Modifier.animateItemPlacement()) {
// Copose…
}
}
“`itemsの要素にanimateItemPlacementをつけて上げる感じです。
また、itemsの
PreferenceHeaderFragmentCompatを使って2ペイン対応の設定画面を作る
androidx.preference の 1.2.0 から `PreferenceHeaderFragmentCompat` が使えるようになっています。
2ペイン対応の設定画面を簡単に作ることができます。https://developer.android.com/jetpack/androidx/releases/preference
画面の幅が一定を超えると2ペインモード、一定以下なら1ペインモードに切り替わります。
Foldableデバイスの開閉や、タブレットの画面回転などに応じて、幅を有効活用できるレイアウトに切り替えることができます。
Deprecatedになってしまった [PreferenceActivity](https://developer.android.com/reference/android/preference/PreferenceActivity) でできていたことですが、これがモダンなライブラリを使って実現できるようになっています。## 2ペインモード
タブレット
|||
|–|–|
|
ちょっと深いところに設定があって毎回諦めそうになるのでメモしておきます。https://www.jetbrains.com/ja-jp/toolbox-app/
(豆知識なんですが、このアプリ、確かCompose Desktopで作られているらしいですね。)
本題なんですが、この右側の `︙` からSettingsを開き、
Other versionsを開きます。
すると一覧が出てきます。
【第三回】UnityでAndroidゲームアプリを作る ~キャラクターをとりあえず立たせる~
# 本連載について
– 本連載では、私が趣味で個人開発しているAndroidゲームの作成過程を記録していこうと思っています。
– 作るゲームは2Dの横スクロールアクションにしていこうと思っています。
– [前回の記事はこちら](https://qiita.com/CPyRbJvCHlCs/items/29fc47a768d47e73b85f)# 本記事について
本記事では以下の内容を記載します。使用するUnityは2020.3.27f1です。
– [前回の記事](https://qiita.com/CPyRbJvCHlCs/items/29fc47a768d47e73b85f)で説明した方法で作ったステージに、操作するメインキャラクターの画像を配置する。
– メインキャラクターがちゃんと立てるようにする。# ステージの見た目
– [前回の記事](https://qiita.com/CPyRbJvCHlCs/items/29fc47a768d47e73b85f)で説明した方法で適当にお絵描きし、以下のようなステージにしました。![image.png](https://qiita-