Android関連のことを調べてみた2022年03月07日

Android関連のことを調べてみた2022年03月07日

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のアイテムアニメーションが追加されました。
これにより、リストの位置が変更されたときに自動でアニメーションが効くようになりました。

まだ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://qiita-image-

元記事を表示

Jetbrains ToolboxでAndroid StudioのBeta版やCanary版などをインストールする手順

できるだけJetbrains ToolboxでIntelliJ系のIDEは管理しておきたいものですが、 (M1 Macなどで買い換える機会があれば試してみてください)
ちょっと深いところに設定があって毎回諦めそうになるのでメモしておきます。

https://www.jetbrains.com/ja-jp/toolbox-app/

(豆知識なんですが、このアプリ、確かCompose Desktopで作られているらしいですね。)

本題なんですが、この右側の `︙` からSettingsを開き、

Other versionsを開きます。

すると一覧が出てきます。

元記事を表示

Android (Kotlin) で権限の確認と、要求する方法

Kotlin で Android で特定の機能を使用するための権限(パーミッション)を持っているかの確認をしたり、その機能を利用するために権限をユーザーに要求(リクエスト)する方法について解説します。Android12以下での動作を想定しています。

## 準備

### minSdk

後で紹介する checkSelfPermission を呼ぶために、minSdk は 23 以上を指定します。それ以外のSdkバージョンは以下の通りです。

~~~build.gradle
compileSdk 31

defaultConfig {
minSdk 23
targetSdk 31
}
~~~

### uses-permission

AndroidManifest.xml には必要とする権限の名前を書いておきます。カメラを利用するならカメラ用の権限、Bluetooth を利用するならBluetooth用の権限を書きます。以下の例では、大まかな現在位置を取得するための権限を書いています。

~~~AndroidManifest.xml

元記事を表示

【第三回】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-

元記事を表示

【第二回】UnityでAndroidゲームアプリを作る ~ステージ作り~

