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

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

【翻訳】RecyclerView の高度なカスタマイズ

ReciclerViewをカスタマイズする必要があり、公式を調べていたら英語ページに当たったので翻訳しました。

[[Android Developers > ドキュメント > ガイド > 主要トピック > ユーザーインターフェース > レイアウト > RecyclerView の高度なカスタマイズ] Advanced RecyclerView customization](https://developer.android.com/guide/topics/ui/layout/recyclerview-custom?hl=ja)

# RecyclerView の高度なカスタマイズ

> You can customize the `RecyclerView` objects to meet your specific needs. The standard classes described in [Create dynamic lists with RecyclerView](https://developer.android.com/guide/topics/ui/layout

元記事を表示

ViewBindingに移行していきます

#この記事の概要
Viewにアクセスする最新の方法をメモしています。これまでは`findViewById`や`Kotlin Android Extension`などがViewにアクセスする方法としてありましたが、現在は`ViewBinding`を使った方法が推奨されております。[Android Developers | ViewBinding](https://developer.android.com/topic/libraries/view-binding?hl=ja)

#作るもの
PeerLodgeのオリジナルアプリPeerRadioのAndroid版を作成しています。PeerRadioの開発ブログです。

#これまでのViewへのアクセス方法
`findViewbyId`を使ってViewにアクセスする方法は以下が例です。

“`kotlin
val titleInputText = findViewById(R.id.title_input_text_view)
postTitle = titleInputText.text.toString()
`

元記事を表示

Android Studioの設定

初めに
===
開発をしていく上で役に立ちそうなAndroid Studioの設定をまとめます。

環境
===
Android Studio 4.1.1
PC Windows 10

設定内容
===
##フォントサイズ・字体
File > Settings > Editor > Font
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/487320/19334c03-e0c4-842a-a3f9-c9178631eaaa.png)

##未使用のimportの削除
File > Settings > Editor > General > Auto Import
1. Optimize imports on the fly(for current project)にチェックを入れる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/487320/ffcc8461-30eb-2f26-4ff

元記事を表示

10分でHMS Audio Engineを利用してアプリにカラオケ機能を実装

##カラオケ機能(エコー機能)のアプリを作りました。
早速HMS Audio Engineを使って、シンプルにカラオケ機能(エコー機能)をアプリで作りました。

◆ Object作成、Object初期化、Callbackの登録

“`php
mHwAudioKit = new HwAudioKit(this, callBack);
mHwAudioKit.initialize();
// Create KaraokeFeature:
mHwAudioKaraokeFeatureKit = mHwAudioKit.createFeature(HwAudioKit.FeatureType. HWAUDIO_FEATURE_KARAOKE);
// Create a callback task.
IAudioKitCallback callBack = new IAudioKitCallback() {
@Override
public void onResult(int i) {
if (i == 0) {
// HwAudioKit i

元記事を表示

[ReactNative] ScreenView+Webview refreshControlについての備忘録(Androidのバグ)

最近小さめのReactNativeのプロジェクトにアサインされたワタクシでございます。
全くまだ分かってないんですけど、UI部分の改修案件が来たので対応しています。
その際に直面したバグ対応の備忘録を残します。

## どのようなバグか
iosでは起きず、Androidのみのバグとなります。

“`javascript
render() {
{ this.onRefresh() }}
/>
}
contentContainerStyle={{flex: 1}}
style={{ backgroundColor: “#FFFFFF” }}
>

元記事を表示

【Android】ObjectMetadata.setContentEncoding で文字化け【AWS】

**AWS(s3)** の **Android** サンプルコードを試していたのですが、
アップロードしたファイルの文字化けで手間取ったのでメモ。

“` java:文字化けしたコード
ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentType(“text/plain”);
metadata.setContentEncoding(“UTF-8”); // “utf-8″も”UTF8″も試したけどダメ
“`

“` java:うまくいったコード
ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentType(“text/plain;charset=utf-8”);
“`

**setContentEncoding**なんて、期待しちゃうにきまってるじゃないですか。

元記事を表示

【Mac】Android studioのAVD Managerからエミュレーターを起動すると「unable locate to abd」となる

## 環境
macOS Catalina 10.15.7
Android studio 4.1.1

## 発生している事
AVD Managerからエミュレーターから`Pixel 2 API 28` を起動すると下記のような警告が出る。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/414558/cfc1e2fd-d041-8dfd-a9b5-f91611efaa62.png)

エミュレーター自体はその後起動するのだが、Debugしてもアプリが動かない。

## 試した事
`/Users/ユーザ名/Library/Android/sdk/platform-tools` 配下にあるadbへのパスを通した後、以下コマンドを叩いてみたところデバイスは表示されるようになる。
※ない場合はDownloadして設置
[SDK Platform-Tools リリースノート](https://developer.android.com/studio/releases/platform-tools)

元記事を表示

『こんにちはPython』のスカッシュゲーム(壁打ちテニス)を JavaScript で写経してみた(後編)

# 『こんにちはPython』のスカッシュゲーム(壁打ちテニス)を JavaScript で写経してみた(後編)

みなさま、こんにちは。[ハーツテクノロジー]の山崎です。(この記事は、業務とは直接無関係な記事ですが、業務で得られた知見が間接的に随所に織り込まれていると思われます。)

[ハーツテクノロジー]:https://www.hearts-tech.co.jp/

この記事は、[前編]と後編の2部構成になっていて、こちらは後編です。

[前編]には、小学生でもわかるように、「ゲームとして遊べるまで」を解説しています。
後編では、小学生に解説するには少々無理がある部分を、こちらにまとめるようにしました。ですので、小学生の方は[前編]だけ読んでいただき、後編は、学校を卒業してから読むようにすると理解がすすむ、、、かもしれません。

おとなの方は、後編からでもよいですが、[前編]を軽く流し読みしていただいてからのほうが、この後編の内容がより理解しやすい思います。よろしくお願いします。

[前編]:https://qiita.com/yamazaki3104/private/b6d56

元記事を表示

【モバイル】【Chrome】画面スクロール時に Resize イベントも同時に発火されるので注意する

## 結論

タイトルそのまま。

モバイル版の Chrome(Android, iPhone 問わず)では、画面をスクロールした際に resize イベントも同時に発火されるので、注意したい。
※Safari は不明。

## 挙動

挙動自体は Chrome の仕様。

スクロールした際、 Chrome の画面上部のアドレスバーの表示・非表示が切り替わる。
それにより Chrome の画面サイズが変更するため、Resize イベントが発行されるとのこと。
詳細は以下を参照。

### 参考



– [Viewport height is taller than the visible part of the document in some mobile brow

元記事を表示

Flutterチュートリアルを咀嚼する part2 -routeとnavigator-

part1ではFlutterの概要を掴んだ
part2ではpart1で作ったstartup_namerアプリにスマホアプリによくある機能を搭載する
・アイコンの利用
・いいね機能
・別ページへの遷移

#対象のチュートリアル
https://codelabs.developers.google.com/codelabs/first-flutter-app-pt2/#0

#コピペしてできあがったもの
気に入った名前にいいねができるようになった
![スクリーンショット 2020-11-22 0.01.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/283826/ca40b2c9-30b4-5c3c-2290-1537d3bd2166.png)

右上の(名前なんて言うのこれ)を押すと右にスライドしてもう一つのページが表示されるようになった
(いいねしたものだけが表示される)
![スクリーンショット 2020-11-22 0.02.48.png](https://qiita-image-store.s3

元記事を表示

#40 Kotlin Koans Generics/Generic functions 解説

#1 はじめに

Kotlin公式リファレンスのKotlin Koans Generics/Generic functionsの解説記事です。

Kotlin Koansを通してKotlinを学習される人の参考になれば幸いです。

ただし、リファレンスを自力で読む力を養いたい方は、
**すぐにこの記事に目を通さないで下さい!**

一度各自で挑戦してから、お目通し頂ければと思います:fist:

#2 [Generics](https://kotlinlang.org/docs/tutorials/kotlin-for-py/generics.html)

Generic型引数(Generic type parameter)は、呼び出し側が引数を渡すように自由に型を指定することができます。

“`kotlin:example_Generic1
class TreeNode(val value: T?, val next: TreeNode? = null)
“`

`T`がGeneric型引数に相当し、任意の型を指定します。

クラス名の横に`< T >`のように指定す

元記事を表示

【ReactNative】ExpoでAndroidのPermissonを設定する

# はじめに

Expoのアプリを利用して開発をしていると権限回りはすべて許可された状態になりがちです。
開発中はいいのですが、いざリリースをしようとするとアップロード時に何故バックグラウンドで位置情報を使うのか申請が必要だったり、GooglePlay上でユーザー不用意に情報を取得しているアプリとみなされてしまうなどの問題が発生します

基本的には公式の[ドキュメント](https://docs.expo.io/versions/latest/config/app/)通りではあるのですが、日本語訳されていないのと各パーミッションについての説明がされていないためわかりにくいです
Androidのパーミッションはあまり詳しくないため、基本的に1つずつ調べて概要をまとめますが、説明が正確じゃないなどあれば編集リクエストいただけると助かります

こちらは2020/11/23現在のドキュメントを基準にしています

# 設定方法
Expoの設定を記載する`app.json`に下記の設定を追記します(permissions以外の項目は省略しています)

“`
{
“expo”: {

元記事を表示

#39 Kotlin Koans Builders/Builders how it works 解説

#1 はじめに

Kotlin公式リファレンスのKotlin Koans Builders/Builders how it worksの解説記事です。

Kotlin Koansを通してKotlinを学習される人の参考になれば幸いです。

ただし、リファレンスを自力で読む力を養いたい方は、
**すぐにこの記事に目を通さないで下さい!**

一度各自で挑戦してから、お目通し頂ければと思います:fist:

#2 Builders/Builders how it works の解説

[Kotlin Koans Builders/Builders how it works](https://play.kotlinlang.org/koans/Builders/Builders%20how%20it%20works/Task.kt)の解説です。
随時本サイトの内容を引用させていただきます。

これまでのKoansと異なり、1~4の質問にKotlinのコードを用いて答えるという形式になっています。

#2-1 問題1について

> 1.In the Kotlin code

“`koti

元記事を表示

build.gradle : IDE から Gradle が読み込まれていることを判定する (Android Studio, IntelliJ IDEA)

build.gradle が IDE から読み込まれていることは `idea.active` プロパティで判定できます。

IDE がプロジェクトを読み込んだり Gradle Tasks リストを読み出すときには `idea.active` = “true” がセットされています。

“`build.gradle.kts
val ideaActive = (System.getProperty(“idea.active”) == “true”)

if (ideaActive) {
// IDE から読み込まれているときだけ実行したい処理
}
“`

公式のドキュメントは見当たりませんでしたが、Gradle Plugin 作成時のテクニックなどで使われているようです。

* https://github.com/endanke/kotlin-mpp-framework-skeleton/blob/86f2b6ea2c545a562a8224536a4cb6bf03a9e05d/ProjectName/build.gradle.kts#L3 などで見かけました

元記事を表示

【Android / Kotlin】RecyclerView で一覧画面を実装

# はじめに
Kotlin案件でリサイクラービューを使った際に学んだことを記事に残す。

# 作成したサンプルアプリの概要

書籍情報(dataクラスBookを作成)をリサイクラービューを利用して要素3つ(名前、値段、購入日付)を一覧表示しただけのシンプルなもの。
今回はActivityの上に一覧表示のFragmentを実装しています。

※ レイアウトはテキトーです。

– Support Libraryには AndroidX を採用
– minSdkVersion 24

# 実装

## ライブラリの導入

“`build.gradle
// ・・・省略

dependencies {
implementation fileTree(dir: “libs”, include: [“*.jar”])
i

元記事を表示

Jetpack ComposeのコードをGoogle Chromeブラウザから検索できるようにする

元記事を表示

UE4でIOS/Android用のアイコン画像を爆速で入れる

#UE4でIOS/Android用アイコンを爆速で入れよう

>https://qiita.com/Chi__no_/items/f7d9f8e943d0da0b5f80
この記事は↑の画像作成スクリプトを実行している事が前提です。

UE4は一つ一つの画像を選択する度にプロジェクトルートから辿らないと行けないから面倒くさい。。。
そんな問題を一気に解決しちゃおうって話!

一番上の記事の内容を実行するとこんな画像ファイル達が出来ると思う。
![スクリーンショット 2020-11-22 220132.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/500172/326b7275-6811-4cf4-3ab9-692752875ff2.png)

#Engineのデフォルトに設定する。

そしたらEngineのPathに行く。

Androidでは色々ファイルが分かれているから各自でやって欲しい。
参考Directory→C:\Program Files\Unreal

[Android] dumpsys を使って起動している Activity を確認する

# はじめに

Android で起動している Activity を確認するには Android 上で動作する dumpsys コマンドを利用します。dumpsys コマンドを利用すればシステム・サービスから情報を取得でき、起動している Activity の状態などを取得できます。ちなみにどのシステムサービスから情報が取得できるのかは `adb shell dumpsys -l` で確認できます。情報が取得できるシステムサービスはたくさんあります、今回はこの中の activity から情報を取得して起動している Activity を確認します。

“`shell
adb shell dumpsys -l
Currently running services:
DockObserver
GuiExtService
SurfaceFlinger
accessibility
account
activity
alarm
android.security.keystore
anrmanager
appops
appwidget
audio

モバイルアプリのアイコン画像用意するの面倒くさくない?自動化しちゃおう!

##PhotoShopでいちいち何十回も解像度を変える作業めんどくさ・・・

####AndroidとiPhone合わせるとこのくらいの画像が必要になる。

![b1d2c8bfdad903f18ac9aa668706984e.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/500172/cf87672e-ac78-75c8-2094-ef74eb5b0d95.png)

しかもiPhoneの画像は20@2xみたいな語尾を付けているからややこしい。

だからPhotoshopのスクリプトで自動化してしまおう

###まず出力したいPSDのレイヤーは全てスマートオブジェクトにして下さい。←これ重要
これを忘れると出力された画像がボケるから気をつけて!
レイヤーを右クリック→スマートオブジェクトに変換
![Inked4ec9e66d5b55a3bcdc164078007e697a_LI.jpg](https://qiita-image-store.s3.ap-

[Android]ホーム・ランチャーアプリとして起動できるようにする

Android では Home ボタンを押したときに特定のアプリを表示するようになっています。これを一般的にホームアプリやランチャーアプリと言います。例えば Microsoft Launcher などですねこれらをホーム・ランチャーアプリと呼びます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/79387/cddc8f34-9a15-c62f-0abd-ac511c4c72a4.png)

ホーム・ランチャーアプリとして起動するには AndroidManifest.xml の Category に`android.intent .category.LAUNCHER` と `android.intent.category.DEFAULT` を追加します。
`android.intent.category.LAUNCHER` はこのアプリのカテゴリをランチャーアプリとするもので、`android.intent.category.DEFAULT` は暗黙的インテントを受け取れるようにするも