Android関連のことを調べてみた2023年10月16日

Android関連のことを調べてみた2023年10月16日
目次

ゲーム開発において案外大事な「規約類」のお話

こんにちは!
株式会社OGIXのプロジェクトマネージャのH.Yです。(OGIXについてはページ最下部で紹介しています!)

ソーシャルゲーム開発において注目されがちなのはインゲームの実装であったり、課金処理であったりそういったところにフォーカスが向きがちですが、「規約類」の表示は必ず必要です。
どんなに簡素なゲームであったとしても、個人情報の収集が発生する場合には「**プライバシーポリシー**」の実装が必要ですし、有償通貨を実装する場合には「**資金決済法に基づく表示**」が必要です。

こういった規約類の実装方針がまとまった記事を探してもなかったので、これはまとめたら皆さんに見てもらえるだろう、そして弊社の宣伝にもなるだろう!といった下心からまとめようと決意した次第です。
深夜テンションで始めた企画なので、少し雑多なまとめになっているのはご容赦ください。

## まずゲーム開発に必要な規約類を知ろう
まず概観を知ることが大切です。一般的に必要と言われている規約類は以下の規約です。
– 利用規約
– プライバシーポリシー
– アプリの権利表記
– OSS等権利表記
– 特定商取引法に関

元記事を表示

【Android】ViewPager2でスライドショーを実装する【Kotlin】

## やりたいこと
Androidでスライドショーを実装しようと思います。

AndroidXのViewPager2 ウィジェットを使います。

![screenshot-1697356965469.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1175390/a9e6014c-a130-c357-b760-70f33cbbac6d.png)

## 1.下準備
プロジェクトの`build.gradle`ファイルに依存関係を追加しましょう。

1.1.0はベータ版で1.0.0が安定版なので、今回は1.0.0を使用します。

“` :build.gradle
implementation ‘androidx.viewpager2:viewpager2:1.0.0’
“`

## 2.レイアウトファイルにviewpagerを設置
スライドショーを表示させたいレイアウトファイルに ViewPager2 を配置しましょう。