# 本連載について
– 本連載では、私が趣味で個人開発しているAndroidゲームの作成過程を記録していこうと思っています。
– 作るゲームは2Dの横スクロールアクションにしていこうと思っています。
– [前回の記事はこちら](https://qiita.com/CPyRbJvCHlCs/items/e2a1581768fdbc963467)

# 本記事について
本記事では以下の内容を記載します。使用するUnityは2020.3.27f1です。
– [前回の記事](https://qiita.com/CPyRbJvCHlCs/items/e2a1581768fdbc963467)で集めた素材を加工し、ステージ作りに使用出来るようにする。
– ゲームのステージ背景を用意する。
– ゲームのステージに地面等を配置する。

# 背景の準備
前回の記事で素材を集めてきましたが、集めただけではゲーム内で使用するための準備は整っていません。以下の手順でまず背景の準備を行います。
1. 以下のように、[前回の記事](https://qiita.com/CPyRbJvCHlCs/items/e2a1

元記事を表示

Android studioとARcore

初めまして、システムエンジニアのとまとです。

今回は2月末までできていたAndroidStudioでの
ARcoreについて説明していきたい思います。

公式ドキュメント

Android Studio
https://developer.android.com/?hl=ja

ARCore
https://developers.google.com/ar

ついこの前までAndroidStudioでARcore
を使用してた人もいると思います。

しかし、Androidstudio v4.2.1以前の
バージョンでは使用できなくなってしまい
衝撃を受けました。

この前までは、下図のようにできたのですが、
![23294822-07F9-41BE-8A1F-E93BAC32BDB2.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2568816/d67fbc22-182c-3fdc-04e8-cef6f83d7466.jpeg)

前のバージョンで起動しようとしても下図のようになります。

![

元記事を表示

Bindingの簡単な設定方法

# 初めに
Bindingの設定をするのに まだ完全に身についておらず、過去自分の作業したものを遡ったり、他の記事を探したりするのが億劫になったので議事録としてBindingの設定方法を残しておきます

まずは BindingさせたいLayout.xmlとBindingを使用したいClassを用意します
“`php:activity_main.xml
【Kotlin】Androidアプリ「SASUKEクイズ」をつくった

# はじめに
本業でずっとReact Nativeを使っているのですが、ネイティブ言語経験なしでモバイルアプリを作っていることに不安(劣等感?)を感じてきました。
eject済みでネイティブまわりの知識が必要といえば必要で、iOSよりAndroidまわりで引っかかることが多いので、とりあえずKotlinに触れてみることにしました。
そんな感じで3~4時間かけて超簡単なクイズアプリをつくってみました。

一応、Kotlin初心者向けの記事となっています。

# アプリの概要
アプリ操作の流れは以下のようになります。
1. ユーザ名を入力して解答スタート(スタート画面)
2. 全5問のSASUKEレジェンドクイズに解答(クイズ画面)
3. 全問解答後に正答数を表示(結果画面)

選択肢を選んで「送信」ボタンを押すと、正解の場合は緑、不正解の場合は赤で選択肢が表示されます。
現在が何問目であるかどうかは、質問と選択肢の間にあるプログレスバーで確認することができます。

2022/3/3までに発売された主なfoldable端末の解像度まとめ

# 目的
foldable端末が増えたことによって
– 縦方向表示だが横方向に十分な描画領域のある端末

が増えてきました。
今後、android開発においては端末のorientationだけでは適切な表示ができないケースが増えてくると想定されます。
現時点でどのように閾値を設定するかの考慮材料としてまとめてみます。
なお、
– 主に横方向折りたたみのもの
– 話題になったもの(主観

を中心にまとめました

# 一覧
|端末名|メーカー|見開き時解像度(縦x横)|折りたたみ時解像度(縦x横)|発売時期(凡そ)|公式ページ|
|—|—|—|—|—|—|
|Mate X|Huawei|2480 x 2200|2480 x 1149|2019年-月|—|
|Galaxy Fold|Samsung|2152 x 1536|1680 x 720|2019年10月25日|https://www.galaxymobile.jp/galaxy-fold/|
|Galaxy Z Fold2|Samsung|2208 x 1768|2260 x 816|2020年11月4

レイアウト作成時に利用できるサンプルデータ

# 初めに
今回の主旨としては、レイアウト作成時に画像や名前といったサンプルのデータを入れておきたいけど、パッと代用できるものが出てくる様なものではないものに対して行う設定です

### やること
レイアウトを確認するのに、わざわざ関係のない画像を用意したり適当な文言を考えるのって少し面倒ですよね?

そんな時に使えるのが`tools:sample`です
これ、どういったものかというとAndroid側が用意したダミーのリソースを使うことができるんですね。
なので、画像や名前、日時などを勝手に当てはめてくれます
書き方はすごく簡単で

“`xml

“`
これだけです
こうすることで下記の様に適当な画像を当てはめてくれます。
ただ、なぜか虫の画像ばかりな

元記事を表示

HiltでPermissionチェック

PermissionのチェックをHiltでやってみようと思います。

### 条件

* Hilt導入済み

### Listenerを作成

“`kotlin
interface PermissionListener {

fun permissionGranted()
fun permissionDenied()
}
“`

### Lifecycleと紐付ける

Lifecycleと紐付けるため、継承出来るようにします。

“`kotlin
abstract class AbstractPermissionObserver : DefaultLifecycleObserver {

var isGranted: Boolean = false
var permissionListener: PermissionListener? = null

abstract fun launch()
abstract fun checkPermission(): Boolean
}
“`

### 位置情報のPermissionチェック

元記事を表示

Hiltを使って位置情報を取得する

位置情報の取得で、LocationManagerが将来的に廃止されるため、FusedLocationProviderClientに切り替えたました。
その際、HiltとLiveDataを使用してどこでも位置情報の変更を受信出来るようにしたので、それを説明したいと思います。

### 条件

* permissionに位置情報を追加
* permissionの許可を取得済み
* Hiltを導入済み

### ModuleにFusedLocationProviderClientを定義

“`kotlin
@Module
@InstallIn(SingletonComponent::class)
class AppModule {
@Provides
@Singleton
fun provideFusedLocationProviderClient(@ApplicationContext context: Context): FusedLocationProviderClient {
return LocationServices.getFusedL

元記事を表示

FlutterでCloud Firestoreを使う(Android)

### FlutterでCloud Firestoreを使う

スケルトンで作成されるカウンターアプリをFirebaseのCloud Firestoreを使用するカウンターアプリに変更したいと思います。

### 条件

* Flutter 2.10.3
* Cloud Firestoreのテスト開発

### 事前準備

* google-services.json

Firebaseで取得したgoogle-services.jsonをapp配下にコピーします。

* AndroidManifest.xml

“android.permission.INTERNET”を追加する

“`xml


“`

* google-servicesを追加する

元記事を表示

【Android】Perffetoを用いて爆速でパフォーマンス計測を行う方法

# はじめに
Perfettoを用いてシステムトレースするには、(方法によっては)計測用のコマンドを作成して、実行結果を持ってきてGUI上で確認するなど、少し手間がかかる場合があります。

なので本記事では、Perfettoを用いて(自分が試した中で)**最も短時間で計測できる方法**を紹介します。(Android StudioのProfiler使えばもっと速いととかはなし 笑)

# Perfettoとは?
Perfettoは、Androidデバイス内のシステムトレースをするツールのことです。
システムトレースとは、例えばCPUやメモリの使用率、各プロセスの情報などを記録することを言います。

以前に、このPerfettoを用いて[ZOZOTOWNアプリのボトルネックを特定・改善した話](https://techblog.zozo.com/entry/android-performance-improvement-with-perfetto
)を書きました。

上記の記事では、Perfettoでどのようにボトルネックを特定し、どのように改善したかを書いているので、実用的な使い方を知り

元記事を表示

【Android】絵文字判定

# はじめに

絵文字かどうかを判定する方法について説明。[こちらの記事](https://qiita.com/nakashimaakio/items/487e586a0c942f73cf9e)でも書いたが、ここでは[getEmojiMatch](https://developer.android.google.cn/reference/androidx/emoji2/text/EmojiCompat#getEmojiMatch(java.lang.CharSequence,%20int))を使用する方法について説明。

# コード

## ビルド依存関係を追加

emoji2ライブラリを追加。

“`build.gradle
implementation “androidx.emoji2:emoji2:1.1.0”
“`

## 処理内容

“`getEmojiMatch“`メソッドの第1引数は判定したいテキスト、第2引数はmetadataVersionを入れている。

“`Kotlin
fun CharSequence.isEmoji(): Boolean {
val

元記事を表示

【Android】キーボード関連の処理

# はじめに
キーボード関連の処理をメソッド形式でメモ。

# コード
キーボード表示状態の確認

“`Kotlin
fun keyboardVisibility(view: View) =
view.height > Rect().apply { view.getWindowVisibleDisplayFrame(this) }.height()
“`


キーボードの表示

“`Kotlin
fun showKeyboard(editText: EditText) {
editText.requestFocus()
val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
imm.showSoftInput(editText, 0)
}
“`


キーボードの非表示

“`Kotlin
fun hideKeyboard() {
val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as Inp

元記事を表示

Android + Gradle 探訪 – 後編: buildSrc や Version Catalog

![vercat.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/359439/a7bc9489-13f4-8663-8655-1f08229b57de.png)

最近は Gradle の構成を Groovy ではなく KTS (一連の Gradle の Kotlin DSL) で書いたり
`buildSrc` や Version Catalog に依存をまとめるのがナウそうですが,
Android Studio で作成した新規プロジェクトはシンプルな Groovy で記述されています.

Kotlin DSL などについて まったくわかっていないので (Groovy もだけど),
この機会に `Empty Compose Activity` Project を題材にして,
最近の Gradle の構成や記述について調べようと思いました.

:point_down: 前編:

https://qiita.com/mangano-ito/items/0537d70701e1e85223e7

## モジュ

元記事を表示

Android + Gradle 探訪 – 前編: Groovy → KTS (Kotlin DSL) 書き換え

![droid_gr_kt2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/359439/2168c8c5-a2b4-c23b-e125-e0441a20eb00.png)

最近は Gradle の構成を Groovy ではなく KTS (一連の Gradle の Kotlin DSL) で書いたり
`buildSrc` や Version Catalog に依存をまとめるのがナウそうですが,
Android Studio で作成した新規プロジェクトはシンプルな Groovy で記述されています.

Kotlin DSL などについて まったくわかっていないので (Groovy もだけど),
この機会に `Empty Compose Activity` Project を題材にして,
最近の Gradle の構成や記述について調べようと思いました.

:point_down: 後編:

https://qiita.com/mangano-ito/items/7e13f1988f9da61746b8

元記事を表示

OTHERカテゴリの最新記事