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

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

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

元記事を表示

Flutterで動画編集ができるパッケージ、Tapiocaを作った話

Flutterで動画編集ができるパッケージ、Tapiocaを開発しているのですが、開発している中で知見がかなり多くあったので共有させていただきます!
![1646216090296result.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188304/ecac2b6c-6fa7-97d5-a669-5890d906b2c1.gif)

Tapiocaでは↑上のような動画編集が↓下のようなコードでシンプルに書けます。
“`dart
import ‘package:tapioca/tapioca.dart’;
import ‘package:path_provider/path_provider.dart’;

final tapiocaBalls = [
TapiocaBall.filter(Filters.pink),
TapiocaBall.imageOverlay(imageBitmap, 300, 5),
TapiocaBall.textOverlay(“Hello w

元記事を表示

Tencent Real-Time Communication(TRTC)を利用したAndroidデバイスでのビデオチャット

Tencent Real-Time Communication(TRTC)を利用してAndroidデバイスでのビデオチャットを試してみます.

環境要件
——————-
Android 4.1 (SDK API Level 16).推奨はAndroid 5.0 (SDK API Level 21)
Android Studio 3.5 以降
Android 4.1以降のデバイス

アプリケーションの立ち上げ
——————-
TRTCのプロダクトにアクセスし,左のDevelopmentAssistance→Demo Quick Runでアプリを作成します.
アプリ名は任意のもので結構です.

SDKと各プラットフォームのソースコードをダウンロード
——————–
アプリ名を入力するとSDKとソースコードがダウロードできる画面が表示されます.
今回はAndroidなのでAndroidのソースコードをダウンロードします.
ダウンロード後は **Downloaded and Next** を押して次のステップへ.

SD

元記事を表示

[Android]kotlin+firestore emulatorを使ったunit testを構築する

こんにちは。virapture株式会社のもぐめっとです。

![IMG_76DCF03199D4-1.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/42234/7c0e41b9-c3a2-e476-99ab-10846b5eaf02.jpeg)

最近もっぱら休みの日は山にこもって雪山に土下座する毎日なので自分の顔写真がないのが最近の悩みです。

本日はfirestoreのエミュレータを使ったunit testの方法について紹介します。

## 事前準備

firebaseコマンドでエミュレータを起動できるようにしておきます。

“`shell
npm install -g firebase-tools
cd {firebase.jsonを定義してるところがあるのディレクトリ}
“`

firebase.jsonがなければ下記コマンドでプロジェクトの設定をしましょう。

“`sh
firebase init
“`

emulatorを起動します。

“`
firebase start emu

元記事を表示

Jetpack ComposeのLazyRowカルーセルで見える要素数を指定する

Jetpack ComposeでLazyRowを使ったカルーセル表示をした際に、指定の要素数は必ず見えるように実装してみました?

今回実装したサンプルコードはこちらにおいてます

https://github.com/yasukotelin/JetpackComposeCarouselitemsonscreen

## まえおき
カルーセル表示は横方向へのリスト表示ですが、ディスプレイやコンテンツサイズとの兼ね合いで運が悪いとちょうど収まってしまい、ユーザーがスクロールできることを認知できない可能性があります。
そういうケースを想定して、必ず次の要素がチラ見えするように、3.2個表示などをしておくとユーザーにとても親切です。

↑ このようにちょうどコンテンツがディスプレイに収まってしまっているとスクロール可能である

元記事を表示

Composeを使っているプロジェクトのbuildSrcにAGPの依存を追加するとビルドがコケる件

## 問題

Composeを使っているプロジェクトで、LibraryExtensionなどを使うため`buildSrc/build.gradle.kts`にAGPの依存を追加すると、

`org.jetbrains.kotlin.backend.common.BackendException: Backend Internal error: Exception during IR lowering`

↑これが出てビルドがコケる。

### 環境

Kotlin: 1.6.10
AGP: 7.1.2
Jetpack Compose: 1.1.0

## 解決方法

`implementation(kotlin(“gradle-plugin:${kotlin_version}”))`をdependenciesに追加する。

“`buildSrc/build.gradle.kts
plugins {
`kotlin-dsl`
}

repositories {
mavenCentral()
google()
}

dependencies {
imple

元記事を表示

OTHERカテゴリの最新記事