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

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

【Kotlin】TextView・AlertDialogにHTMLのタグを適用する

この記事では、以下のような`String`をTextViewにバインドし、TextViewにHTMLタグを適用させていきます。

“`kotlin
val link = “””
Qiitaを開く
“””.trimIndent()
“`

![Videotogif.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/484337/d9c01e62-a66c-c3b2-b7e0-e1e211174381.gif)

### HtmlCompactの利用
[HtmlCompact](https://developer.android.com/reference/androidx/core/text/HtmlCompat)を利用することでHTMLのタグをAndroidにも適用することができます。

“`kotlin
private fun transformHtml(text: String): Spanned {

元記事を表示

Ubuntu20.04LTSでReact NativeとExpoを試す

#はじめに
React Nativeを業務で使うことになったのですが、Macが届くまでUbuntuでReact Nativeの勉強をする必要が出てきたました。そのためwebやモバイル上での勉強環境構築と動作確認を行っていきたいと思います。

#前提
nodejsをインストール済み
unixコマンドを扱える
Reactが一通り扱える

#環境
nodejs v16.13.0
npm 8.1.0

#React Nativeとは
Facebookが開発したクロスプラットフォームのアプリ開発用フレームワーク。Reactでios、android両方書けて嬉しいよねってやつです。Flutterなども人気が出てきていますが、React NativeはReactの知識をベースにして書けるので、webのノウハウをある程度流用できて開発効率が良いのかなと思います。

#Expoとは
ReactNativeを使ったアプリケーション開発をサポートしているフレームワークです。windows,macOS,Linux関係なくiOS,AndroidどちらもQRコードを介して実機での動作確認が可能です。またwebでの

元記事を表示

MPAndroidChart導入時にエラーが出た.

MPAndroidChartを導入時にエラーが出ました.その解決方法および試したがダメだったものなどを紹介します.(初めてQiitaのページを執筆しました.至らない点がありましたらご指導をいただけますと幸いです.)
#1.生じた問題
MPAndroidChartを導入しようとしたところ,run appのビルド時にエラーが発生しました.
gradle変更後のsyncは通っていました.

まず,環境と導入にあたっての記述を簡潔に記します.
・Windows 10
・Android Studio 2020.3.1
・Gradle 7.0.3

“`build.gradle(project)
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
google()
mavenCentral()
maven { url ‘https://j

元記事を表示

アプリのアップデートメッセージを眺めてみた

# はじめに
iPhoneでしばらくアプリのアップデートをしていなかったら、33アプリのアップデートがありました。
アップデートのメッセージを眺めていると、今後の参考になりそうだったので一覧にしてみました。

# アップデートメッセージ
* 細かい調整をしました。
* 機能を改修しました。
* 軽微な修正を行いました。
* 軽微な改修を行いました。
* 軽微な不具合を行いました。
* 軽微な不具合を修正しました。
* 軽微な不具合に対応いたしました。
* 不具合を修正しました。
* 不具合な修正を行いました。
* いくつかの改良や修正をしました。
* 操作性の向上とバグの修正
* UI改善、軽微なバグの改修を行いました。
* バグの修正や安定性の向上などさまざまな改善を行いました。
* 一部不具合の修正とパフォーマンスの改善を行いました。
* 最新バージョンでは各種不具合が修正され、パフォーマンスも向上しています。
* アプリがクラッシュする問題が修正され、機能の読み込み速度が改善されました。
* このアップデートには、操作性および安定性の改善が含まれます。

「軽微な」って結構いいか

元記事を表示

[Unity] AndroidのSpeechRecognizer APIレベル30以上で実装する

# はじめに

音声テキスト認識を実装するにあたり、2021年11月からGoogleの規約の方で新規・既存とターゲット API レベル 30(Android 11)以上が必須となってますので、API30での実装のテストをしました。

https://android-developers-jp.googleblog.com/2020/12/new-android-app-bundle-and-target-api.html

過去の実装記事は下記
[[Unity] AndroidのSpeechRecognizer(音声テキスト認識)を実装する](https://qiita.com/atsutama/items/fd8dca4a1e621f4c855b)

## 環境
macOS Catalina: 10.15.7
Unity 2018.4.19f
Android Studio 4.0.1

## APIレベルの引き上げ時にやること
– aarの`targetSdkVersion`を30に変更
– Unityプロジェクトの`AndroidManifest.xml`に`queries`の設定

元記事を表示

【Android】ViewPager2の削除がずれる

# この記事に登場するもの
* ViewPager2
* FragmentStateAdapter
* DiffUtil
* 削除がなんかズレる

# AndroidDeveloper
https://developer.android.com/training/animation/vp2-migration?hl=ja

# ViewPager2ざっくり実装部分
MyFragmentがViewPagerを保持し、1つ1つのPageFragmentが削除ボタンでadapterに削除をかける想定。
PagerAdapterはDiffUtilを使って画面を更新する。
※この実装だと、削除すると1つずれたページが何故か削除される。

“`MyFragment.kt
lateinit var pagerAdapter: PagerAdapter

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanc

元記事を表示

adb コマンド

この記事では、よく使う adb コマンドをまとめます。
Android Debug Bridge version 1.0.41
Version 31.0.3-7562133

######adb が使用可能な(adb サーバーに接続している)デバイス(シリアル番号)の確認
adb devices

“`
$ adb devices
List of devices attached
emulator-5556 device
“`

adb を使用する際に、デバイスが複数接続されている場合は、コマンドを送るデバイスのシリアル番号を “`-s“` (use device with given serial) で指定します。

“`
adb -s emulator-5554 …
“`

######アプリのインストール
adb install [apkのパス]

“`
$ adb install app-debug.apk
adb: failed to install app-debug.apk: Failure [INSTALL_FAILED_TEST_ONLY: in

元記事を表示

【Android】Y乗換アプリをURLスキームから起動する

ショートカット作成アプリで遊んでいたときに困ったので備忘録です。
apk内のAndroidManifest.xmlを解析しました。

以下のURLを開くことでYahoo乗換アプリを起動することができます。
` https://transit.yahoo.co.jp/transit_app/androidToBrowser.php `

また、パラメータとして from , to を用いることで既存のショートカットと同様に、よく使う駅の情報を一発で開けます。
` https://transit.yahoo.co.jp/transit_app/androidToBrowser.php?from=東京&to=仙台`

元記事を表示

WifiP2pManagerで他端末を検出する手順

WifiP2pManagerで他端末を検出するためには、多くの関数を呼び出す必要があります。(下図)
![図1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/340482/966ce865-274f-7aa1-0c75-fe1e63b72fe9.png)

関数だけ抽出すると下表のようになります。

| 番号 | 関数 | 処理内容 |
| —-: | :—- | :—- |
| 1 | clearLocalServices | 自デバイスのBonjourサービス終了 |
| 2 | addLocalService | 自デバイスのBonjourサービス開始 |
| 3 | setDnsSdResponseListeners | 他デバイスのBonjoourサービス検出時処理、TXTレコード受信時 処理を登録 |
| 4 | clearServiceRequests | 他デバイスのBonjoourサービス検出終了 |
| 5 | addServiceRe

元記事を表示

【Android】フレームアニメーションを使ってパラパラマンガ風なアニメーションを実装する

# はじめに
工事中

# 実際に使ってみる

ソースコードは[こちら](https://github.com/Kaito-Dogi/android-sample-animation-resources).
![frame_animation.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/933349/dbe49ee6-6ccd-bbd9-f45e-f3e6f5698f40.gif)

## animation-listの作成

`res/drawble`に,以下のようなanimation-listファイルを作成する.

“`dice_animation.xml


coroutine 簡単なまとめと参考ページ

いいリソースがたくさんあります。
リソースを読むための簡単なまとめと、参考になったリソースをメモしておきます。

## 概要
コルーチンは軽量なスレッドのようなもの、とよく説明されていますが、個人的には、スレッドのラッパーというのがしっくりきます。
コルーチンを通してスレッドを操作することで、タスク管理を効率化できます。

kotlinコルーチンなどというように、コルーチンはkotlinの言語自体の機能です。

今までJavaを使ってきた我々からすると、時間がかかる処理をする時に、別スレッドに切り出すことはポピュラーな手法かと思います。
なぜなら、そうしないと、時間がかかるタスクがスレッドをブロッキングして、その後ろのタスクが長い間実行されないからです。
またこのスレッド切り出しの結果、コードが各スレッドに散在し、また処理自体も非同期的になるため、処理が追いにくくなる問題がありました。

kotlinのコルーチンは、Javaで我々が手動で行なっていたスレッド上でのタスク管理を、ほとんど代わりにやってくれます。
あるスレッド上で、長いタスク中の空き時間があれば(例えばデータベースからのレ

元記事を表示

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)

元記事を表示

OTHERカテゴリの最新記事