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

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

簡単?UnityもAndroid StudioのlogcatもインストールしないUnityアプリのデバック方法!

# Debug.Logのデータが欲しいんだ…

### 1. platform-toolsのダウンロード(Not install)

[ここ](https://developer.android.com/studio/releases/platform-tools?hl=ja)からダウンロードしてください

### 2. platform-toolsの展開

1. zipファイルを展開します。

2. 展開したzipファイルを潜っていくとadb.exeがあります。

3. adb.exe のあるフォルダーで ctrl+l でバーを選択した後、cmd と入力しEnterを押すことで、adb.exeのあるフォルダーをコマンドプロンプトで開きます

### 3. Unityのアプリの起動!

1. usbデバックにした後で、スマホとPCをつなぎます。

2. 目的のAndroidアプリを起動します

### 4. adbでlogcat開始

1. コマンドプロンプトで
“`
C:\Users\?\platform-tools_r33.0.1-windows\platform-tool

元記事を表示

Android 通知が表示されない問題

テストがてらに主に公式リファレンスの内容を参考に通知表示を実装してみました。
https://developer.android.com/training/notify-user/build-notification

“`kotlin
val notificationId = 123
val notificationManager = getSystemService(NOTIFICATION_SERVICE) as NotificationManager

val name = “name”
val descriptionText = “description”
val channel = NotificationChannel(“test”, name, NotificationManager.IMPORTANCE_HIGH).apply {
description = descriptionText
}
notificationManager

元記事を表示

Androidの目標設定

iOSエンジニアなのですが、Androidの目標を作成してみました。

スキルアップ
a.Androidで即時提案できるスキルを身につける

(1週当たり6時間自分に投資する)

a-1.コントロール配置に関するスキル … 5週間 >>> 7月の1週目まで
a-1-1.Viewの画面サイズに応じたコントロールの自動配置(xml)
a-1-1-1.制約配置(ConstraintLayout) … 3h
a-1-1-2.列配置(LinearLayout)の入れ子 … 6h
a-1-1-3.Viewの状態保持(Fragment) … 6h
a-1-1-4.ActivityとFragment間のデータ受け渡し … 3h
a-1-2.Viewの再利用機構(RecyclerView) … 6h
a-1-3.セルの部分更新 … 6h

a-2.画面遷移に関するスキル … 2.5週間 >>> 9月の1週目まで
a-2-1.通常の画面遷移(Intent) … 3h
a-2-2.通常の画面遷移(Intent)時のデータ受け渡し … 3h
a-2-3.Navigation画面遷移 … 3h
a-2-4.Na

元記事を表示

「Android絵文字ポリシー」に開発者が対応する事

# この記事は
2021年10月の Google Play ポリシーアップデートにより「Android絵文字ポリシー」が追加されました。

追加されたポリシーに対応するためにAndroidアプリで開発者が実装しなければならないことがいくつかあるので記事にしてみます。

# 「Android絵文字ポリシー」について簡単に解説
Googleはこれまで絵文字の更新をOSのアップデートにより新しい絵文字を追加してきました。

最新のOSを搭載する高価格帯の端末ユーザーであれば、最新の絵文字を利用できていたが、それ以外のユーザーは最新の絵文字が送られてきても表示できず豆腐と呼ばれる小さな四角い箱(☐)や、間違ってレンダリングされた絵文字シーケンスとして表示される利用できない絵文字が生じていました。

今回の「Android 絵文字ポリシー」によりOS依存であった絵文字の更新が対応アプリの更新で絵文字をアップデートするようになりました。
最新のOSを搭載する高価格帯の端末ユーザーでなくても最新の絵文字を手に入れ利用できるようになったのです。

簡単に言うと、
**アプリ側で絵文字をサポートしてあ

元記事を表示

【Flutter3.0】キーボードタイプをスクショ付きで改めて。

# はじめに
Flutterも3になりましたので、改めてスクショ付きで種類をまとめようと思いました。

# 環境
Flutter3.0
Xcode 13.3.1

# ドキュメント
https://api.flutter.dev/flutter/services/TextInputType-class.html

## TextInputType.text
“`
TextField(
onChanged: onChange,
keyboardType: TextInputType.text,
),
“`

デフォルトのキーボード。
未指定だとこちらを表示します。

## TextInputType.multiline
“`
TextField(
onChanged: onChange,
maxLines

元記事を表示

TextFieldで数字,英語,記号だけを入力させたい時

# 内容
アカウント登録などのフォームを制作する際に、メールアドレス、パスワードなどの
TextFieldに、入力できる値を制限したい場面を想定しています。

# 方法
### 数字のみ
数字のみは**inputFormatters**で用意されていて、以下の記述を足すことで簡単に設定ができます。
“`Dart
TextField(
keyboardType: TextInputType.number,
inputFormatters: [FilteringTextInputFormatter.digitsOnly]
)
“`

### 英字,記号など
**FilteringTextInputFormatter.allow()** : 一致するものを許可
**FilteringTextInputFormatter.deny()** : 一致しないものを許可

“`Dart
inputFormatters: [
FilteringTextInputFormatter.allow(
RegExp(r'[a-zA-Z0-9@_-.]’)),
],

元記事を表示

[Kotlin]data classにおけるコンストラクタとイニシャライザを使い分ける

kotlinのdata classで定義するプロパティと、コンストラクタ引数を変えたい場面がある場合に、コンストラクタとイニシャライザを使い分けて実現する方法について記載していきたいと思います。
ちょっと何を言っているか分からないですが以下の例を見てもらえると分かると思います。
# [おさらい] data classとは
data classを作成する場合、コンストラクタにプロパティを定義する事でパラメータへのゲッターやセッターなどを自動で定義してくれました。
“`Addition.kt
data class Addition(val paramA: Int, val paramB: Int, val result: Int)
“`
paramAとparamBの足し算の結果をresultとして持ちたいので、このクラスをインスタンス化しようとすると
“`
val addition = Addition(85, 23, 108)
val resStr = addition.result.toString() // resStrは108
“`
となります。
ですが、これだと結果も自分

元記事を表示

LazyRowでSwipe Refresh

LazyRowでSwipe refreshを実装した際のメモです。

バージョンは以下
Jetpack compose 1.1.1
accompanist Swipe Refresh 0.23.1

# Swipe Refresh for Jetpack Compose
[accompanist](https://google.github.io/accompanist/swiperefresh/)にはJetpack composeでSwipe Refreshを実装するためのcomposableが用意されています。

“`SwipeRefresh.kt
@Composable
fun SwipeRefresh(
state: SwipeRefreshState,
onRefresh: () -> Unit,
modifier: Modifier = Modifier,
swipeEnabled: Boolean = true,
refreshTriggerDistance: Dp = 80.dp,
indicatorAlignment

元記事を表示

【Android】Android12のスプラッシュスクリーン後にツールバーが二重表示される問題

### 問題
Android12からスプラッシュスクリーンが標準実装されましたが、適当に対応したところAndroid12でのみツールバーが二重に表示されてしまったため解決策を残しておきます。
そもそも二重に表示されること自体殆ど無いと思いますが、テーマをActivity内からSetTheme()で切り替えたりしてる場合にこの問題が発生するようです。

### 解決策

“`kotlin:StartActivity.kt

override fun onCreate(savedInstanceState: Bundle?) {
// val splashScreen = installSplashScreen() <-これを消すだけ setTheme(R.style.MainTheme)// ここでテーマを切り替える(今回は固定) super.onCreate(savedInstanceState) val toolbar = findViewById(R.id.toolbar)

元記事を表示

大規模AndroidアプリのDIをKoinからHiltへ移行する

## はじめに

with で Android エンジニアをしている 石田 です。with の Android 版アプリ (以下、with-android) では長らく DI ライブラリとして [Koin](https://insert-koin.io/) を採用してきましたが、先日 1~2か月かけて [Hilt](https://developer.android.com/training/dependency-injection/hilt-android?hl=ja) に完全移行しました(頑張りました)。本記事では移行方法について紹介します。

:::note warn
**本記事での約束**

* Hilt + Dagger 2 を1つのライブラリと見なして単に Hilt と呼びます。
* Android/Fragment/Service といったクラスを Android クラス と呼びます。
:::

## Koin と Hilt

[Koin](https://insert-koin.io/) は オープンソースの DI ライブラリで、手軽に導入できることが特徴です。Gi

元記事を表示

PopupWindow + RecyclerView + NavigationComponentを組み合わせる際の注意点(備忘録)

# PopupWindow + RecyclerView + NavigationComponentを組み合わせる際の注意点(備忘録)

`RecyclerView` のItemとして`PopupWindow`を表示するとき、`PopupWindow`を表示したまま`NavigationComponent`で画面遷移をしようとすると`PopupWindow`が表示されたまま、取り残されたような表示になって対応が面倒だったので忘れないように対策をメモしておきます。

>The popup window is a floating container that appears on top of the current activity.

公式ではこう説明されているのですが、どうやら`PopupWindow`は最前面に表示されるみたい?

画面タップで消えるっちゃあ消えるんですが、うっかり`PopupWindow`の中身を押してしまうと`NavigationComponent`のdestination errorになってしまうため、対策することに。

`RecyclerView`のIte

元記事を表示

Androidアプリを開発する #3(画面遷移)

# はじめに
今回は画面遷移の部分を作成していきます。前回の記事はこちらから

https://qiita.com/sekkenn1102/items/16fcf2a040378e1c27a4

# 画面を遷移させる
### 画面を遷移させる前に
* 前回までMainActivityファイルに登録画面、ListActivityに初期画面を作成してきましたが、
登録画面のActivity名がMainなのは少しおかしいので、
MainActivity.kt  → SubmitActivity.kt
activity_main.xml → activity_submit.xml
にリファクタリングしています.

### 遷移部分を作っていく
* 画面を遷移させるには遷移させるボタンがあるxmlファイルに対応する名前のkotlinファイルを編集していきます.今回の場合は、activity_list.xmlファイル内にある「+」ボタンを押すとactivity_submit.xmlへ遷移する予定なので、ListActivity.ktのファイルを編集していきます.コメントで記述している通り、crea

元記事を表示

【Android】個人的によく使うアノテーションについてのメモ

# はじめに
最近個人的にアノテーションの意味について、調べたのものを個人用のメモとして記事に残します

>アノテーションとは、「注釈」を意味する語であり、とりわけIT用語としては「特定のデータに対して情報タグ(メタデータ)を付加する」という意味で用いられる言葉である。

# アノテーション表

※”@”をつけるとアドレス認識になってしまうので省略

|アノテーション|意味|
|:—|:—|
|propaty|どんなものかを表す情報|
| param |パラメータの説明|
| HiltViewModel|HiltによるViewModelの注入を有効にする|
| Inject |クラスのインスタンスの作成方法を Dagger に伝えます|
|Serializable|シリアライズ可能にする,バイト配列に変換できます|
|Parcelize|Parcelable を簡単に実装する,インスタンスがシリアライズ化される|

# さいごに
何度か目にしたものから優先して調べてみましたが、それぞれにちゃんと意味や機能があり
コードの理解力が増した気がします
今後も気になったアノテーションを

元記事を表示

【Android】RecyclerViewの超基本

# はじめに
よくリスト表示で使われるRecyclerView。
Android始めたての時はなかなか基本的な使い方がわからず困った記憶があるので、改めて初心にかえって基本的な実装方法を記してみたいと思います。
間違いや気になる点がありましたらお気軽にコメント頂けますと幸いです。

# 完成形
こんな感じのシンプルなリストをRecyclerViewで作っていきたいと思います。
![Screenshot_1653211534.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1274260/06d7ea82-d86d-663e-1d15-2615565ba1a1.png)

# 実行環境

| 項目 | 情報 |
| —— | —————————- |
| PC | MacBook Pro (14-inch,2021) |
| CPU | Apple M1 Pro 10-core

元記事を表示

【Android】覚えておくと便利なExtension:Part3

# はじめに
何かしらの機能で必ず使用するExtensionですが、毎度実装している便利なExtensionを備忘録的に残しておこうと思います。

# その1
“`
fun Context.shareMessage(text: String, subject: String = “”): Boolean {
val intent = Intent()
intent.type = “text/plain”
intent.putExtra(EXTRA_SUBJECT, subject)
intent.putExtra(EXTRA_TEXT, text)
try {
startActivity(createChooser(intent, null))
return true
} catch (e: ActivityNotFoundException) {
return false
}
}
“`
上記は特定のメッセージなどを他サービスを通して送付したい場合などに使用する拡張関数です。

元記事を表示

フレッツ光をAndroid USBデザリングにしてみた

フレッツ光を解約してしまったので、ネット接続がなくなり不便なのでAndroidのデザリングを使ってネットアクセスできるようにしてみた。

![moto.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104066/0fada099-374f-e332-96a9-3f608cdc7362.png)

元の構成を変えるのは面倒なので、インターネットの口をFreeBSDのブリッジでインターフェース間をL2のスルーで設定することにした。

![br2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104066/e80cc90e-6a37-0b08-b0df-173a026b3e24.png)

AtermはWifiを使っているのでノーマルで、PPOEの設定になっていたものをローカルルーターに変更します。

FreeBSDはi386の12.3RでマシンはPen IIIのValueStarです。PCIにfxpとUSB 2.0のボードが

元記事を表示

MotionLayoutの例を試してみる(キーフレームの循環)

前回はキーフレームの補間をやりました。

[キーフレームの補間](https://qiita.com/yuta317/items/f27a553603a3e179e5fa)

# 公式リファレンス
https://developer.android.com/training/constraint-layout/motionlayout/examples?hl=ja

https://developer.android.com/training/constraint-layout/motionlayout/ref?hl=ja

リンク先に公式サンプルがあります。
[キーフレームの循環](https://developer.android.com/training/constraint-layout/motionlayout/examples?hl=ja#keyframe_cycle)

“`

元記事を表示

【Kotlin】RoomでDateを扱う方法(ついでにSimpleDateFormatを使って表示)

RoomでDate型を扱うときにコツがいるのを知ったのでそれをまとめていきます(ちなみに、めっちゃ簡単でした)

## この記事で分かること

– RoomでDate型を使用する方法
– 日本時間に合わせ、「2022/05/22(日)」のようなスタイルでDateを表示する方法

## 実際にやってみる

このようなメモアプリの一覧画面で実際に説明していこうと思います。
※コードは必要な部分だけを取り上げていきます。

![Screenshot_20220522_030017.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1630025/eed50398-ab7c-4834-c0d9-754184d3ab77.png)

### Before

以下のように作成日時を `Date` 型で持つようなMemoエンティティを作成したところ、動きませんでした…。どうやらRoomでは `Date` をそのまま扱えないようです。

“` kotlin:Memo.kt
@Entity(tableName = “me

元記事を表示

コルーチンの基礎

※ソース記事は[こちら](https://kotlinlang.org/docs/coroutines-basics.html)
この章では、基礎的なコルーチンの概要を範囲としている。
# 初めてのコルーチン
コルーチンは、中断可能な計算結果のインスタンスである。それはコードのブロックを、コードの残りと並列に動作させるという意味で、概念的にはスレッドに近い。しかし、コルーチンは特定のスレッドに結びついていない。あるスレッドで、実行を一時中断し、他のスレッドで再開することが可能である。
コルーチンは軽量なスレッドとして考えることができるが、現実の使い方において、スレッドとはかなり異なる、多くの重要な点が存在する。
初めての動作するコルーチンとして次のコードを実行してみる。
“`Kotlin
import kotlinx.coroutines.*

fun main() = runBlocking { // thisはCoroutineScope
launch { // 新しいコルーチンを起動して続行する
delay(1000L) // 1秒間ノンブロッキングな遅

元記事を表示

【Google/IO 2022】忙しい人のための「What’s new in app performance」

## はじめに
Google I/Oの [What’s new in app performance](https://www.youtube.com/watch?v=DYdHLqLVspY&t=12s)の要点をまとめます。

Androidフレームワークの改善のパートは割愛しておりますのでご了承ください。

## 01 ツール
![](https://i.imgur.com/rh2VSxn.png)

### Android Studio Profiler / Perfetto
– Android StduioのProfilerでトレースできる
– それを保存しチームに共有することもできる
– またPerfettoを使用することで、Android Studioがなくても詳細に分析できる。
– 相互運用可能。Profilerでトレースした内容は、Perfettoでも開ける

### Android Vitals
– Google PlayConsoleの一部
– 実際にデバイスを使用してくれている人のさまざまなパフォーマンスを情報を確認できるのがメリット

## 02 アプリの起

元記事を表示

OTHERカテゴリの最新記事