“`kotlin:main_layout.xml

元記事を表示

[Android] BottomSheetDialogにフッターを設定する

## BottomSheetDialogとは

下から出てくるモーダルのようなDialogです。

base_dialog

ソースコード
https://github.com/nishimy432/BottomSheetDialogSample/blob/main/app/src/main/java/com/example/bottomsheetdialogsample/FirstBottomSheetDialogFragment.kt

## 初期値の高さを調整する
本題に入る前に、このダイアログが最初に表示される時の高さを変更したいです。
そのために、`peekHeight`に初期値にしたい高さを設定して、`state`を`BottomSheetBehavior.STATE_COLLAPSED`にします。

元記事を表示

Godot4.1.1でAndroidPlugin V1を動かしてみた

 Android StudioでGodot Androidプラグイン(v1アーキテクチャ)用Android Libraryを作成して、Godotのサンプルプロジェクトに組み込み、実行するまでの手順をまとめました。

https://docs.godotengine.org/en/4.1/tutorials/platform/android/android_plugin.html#android-plugin

:::note
Godot 4.2では、Android Pluginがバージョンアップして、v2アーキテクチャになるようです。
:::

# 名前の関係
 GodotのAndroidプラグイン用のAndroid Libraryを生成して使うときの、ファイルと名前の関係を整理しました。
 黄色の矢印は、元の名前を、矢印先に設定するという意味です。
![2023-10-15 (10).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691050/48e6c9a2-a207-9c46-e7a8-0fee

元記事を表示

可読性を上げるために気を付けること

# 初めに
今回は意外と気にしてる人が少ない可読性のために自分が普段気を付けていることを紹介していきます
### 本文
***KDocコメント***
まずはKDocコメントですKDocコメントとは下記のような形式で書かれたコメントです
中にクラス名やパラメータ名を`[]`で囲むことで検索をかけたりすることができます。
また、複雑な処理をしている関数などに軽い説明を入れることでパッと見ただけで他者がどんな関数なのかがわかりやすくなります
“`kotlin
/**
*
*/
“`
***ファイリング***
正式になんといえばいいのかがわからないので今回はファイリングという名前で紹介させていただきますが、やってることはとても単純で適切なパッケージや適切なクラスなどにわけることです。
例えば、データクラスを加工する処理を何か所にも同様のものを書いたり、データクラスに複雑な加工処理を何個も書くのはデータの置き場であるはずのデータクラスのコード量をファットにして非常に可読性が悪くなってしまいます
### 最後に
今回は自分が可読性を上げるために特に気を付けていることを紹介していきました
どなた

元記事を表示

【Android】コードで画面の明るさを調節する【Kotlin】

# 実践

“`
val windowAttributes = window.attributes
windowAttributes.screenBrightness = WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_OFF
window.attributes = windowAttributes
“`
今回例で使用した、
**WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_OFF**は 最小値で
最大値を設定したい場合は**WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_FULL**を使う。
または、数値でも指定可能で 0.0f 〜 1.0fで指定することができる。

**WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_NONE**を使うことで、画面の明るさをデフォルトの明るさにする、もしくは、明るさを変えないようにできる。

# 参考

https://developer.and

元記事を表示

Android Studioでビルドのときに「Run」タブが開かないようにする

Android Studioではデフォルトでビルドが完了するたびに「Run」タブが開きます。「Logcat」など他のタブを同じエリアで開いている場合閉じてしまうので、少し不便でした。ということで自動で「Run」タブを開かないようにする設定方法のメモです。

### 「Edit Configurations..」を開く

Edit Configurations..

### 「Activate tool window」のチェックを外す
「General」などどのタブを選択中でも表示されますが、Windowサイズによっては下方向にスクロールしないと表示されないかもしれません。
Activate tool window「ファイル内のapkファイルを(順番を制御して)インストールするバッチを作成するバッチ」を作成する

## はじめに
こんにちは。
AndroidOSの組み込み機器向けのアプリ開発を1年ほどやっています。

業務上、複数のapkファイルを一斉にインストールさせるバッチファイル(この記事内では_install.batと呼ぶ)を作成する機会が多く、そのたびに手動で作成するのが手間でした。
今回_install.batを自動で作成してくれるバッチファイルを作成することにしたので備忘録として方法を記します。

なお、筆者はバッチファイルについての知識は素人に毛が生えたレベルでしかないので間違いやおかしなところなどあればご指摘いただければ幸いです。

## 目次
[順番を制御しない場合](#順番を制御しない場合)
[順番を制御したい場合](#順番を制御したい場合)
[おわりに](#おわりに)

## 順番を制御しない場合
“`bat:_makeInstallBat.bat
@echo off
:: 作成/上書きするバッチファイル
set BAT=_install.bat

:: _install.batを新規作成し、先頭にpauseを書き込み;
echo pause> %BAT%

:: ap

元記事を表示

【備忘録】Android Studio ショートカットキー

【Mac】 command + W → ファイル閉じる

元記事を表示

Android Library を自作してJit pack に公開する時の備忘録

## 概要

Android Library を自作してJit pack に公開する時に遭遇した
エラーなどを備忘録的に残しておきたいと思います。

## 基本的な流れ

https://qiita.com/takagimeow/items/a62ba44c11117740c018#%E3%81%BE%E3%81%A8%E3%82%81

こちらの神記事をフォローします。

## いくつかの変更点と備忘録

ただ、いくつか変更した箇所がありました。

### build.gradle.kts

私の場合、build.gradle でなく、
build.gradle.kts (kotlin) を使っていたので、
app レベルのbuild.gradle.kts には

