Android関連のことを調べてみた2021年11月20日

Android関連のことを調べてみた2021年11月20日
目次

Androidのレイアウト概要

# はじめに
普段は、iosエンジニアなのですが、androidも書きたくて、まず参考書を読むことにしました。

Androidはなんとなく全体像は知っているので、一番気になるレイアウトの章から読みました。

全部読み終えてから、改めてまとめるつもりなので、
この記事では、その時用のメモのようにラフにまとめます。

# ビューのヒエラルキー
ViewGroupeだけがサブビューを持てる。
iosではどのviewもsubviewsプロパティにサブビューを格納できるので、汎用性はiosの方が高いか。

# レイアウト
仕事としてはmeasureパスとlayoutパスがあり、
measureパスはサイズ、layoutパスは座標を決定する。

measureパスが終わってから、layoutパスがよばれる。
つまり、ビューヒエラルキー内のビューのサイズを全て決定してから、適当な座標に置いていく感じか。

## measure()
Viewクラスにはmeasure()メソッドがあり、自身のサイズをこの中で決定する。
`measure()`メソッド内で、`onMeasure(int widthMe

元記事を表示

Android TextViewリンク多言語対応するときの色々

# はじめに
androidのTextViewリンク化(多言語)について、自分が下記のものを調べたけど、
うまく行けなかったので、色々を試して、簡単に共有します。



# 問題点
TextView内の多言語リンクうまく表示できないこと

resourcesファイル

“`

Here is google page

“`

xmlファイル

“`

元記事を表示

LazyColumn/RowでLazyListStateにアクセスするタイミングを間違えるとパフォーマンスが悪くなる

`LazyColumn` / `LazyRow` の引数である content の `LazyListScope` 内で `LazyListState` へのアクセスすると必要以上に recompose されるようになりパフォーマンスが悪くなる場合があります。

良くない実装と改善するとしたらのコードを書いていきます。

## コード例

### 良くない例

“`kotlin
@Composable
fun VerticalList(items: List, onReachedBottom: () -> Unit) {
val listState = rememberLazyListState()
val currentOnReachedBottom by rememberUpdatedState(onReachedBottom)
LazyColumn(state = listState) {
items(items) {
Text(text = it)
}
if

元記事を表示

MLKitで顔のパーツのポジションを取るには(Android)

まず公式サイトを貼ります:

https://developers.google.com/ml-kit/vision/face-detection/android#1.-configure-the-face-detector

setLandmarkModeに入ります:

https://developers.google.com/android/reference/com/google/mlkit/vision/face/FaceDetectorOptions.Builder#setLandmarkMode(int)

二択しかないのでパーツを取りたい時には以下の設定にしてください:

“`
// 特徴を取るかどうか
.setLandmarkMode(FaceDetectorOptions.LANDMARK_MODE_ALL)
“`
これをオンにすることで、全部の顔のパーツが読み取れるようになる。

その後

例えば左目のxポジションを取りたい時に以下のコードを

“`
x = face.getLandmark(FaceLandmark.LEFT_EYE).getPositio

元記事を表示

[Unity] AndroidのSpeechRecognizer(音声テキスト認識)を実装する

# はじめに
Unityで音声テキスト認識のサンプルを作成しました。
ポップアップが出て認識するものではなく、ポップアップなしのものになります。
実装方法などの忘却録。

https://developer.android.com/reference/android/speech/SpeechRecognizer?hl=ja

## 準備
macOS Catalina: 10.15.7
Unity 2018.4.19f
Android Studio 4.0.1

## Android Native Pluginの作り方
以前、Android Pluginのmodule作成の基本的な作り方をまとめていますので、参考までに。

https://qiita.com/atsutama/items/28744b1a29e79184c3fc

## Android Plugin側のコード
UnitySendMessageを使う際には「jar」ファイルをインポートする必要がありますので、下記で確認出来ます。
この設定をしておかないとコードを書いた時にimportエラーが出ます。

https://q

元記事を表示

Couchbase Lite開発:Android用インストール手順

## はじめに

Couchbase Lite 3.0.0ベータは、Android SDKとして、Javaに加えKotlinをサポートしています。

## クイックステップ

### Kotlin(エンタープライズエディション)

