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

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

EmacsのAndroidポートのビルド

# EmacsのAndroidポートのビルド
## 前書き
2022年の大晦日にEmacsメンテナのPo LuさんによりAndroidネイティブアプリとしてEmacsを配布するためのブランチfeature/androidが立ち上がりました([過去記事](https://qiita.com/ayatakesi/items/be1868d2f394d39f1e76))。その後、emacs-develでの幾ばくかの議論の末に、feature/androidブランチはめでたくmasterブランチへとマージされました。これはどういうことかというと、ユーザー視点に限って言えば今まではfeature/androidブランチを取得してビルドする必要があったのが、今後はmasterブランチを取得してconfigureのオプションによってAndroidポートをビルドできるようになったことを意味しています。さて、このAndroidポートですが主要開発者のPo Luさんによって当初からドキュメントが非常に充実しています。この記事ではそれらのドキュメントにしたがって、2023年10月時点におけるすべての機能を取

元記事を表示

【Android】SearchViewをComposeで実装する

# はじめに
だいぶComposeで実装しやすい環境が整ってきましたが、AndroidViewの機能であるSearchViewをComposeで実装したらどんな感じになるのか調べる機会がありましたので、備忘録的に残しておこうと思います。

# SearchViewをComposeで実装する
まず旧実装は以下になります。

“`main.xml

“`
Composeが普及してきているとはいえ、XMLを使用したAndroidViewの実装はまだまだ現役ですよね。
上記に対してComposeの実装は以下になります。

“`main.kt
val focusManager = LocalFocusManager

元記事を表示

Jetpack Composeでスクレイピングしてみた

# はじめに
どうも、フリーランスエンジニアをしているモブ太郎です。
このの記事では、Jetpack Composeで「Jsoup」というライブラリを使用して、スクレイピングをしたいと思います。
細かい説明は省いていますので、参考程度、こういったものがあるんだな程度に見ていってください。

# 完成形
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3331610/7495d370-2592-5283-a253-2c8fa334ad5a.png)

# Jetpack Composeとは
Jetpack Composeは、ネイティブUIをビルドする際に推奨されるAndroidの最新ツールキットのことです。
Jetpack Composeを導入する理由は以下になります。
– **コードを削減**
少ないコードで多くの機能が可能になり、あらゆる種類のバグが避けられるので、コードがシンプルで維持しやすくなります。
– **直観的**
UIを記述するだけで、残りの部分はComposeで処理されます

元記事を表示

ElixirDesktop Android Exampleを参考にAndroidアプリを1から作ってみる

# はじめに
本記事は以下を参考にAndroidStudioでプロジェクトを作るところから初めて
実際に起動するまでの手順の備忘録です

https://github.com/elixir-desktop/android-example-app

# プロジェクトを新規に作成
Native C++ を選択
![スクリーンショット 2023-10-07 21.18.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64198/12b9ee06-2e0d-2207-7d91-65add479745b.png)

Save Locationは phoenix_pj/native/android に設定
Minumum SDKはお好きに自分は10.0にしました
gradleはElixirDesktopに合わせてgrooby DSLにする .ktsにしない

![スクリーンショット 2023-10-07 0.21.38.png](https://qiita-image-store.s3.ap-northeas

元記事を表示

Godotでaabファイルつくってアプリ公開しました

 Godot4.1.1で開発したゲームをGoogle Playで公開しました。
 ご興味があれば是非一度遊んでみてください。

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

 Google Playにアプリを公開するためには、apkファイルではなく、aab(Android App Bundle)というファイル形式にする必要があります。デジタル署名も必要です。その方法をまとめました。

:::note info
GoogleのAndroid Developperを参考にしました。というかそのままです。
https://developer.android.com/games/engines/godot/godot-export
:::

# APKファイルエクスポートの設定
 事前にAPKファイルのエクスポートができるようにしましょう。ここのプロジェクト設定や、デバッグ用キーストアの設定がaabファイルの作成にも必要です。

https://qiita.com/F

元記事を表示

【Flutter】ListViewを無限ループスクロールできるようにしてユーザーを幸せにする。

どうも、個人でアプリ開発をしているYuKiOです。

「最高にかっこいいメモアプリHacker Memo」や「社会や街の安全に貢献するためのプラットフォームアプリみんなのチカラ」などアプリを15本リリースしています。

今回の記事は、ListViewで作成したボタン一覧を無限ループでスクロールする方法を紹介したいと思います。

色々調べましたが、なかなか良い解決策がなかったので記事にしてみました。

もし、もっと楽な方法があれば、教えて欲しいです。

## 実現したかったこと
水平にスクロールして選択できるカテゴリ選択ボタンリストがあります。左右どちらにスクロールしても、前後が繋がってリストが表示され続ける無限ループのに表示したい考えました。無限ループにすることで、両端のボタンに素早くアクセスできるようになることで快適になり、ユーザーが幸せになると考えたからです。

例えばリストのアイテム数が決まっている場合や、そこまで数が多くない(多くても20くらい)ことが想定される場合に限定される要望だと思いますが、以下のようにカテゴリ選択で今回は実装しました。

![IMG_2094.jpg](

元記事を表示

【Android】画像URIから拡張子を取得

# はじめに
画像URIから拡張子を取得する方法について解説。

# コード
URIには`content`スキーム`file`スキームの2種類が存在するので、それぞれの方法で拡張子を取得する。

“`Kotlin
fun Uri.getExtension(contentResolver: ContentResolver): String? {
return when (scheme) {
ContentResolver.SCHEME_CONTENT -> MimeTypeMap.getSingleton().getExtensionFromMimeType(contentResolver.getType(this))
ContentResolver.SCHEME_FILE -> MimeTypeMap.getFileExtensionFromUrl(Uri.fromFile(File(path ?: return null)).toString())
else -> null
}
}
“`

# 参考
https://stackoverflow.com/questi

元記事を表示

Channel実装時に気をつけたいこと

# はじめに
今回は`Coroutine`のひとつである`Channel`について気をつけておきたいことを紹介していきます
### 本文
まず、許容量です
`Channel`宣言時に下記のようにすることで`Channel`に対して幾つの値を詰めれるかを設定することができます
“`kotlin
Channel(Channel.CONFLATED)
“`
デフォルトだと`RENDEZVOUS`が設定されています
`RENDEZVOUS`は`send`と`recieve`各々が呼ばれるまで片方は止まり続けるのでスイッチに似た機構になっています
`CONFLATED`は上書きされ、常に最新のものが入っている状態になります
基本的には上記二種類を使うのが一般的かと思います。

次に、`close`です
これは値の更新や取り出しをこれ以上したくない場合に呼び出すのですが、意図しないタイミングで更新をしてしまった時などのために下記のようにしておくことでクラッシュしてしまうことを予防することができます
“`kotlin
if (hoge.isClosedForReceive) {

元記事を表示

JetBrains Toolbox Appでインストール場所を変更する

JetBrains Toolbox Appでは、

> 設定 > ツール > ツールのインストール場所

にて、ツールのインストール場所を変更できるはずなのですが、本稿執筆時点(JetBrains Toolbox 2.0.4.17212, macOS 13.4.1)においては、編集できません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1790252/58505435-8443-6a79-06b0-24706d6c8faf.png)

そこで、以下のIssueコメントにあるように、 `~/Library/Application\ Support/JetBrains/Toolbox/.settings.json` の `install_location` に任意のパスを設定することで、インストール場所を変更できます。

https://youtrack.jetbrains.com/issue/TBX-9575/Enable-changing-install-location

以下は

元記事を表示

地方銀行でモバイルエンジニア向け社内勉強会を実施してみた

# はじめに
先日、社内で開催した「**モバイルエンジニア向けの社内勉強会**」が凄く実りがあったので、それについて書きました。
他の地銀や固い雰囲気のある会社さんで働いていらっしゃる方も、ぜひ社内で勉強会などをプレゼンするときに「北國銀行はやってますよ!」みたいに、この記事を積極的に使っていただけると嬉しいです。

# どんな会社?
我々デジタルバリューは金沢に本店がある「北國銀行」をはじめとする北國フィナンシャルホールディングスの一員で、システム開発を中心に仕事をしています。

![北國FHD.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2810912/c2c9916a-a444-5c5e-a976-b1cbb4e3428b.png)

銀行というと「半沢直樹」のイメージが強いかも知れませんが、北國銀行は全くそんなことがありません。
少し例を出すと、こんな感じです。
– 頭取とも会話する機会がある(何ならコーヒー飲みながら立ち話をすることもある)
– UNIQLOのTシャツとか髪染めもOK(勿論、

元記事を表示

ConstraintLayoutに入門しよう

## はじめに
この記事はAndroidレイアウトを理解し始めた(気がする)人による、まだ理解していない人への記事です。間違えていたり、分かりにくい場合はコメントで教えてね

## Constraint Layoutとは?
Constraintは日本語で「制約」を意味します。
Constraint Layoutは、それぞれのViewに「制約」を与えることでViewの位置を決めるLayoutです。
## ConstraintLayoutの前提
Constraint Layuoutでは(他のLayoutでもそうですが)、4辺を上下左右ではなくTop、Bottom、Start、Endと呼びます。これは画面の向きが変わったり、いろいろした時に向きがぐちゃぐちゃにならないようにするためです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3554880/248dd02d-6b67-4727-d4fc-44b4a77dcb7d.png)

## 制約って何?
Constraint Layoutでの

元記事を表示

Android App store‐自分への戒め

# アカウント作成や基本的に手続きの解説

:::note info
インフォメーション
まずは準備段階で必要な事がまとめられているこちらのページをご覧ください。
:::

## nyanさんのアプリ開発
https://akira-watson.com/android/developer-console.html

作ったは良いけど、どうしたら公開できるのといった細かい点が網羅されています。

# アップ時の決まり事
– Release 版をアップしましょう。
– 私はうっかりDebug版あげてました(メニュー上、選択していない方)
– アップロード時点でエラーが出たらとにかくつぶします。
– 知らずにアップした時点でだれか?がめいいっぱいテストして、問題点指摘してくれます

![屏幕截图 2023-10-03 21.38.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2155177/014e4d0f-b311-7374-f4f7-2bc6fab2cc25.png)

## 注意2 難読解フ

元記事を表示

pytorch mobileのObject Ditectionデモを任意のサイズのモデルで実行できるようにする

[前回](https://qiita.com/sanjolin_chun/items/090ff55c748f003a54a7)に引き続き,[pytorchのObject Ditectionのデモ](https://github.com/pytorch/android-demo-app)を扱う.こちらのソースコードでは,推論時にモデルの名称を直接渡していたため,モデルのサイズを変更するために,いちいちコードを書き換えて,再ビルドしなければならなかった.そこでandroidの復習がてら,アプリ側でモデルの変更ができるようにする.

さらに下記の実行環境での各モデルのリアルタイムでの推論時間についても計測したので記述しておく.

## 実行環境
実行端末のスペック
– Xiaomi 11T Pro
– Snapdragon™️ 888
– Android 13 TKQ 1.220829

yoloモデルはREADMEに従って,4種exportした.
– yolov5s.torchscript.ptl
– yolov5m.torchscript.ptl
– yolov5l.torch

元記事を表示

pytorch mobileのObject Ditectionサンプルを動かす

[前回](https://qiita.com/sanjolin_chun/items/f667adf5ad75ed47c9bd)に引き続き,[こちら](https://github.com/pytorch/android-demo-app)のpytorchmobileのデモを動かしたメモ書きを残す.今回はObject Ditectionとして,yolov5を使用したリアルタイム推論が紹介されていたので,こちらを実行してみる.

android-demoのgit cloneとREADMEで紹介されているyolov5のgit cloneまでは実行しているものとする.

## ptlファイルを作成するdocker環境の編集

READMEに従って,yolov5リポジトリから,ptlファイルを生成する. 手元にあった未編集の“`pytorch/pytorch:1.9.1-cuda11.1-cudnn8-devel“`イメージを使用してexport.pyを実行した(GPU環境は使用していない).

##### 元の環境
“`
torch 1.10.0
to

元記事を表示

pytorch mobileのHelloWorldサンプルを動かす

今回は[こちら](https://github.com/pytorch/android-demo-app)のpytorch_mobileのandroidデモを動かしてみたので,備忘録として実行方法を載せておく.基本はREADMEを読んで,その通りに実行すれば良いのだが,コードの変更や,環境の依存性があるため,誰かの役に立つ可能性があると思われるため,メモを残す.
## 実行端末情報
– Xiaomi 11T Pro
– MIUI バージョン 14.04
– Android 13 TKQ 1.220829

## gradleビルドパッケージについて
gradleで指定したパッケージを更新したいが,jcenter()が閉鎖済みであり,これの変更が必要.
jcenterをmavenに変更.あまり最新版のgradleにしすぎるとエラーを吐くようになるため適当に更新.今回は,ビルドツールの4.2.0あたりが最善だった.

gradleのパッケージの対応バージョンは下記で閲覧することができる.mavenの公式だと思うが,非常に助かる.
https://mvnrepository.com/arti

元記事を表示

Androidアプリ「TaskPriority」をリリースしました【個人開発】

## はじめに

個人開発したAndroidアプリ「TaskPriority」をリリースしました!

Androidアプリのリリースは今回で3回目です!

この記事ではリリースしたアプリの紹介や制作した経緯などについてを自分のための備忘録として書いていきます。

## 目次
1. リリースしたアプリ「TaskPriority」について
2. 制作した経緯
3. 使用した言語・データベース
4. 今までのアプリ開発で感じた課題とその解決策
5. 今後修正したいところ
6. おわりに

## リリースしたアプリ「TaskPriority」について
#### リリースしたアプリ

* TaskPriority:優先順位がわかるタスク管理アプリ

#### アプリの概要

タスクの優先順位を確認することができるタスク管理アプリです。
優先順位が高いタスクは濃い色で、低いタスクは薄い色で表示されるので、下記画像のようにグラデ

元記事を表示

Kotlin Multiplatform の SKIE について Suspend Fuctions 機能の動作を TCA を使って確認しました

# はじめに

先日、Kotlin Multiplatform における iOS 向け API を Swift から使いやすくするツール [SKIE](https://skie.touchlab.co/) の[機能](https://skie.touchlab.co/features/) のうち、 [Sealed Classes](https://skie.touchlab.co/features/sealed) を紹介しました。導入方法もこちらで解説しています。

https://qiita.com/tfandkusu/items/833b16c2ef4a03307c77

今回は [Suspend Functions](https://skie.touchlab.co/features/suspend) についての紹介と [The Composable Architecture](https://github.com/pointfreeco/swift-composable-architecture) (TCA) を用いた動作確認を行います。

ちなみに SKIE の発音は空の「ス

元記事を表示

iOS, Androidエミュレータにファイルを転送するにはドラッグアンドドロップすればOK

ふと試したらあっさりできて感心した
一応仕事でスマホアプリ開発していたこともあったのに初めて知りました

# Android
Downloadsにコピーされる
![スクリーンショット 2023-10-01 22.33.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352532/e9fea86c-3d58-7977-6974-dea33d24f038.png)
![スクリーンショット 2023-10-01 22.34.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352532/431cd565-5c89-d5b1-0cd5-79d68e63c3a4.png)
![スクリーンショット 2023-10-01 22.34.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352532/5af3eda7-1498-6925-9f6

元記事を表示

【Android】「” “(ダブルコーテーション)」を文字列に入力したい【Kotlin】

# 「\」バックスラッシュを使う
「\」を「”」の前に入れることでダブルコーテーションを表示できる
“`
“\”Hello, world!!!\””   // “Hello, world!!!”
“`
# 三連引用符を使う
ダブルコーテーション三つで囲む方法でも表示できる
“`
“”””Hello, world!!!””””   // “Hello, world!!!”
“`

# おわりに
stringリソースを使えばこんなことしなくても良いような気もしますが、どうしてもリソースを使わずにダブルコーテーションを表示したい場合があるかと思い記事にしました。
簡単にではありましたが、軽いメモ的な感覚で今回の記事としておきます。

元記事を表示

RatingBarの画像をカスタマイズする方法

# はじめに
RatingBarは評価に使われるツールです
ユーザーに商品の評価などをしてもらうときに便利な機能ですね
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252283/5954a014-4d35-85de-645b-0f7c4689d832.png)

https://developer.android.com/reference/android/widget/RatingBar

色のカスタマイズなどは容易なのですが、たまに星の画像(形)を変更してほしいという依頼がありします
というわけでカスタマイズ方法の紹介です
ただし、修正方法は公式推奨の変更方法がないので、あまり推奨はできません
RatingBarは元々OSバージョンやユーザー設定によってバグが起きやすいの機能なので変更したくないというのが本音・・
今回はなるべくバグが起きない、且つ、簡単な方法を紹介します(大手サービスでしばらく運用していますが今のところ問題は起きていません)

# 調べたやり方
参考サイト:
Ra

元記事を表示

OTHERカテゴリの最新記事