“`build.gradle
afterEvaluate {
publishing {
publications {
// Creates a Maven publication called “release”.
release(MavenPub

元記事を表示

Emacs for AndroidをTermuxと一緒に使う

# Emacs for AndroidをTermuxと一緒に使う

[0. 前書き](#0-前書き)

[1. Termuxのバックアップと再インストール](#1-Termuxのバックアップと再インストール)

[2. Emacs for Androidの設定](#2-Emacs-for-Androidの設定)
[2.1 early-init.elの作成](#21-early-initelの作成)
[2.2 init.elの作成](#22-initelの作成)

[3. 結び](#3-結び)

# 0. 前書き
前記事となる[EmacsのAndroidポートのビルド](https://qiita.com/ayatakesi/items/c857c907c8c7e675da9e)では、Emacsのmasterブランチ(いずれ次バージョンであるemacs-30になるブランチ)にmergeされたEmacsのAndroidポートについて、現時点で盛れる機能すべてを盛ったバージョンを付属するドキュメントにしたがってビルドした体験を記しました。その記事ではでは少ししか触れませんでしたが、そのビルド

元記事を表示

TextViewをコピーできるようにするには(XML&Compose)

# XML
XMLのTextViewに以下のコードを追加します
“`xml
android:textIsSelectable=”true”
“`
これだけでテキストのコピーが可能になります
コード上から変更する場合には`setTextIsSelectable()`を使用することで変更可能です。

ただしこれをtrueにすることで`focusable`, `focusableInTouchMode`, `clickable`, `longClickable`のフラグも同じくtrueになるのでコード上から変更する際には注意が必要です。

# Compose
テキストを`SelectionContainer`でラップすることでコピー可能になります
“`kotlin
@Composable
fun SelectableText() {
SelectionContainer {
Text(“This text is selectable”)
}
}
“`
また、コピー可能テキストの中の一部のみコピー不可にしたい場合は`DisableSelection`でラ

元記事を表示

【Jetpack Compose】WebViewにpull-to-refreshを実装しようとしたらハマったこと

# はじめに
現在(2023/10/10)Jetpack Composeでは、WebViewを使うにはAndroidViewで囲む必要があります。対して、pull-to-refreshはJetpackComposeに実装されているPullRefreshと以前のViewのSwipeRefreshLayoutがあります。

結論、SwipeRefreshLayoutで解決しました。

# WebView
Jetpack Composeでは、WebViewを使用するためにはAndroidViewというラッパーを用いてその中にWebViewを配置する必要があります。AndroidViewはJetpack Composeのコンポーザブルから従来のViewシステムを使うための架け橋的存在です。
以下にコード例を示します。

“`kotlin
@Composable
fun WebViewContainer() {
AndroidView(factory = ::WebView) { webView ->
// WebViewの設定をここで行う
webVie

元記事を表示

「debug」と「attach debugger to android process」の違い

「普通のDebug」と「Attach Debugger to Android Process」の違い

前者はアプリ起動時からデバッグする。
後者は既にアプリが起動した後にデバッグする。

起動時の画面に変化が無いかの確認等でよく使うのは前者。
起動した後の画面から特定のボタンやビューをタップした後の動作を確認するときに使うのが後者。

元記事を表示

CastContext.getSharedInstance(context: Context)のdeprecated対応

`CastContext.getSharedInstance(context)` が deprecated になり、Taskを渡して取得する方法が推奨されるようになりました。

https://developers.google.com/android/reference/com/google/android/gms/cast/framework/CastContext#getSharedInstance(android.content.Context)

公式の[Sample](
https://github.com/googlecast/CastVideos-android/blob/99d3de47890c7c02650db45dda806b5255d27787/app-kotlin/src/main/kotlin/com/google/sample/cast/refplayer/VideoBrowserActivity.kt#L92)では以下の使い方をしていますが、この方法だと困ったことにうまく取得できません。

“`kotlin
val castContext =

元記事を表示

Androidスマホ/タブレットにTermux/google-home-playerをインストールしてアラーム指定日時に各部屋のGoogle Home(Google Nest)を喋らせる

### Androidスマホ/タブレットにTermux/google-home-playerをインストールしてアラーム指定日時に各部屋のGoogle Home(Google Nest)を喋らせる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/123229/936fb6b5-4b18-d437-cce4-ad0c926407dc.png)

### 今回は各部屋に置いてある複数台のGoogle Home(Google Nest)を喋らせます

今回はAndroidスマホ・タブレットを直接喋らせるのではなく、「各部屋に置いてある複数台のGoogle Home(Google Nest)を喋らせる」方法について書きます

### 前回の記事の続きになります

前回の記事「Androidスマホ/タブレットにTermuxをインストールしてアラーム指定日時に自由に喋らせる」の続きになります

Androidスマホ/タブレットだけを使ってAndroid自体にアラーム指定日時に喋らせるだけであれば前回の記

元記事を表示

KMP (Kotlin Multiplatform)の導入検討

はじめに

本田技研工業でAndroidAutomotiveOS向けのアプリ開発を担当している松村です。
新規アプリを作成するにあたって、マルチデバイスに対応できる拡張性を持たせた構成にしたいという考えから
KMP(Kotlin Multiplatform)の検討をいたしましたので軽く紹介したいと思います。

まず最初に

[最近まで使われていたKMM(Kotlin Multiplatform Mobile)という名称は廃止され、
KMP(Kotlin Multiplatform)に名称を統一されました。](https://blog.jetbrains.com/ja/kotlin/2023/08/update-on-the-name-of-kotlin-multiplatform/)

なぜKMPを検討したのか

他にもクロスプラットフォーム([Flutter,](https://flutter.dev/) [.NET MAUI](https://dotnet.microsoft.com/en-us/apps/maui), [ReactNative](https://dotn

元記事を表示

AndroidアプリをGoogle Play Consoleから公開するときにこまったこと

 Godot4.1.1で開発したゲームをGoogle Playで公開しました。

https://play.google.com/store/apps/details?id=com.footinglow.android.tiltslalom&pli=1

 その時に参考にしたサイトと、困ったけど解決した方法などまとめます。

# 参考にしたサイト
 こちらのサイトを参考にしました。大変お世話になりました。

https://pursue.fun/tech/how-to-android-app-release-overview/

# Google Play Consoleの登録で悩んだこと
 JCBカードで支払いできました。
 それ以外はネットで調べた内容で、迷わず登録できました。

# Google Play Consoleで「アプリを作成」
 Google Play Consoleの「アプリを作成」ボタンを押下すると、アプリケーションの情報登録が始まります。
 たくさんの情報を登録しますが、その中に「プライバシーポリシー」の「url」を登録する必要があり、面食らいましたが、下記のサ

元記事を表示

【Android】アプリアイコンをさくっと作成する方法

アプリのアイコンが付いていないとコードを書く気が出ない・・・そんなときに、とりあえずそれっぽいアイコンをさくっく作成する方法です。先日、[iOS](https://qiita.com/yuppejp/items/0cc2b8276d215cc24f14)でやったので、今回はAndroidでもやってみました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/77444/94d4cae1-1dd4-071f-5e71-0678fa4186a4.png)
↑ やる気がでないやつ

# アプリアイコンの作成の流れ
1. アイコン画像を表示するViewを作成
1. Viewのスナップショットをファイルに保存(PNG)
1. Android Studioでアイコン画像を設定

## アイコン画像を表示するViewの作成
Jetpack Composeで[マテリアルアイコン](https://developer.android.com/reference/kotlin/androidx/compose

元記事を表示

Androidアプリのproguardで画像が表示されなくなる件

# 問題
過去にリリースしたアプリに取り込んでいる各種ライブラリの最新化などメンテしていた際に
proguardまわりを見直していたら、突如画像が出力されなくなった。
![スクリーンショット 2023-10-09 11.47.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183689/7557ea95-6646-7d46-de38-8ed71f2befd7.png)
画像1.正しく表示されている例
![スクリーンショット 2023-10-09 11.47.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183689/875e097a-bcb4-6f47-73fd-f50389f04142.png)
画像2.正しく表示されていない例

# 原因・解決方法
build.gradle(:app)のbuildTypesに「shrinkResources true」を追加したことが原因。
これを削除したことで問題なく画像

元記事を表示

OTHERカテゴリの最新記事