1. Android StudioでKotlin Androidアプリプロジェクトを作成します
2. アプリレベルの依存関係としてCouchbase Liteを追加します (エンタープライズエディションでは:`build.gradle
implementation ‘com.couchbase.lite:couchbase-lite-android-ee-ktx:3.0.0-beta02’`)
3. 次のMavenリポジトリを(`build.gradle`または必要に応じて`settings.gradle`中の)リポジトリに追加します:`https://mobile.maven.couchbase.com/maven2/dev/`
4. プロジェクトをビルドすると、Couchbase Liteがプルダウンされます。

### Kotlin(コミュニティエデ

元記事を表示

Jetpack ComposeでNowVoiceを作ってみる

## プレミアム音声サービス NowVoice
[NowVoice](https://voice.nowdo.net/)のAndroidアプリ開発を担当しているkiyoです。
先日の[Droidokaigi2021](https://droidkaigi.jp/2021/timetable)では、Jetpack Composeに関するセッションが多かったですね!
この記事では、もしも既存のアプリ(xml)をJetpackComposeで書き換えることになった場合に、ハマりそうなポイントをまとめてみました。

![image_nv.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275576/25275f0d-2572-ce68-fa4c-1fdff785a339.png)

## 完成形
ソースコードはGitHubにて公開しています。
※一部デザインや数値を変更して実装しています
https://github.com/kiy0ta/NV

← NowVoiceアプリ(xml)
→ 今回実装したもの(Je

元記事を表示

【無料BGM素材】ゲーム・アプリ開発におすすめのBGMダウンロードサイトまとめてみた。3選!

アプリ制作におすすめの、BGMのダウンロードサイト【無料】をまとめてみました。

それぞれの短所・長所も追加でまとます。

https://kaedeee.com/app-famous-bgm-download-site/

#魔王魂

https://maou.audio/category/bgm/bgm-neorock/

![スクリーンショット 2021-11-17 19.08.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1900756/c59338ab-3026-b172-19a1-9da25366e20e.png)

**長所**
BGMとSEの両方の素材が豊富。
無料なのに高クオリティ。開発者どんだけいい人なんだ、、、

**短所**
モダンなゲームには向いていない(と思う)レトロなゲームには合う。
Youtubeなどで、聞いたことのある曲が多い。

#DOVA SYNDROME

https://dova-s.jp/bgm/

![スクリーンショット 2021-11-17 19

元記事を表示

Androidでナイトライダー風アニメーション

# できたもの

URL読み取りアプリのローディング表示に使ってみました。

# コード
“`kotlin
import android.content.Context
import android.graphics.Canvas
import android.graphics.Color
import android.graphics.Paint
import android.graphics.RectF
import android.util.AttributeSet
import android.view.View
import java.util.*
import kotlin.math.max

class KnightRiderView(context: Context, attrs: AttributeSet)

元記事を表示

[Android Studio]ビルドエラー Gradle project sync failedを解決した方法

Androidアプリのチーム開発をするために、新規プロジェクトの雛形コードをGitHubにPush。

チームメンバがgit cloneして動作確認しようとしたところGradle project sync failedが発生してエラーに。

その時の原因と解決策です。

## 原因

原因は、Android Studioのバージョン違いによる、GradleおよびAndroid Gradle Pluginのバージョン違いでした。

最初にプロジェクトを作成してソースコードをpushした環境は、以前からAndroid Studioをインストール済みだったため、

* Android Studio: 3.1.2
* Android Gradle Plugin: 4.1.3
* Gradle: 6.0.2

一方、チームメンバーはAndroid Studio Arctic Fox (2020.3.1)だったため、デフォルトで同梱されているバージョンが以下となり、旧バージョンに対応していなかったためです。

* Android Gradle Plugin: 7.0.2
* Gradle: 7.0

元記事を表示

[個人開発] 独学してAndroidアプリをリリースした話

#目次
[1.アプリ作成の背景](#1-アプリ作成の背景)
[2.何かを作る](#2-何かを作る)
[3.開発環境と主なライブラリ](#3-開発環境と主なライブラリ)
[4.アプリの機能](#4-アプリの機能)
[5.学習方法の概要](#5-学習方法の概要)
[6.アプリを作ってみた感想](#6-アプリを作ってみた感想)

#1. アプリ作成の背景
※半分くらいポエムです

—**とりあえず自分で何か作りたい**—
僕は電子機器のメーカーで働いています。何かものつくりがしたい、という動機で就職し、
主に生産技術の仕事をしてきました。

各製造工程専用の製造装置の生産効率とか、歩留まり(良品率)を上げるのが主な仕事です。
これはこれで重要な仕事であり、確かにものは作っていますが、
実際は全体のほんの一部しか関われず、自分が何かを作っているという感じではありませんでした。

自分で作ってる感がないまま、モヤモヤ思っていた頃、以前に録画していた学生ロボコンをなんとなく見たら
課題を設定して、自分たちで工夫していろいろ作っているのが楽しそうでした。
アホみたいな単純さですが、**「ああ

元記事を表示

【無料の動画素材】ゲーム・アプリ開発におすすめの動画素材ダウンロードサイト9選!

ゲーム開発、アプリ制作におすすめの、動画の素材サイト【無料】をまとめてみました。

https://kaedeee.com/app-famous-movies-download-site

それぞれの短所・長所も追加でまとめて行きます。

##Pexels

https://www.pexels.com/videos/

![スクリーンショット 2021-11-17 20.33.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1900756/f305bae5-3326-1c35-c3e6-64d18803d653.png)

**長所**
これだけでいい、ちょうどいい。

**短所**
長めの動画はない。

##IgniteMotion

https://www.ignitemotion.com

![スクリーンショット 2021-11-17 20.32.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/19

元記事を表示

【無料イラスト】ゲーム・アプリ開発におすすめのイラストダウンロードサイト4選!

アプリ制作におすすめの、イラストの素材サイト【無料】をまとめてみました。

https://kaedeee.com/app-famous-illustrate-download-site/

それぞれの短所・長所も追加でまとめて行きます。

##いらすとや

https://www.irasutoya.com

![スクリーンショット 2021-11-17 20.15.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1900756/17270645-ee92-cbe2-2a8e-1e2807a19a4c.png)

**長所**
みんな使ってる。
豊富すぎる量。

**短所**
既視感はある。

##イラストレイン

https://illustrain.com

![スクリーンショット 2021-11-17 20.12.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1900756/9e0e5a29-3

元記事を表示

【無料写真素材】ゲーム・アプリ開発におすすめの写真素材ダウンロードサイト2選。

アプリ制作におすすめの、写真の素材サイト【無料】をまとめてみました。

というか、以下二つで大体事足ります。

https://kaedeee.com/app-famous-photo-download-site/

それぞれの短所・長所も追加でまとめて行きます。

##PAKUTASO

https://www.pakutaso.com
![スクリーンショット 2021-11-17 19.56.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1900756/995aa0d5-4719-ec06-fd42-b83d67a16720.png)

**長所**
日本人男性、女性の素材が豊富。
食べ物や、景色などの素材も豊富。

**短所**
どこかでみたことある感。

##PIXABAY

https://pixabay.com

![スクリーンショット 2021-11-17 19.58.57.png](https://qiita-image-store.s3.ap-northeast-1.ama

元記事を表示

【無料の効果音素材】ゲーム・アプリ開発におすすめの効果音ダウンロードサイトまとめてみた。6つ

アプリ制作におすすめの、効果音(SE)のダウンロードサイト【無料】をまとめてみました。

それぞれの短所・長所も追加でまとます。

↓最新更新版

https://kaedeee.com/app-famous-sound-download-site/

#効果音ラボ
https://soundeffect-lab.info/sound/voice/people.html

![スクリーンショット 2021-11-17 19.08.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1900756/ec268d9d-af59-bb1e-8a50-3dfdd6106c95.png)
**長所**
効果音の素材豊富。
かわいい(かっこいい)声優の音声がある。
ヒカキンが使ってる。

**短所**
これじゃない感を感じる効果音もある。(つまり主観とのギャップが大きいものもたまに)

#魔王魂

https://maou.audio/category/bgm/bgm-neorock/

![スクリーンショット 2

元記事を表示

Installed Build Tools revision 31.0.0 is corrupted というエラーの原因はAGPが4系だからかもしれない

`compileSdkVersion` と `buildToolsVersion` を 31 に上げると以下のようなエラーがでることがあります。

> Installed Build Tools revision 31.0.0 is corrupted. Remove and install again using the SDK Manager.

エラーメッセージにはSDK Managerから再インストールしろと書いてありますが再インストールしても治らない場合は、AGPを7系にあげるとビルドエラーが解消するかもしれません。試してみましょう。

“`gradle:build.gradle
buildscript {

dependencies {
classpath ‘com.android.tools.build:gradle:7.0.x’

}
}
“`

Googleで検索すると、「30に下げれば良い」とか、「ファイルが足りていないので解消しましょう」とか出てきますが、AGPを上げるのが正攻法で良いと思います。上げれな

元記事を表示

Androidアプリで使用できる言語またはフレームワーク

# はじめに

以前 JavaScript で作成していたアプリを Android 向けにリリースしようかと考えています。
候補としては、Kotlin, ReactNative, Flutter の 3 つになります。
ということで、それぞれの特徴を調べて、自分用のメモとして以下に纏めてみました。

※これまでたくさんの方が比較されてきたかと思いますが、自分で書いてみた次第。

# Kotlin
– Java Virtual Machine 上で動作するオブジェクト指向言語。
– Java と比較すると、簡潔で安全性が高い。
– Java と互換性が高い、JVM 言語の一種。
– Java のプログラムやJava用のライブラリ、フレームワークなどを流用できる。
– プログラム作成後はコンパイルして使用する。(変更から反映まで時間を要する場合がある。)

# React Native
– JavaScript のライブラリであるため、iOS/Android 両方のアプリを開発可能。
– ホットリロードと言って、コードの変更点を保存して瞬時に反映することができる。
– React を使用し

元記事を表示

NavGraphで共有するViewModelでAssisted Injectをする

NavGraphのidで共有しているViewModelをAssistedInjectで生成したく、なおかつ今まで通り別フラグメントに共有したい要件がある際の解決方法を、どこにも記事がなかったため備忘録として残します。

:::note warn
今回は該当箇所のみを扱い、Dagger-Hiltの導入方法などは説明しません。
:::

Hilt導入の公式ドキュメント ->
https://dagger.dev/hilt/gradle-setup

## 動作環境
– Dagger-Hilt 2.39
– Navigation 2.3.0

## 前提
AssistedInjectを楽にするためにFragmentの拡張関数としてtakahiromさんの記事を参考に作成しています。
[ステップバイステップでDaggerを使った引数ありのViewModelの初期化を理解する](https://qiita.com/takahirom/items/f28ceb7a6d4e69e4dafe)

“` kotlin:assistedViewModels
inline fun

元記事を表示

無料でAndroidアプリのパフォーマンスをテストする方法の紹介

現在のAndroid端末では、主にGoogleモバイルサービス(GMS)搭載のAndroid端末とHUAWEIモバイルサービス(HMS)搭載のAndroid端末が存在しています。

一般的にアプリをリリースする前に、アプリの品質を確保するために、テストを行います。このテストでは、アプリにバグがあるかどうか、クラッシュするかどうかだけでなく、アプリの安定性や、速度、リソース消費など、見えにくい部分もテストします。このテストを人でやると、非常に時間も手間もかかるので、テスト自動化でやらないと、コストが莫大になります。

ここで、GMSのAndroid端末とHMSのAndroid端末における、無料なパフォーマンステストの方法を紹介します。

# Googleモバイルサービス(GMS)搭載のAndroid端末
Firebase Test Labの無料プランを使います。

### 手順
(1) Firebase consoleを開きます。
https://console.firebase.google.com/

(2) プロジェクトを作成します。
![firebase01.PNG](https

元記事を表示

Azure AD による モバイルアプリのデバイス証明書認証の実現方法

#はじめに

本記事では、モバイルアプリ(iOS または Android ネイティブアプリ)の証明書認証連携時の注意点とその対応方法をご説明いたします。

現在、大変多くの モバイル SaaS アプリケーションが Apple AppStore や Google Play ストアから提供されており、その中にはビジネスアプリも多数存在しています。ビジネスアプリを企業で利用する場合、セキュリティを考慮する必要があり、組織で管理されたデバイスのみに利用を制限することが多くの企業で求められます。このデバイス制限のセキュリティポリシーの実現方法として Azure Active Directory (Azure AD)の条件付きアクセスポリシーがあります。Microsoft Intune(Microsoft Endpoint Manager)で管理された準拠デバイスのみ SaaS アプリのアクセスを許可することが可能です。しかしながらこの方法を **Microsoft(Office 365アプリ等) 以外のモバイルアプリで実施する場合、注意点があります**。
※ちなみに、Microsoft のモバ

元記事を表示

OTHERカテゴリの最新記事