Android関連のことを調べてみた

Android関連のことを調べてみた

Google Fit APIとHealth Conect APIのまとめ

## [Fit Android API(Google Fit)](https://developers.google.com/fit/android?hl=ja)

#### できること

【アクティビティ】
– アクティビティ/エクササイズの種類(TYPE_ACTIVITY_SEGMENT)
– サイクリングのペダリングのリズム(TYPE_CYCLING_PEDALING_CADENCE)
– サイクリングのペダリング数(TYPE_CYCLING_PEDALING_CUMULATIVE)
– サイクリングのホイールの回転数(TYPE_CYCLING_WHEEL_REVOLUTION)
– サイクリングのホイールの1分間の回転数(TYPE_CYCLING_WHEEL_REVOLUTION)
– 移動距離(TYPE_DISTANCE_DELTA)
– 位置情報(TYPE_LOCATION_SAMPLE)
– 活動時間(TYPE_MOVE_MINUTES)
– エクササイズ中に生成した電力(TYPE_POWER_SAMPLE)
– 速度(TYPE_SPEED)
– 歩数(TYPE_STEP

元記事を表示

RecyclerViewを使ったリストの逆順表示をしたかった

# きっかけ
RecyclerViewを使ってimageのリストを逆順で表示させようとしたときにうまくいかないポイントがあったので書こうと思いました。

Android開発に携わり始めて一ヶ月である手前、寡聞少見ながら本記事を作成しております。
ご意見やアドバイスなどございましたら是非ともよろしくお願いします。

# やりたかった事
– `データをリスト表示させる時、
並びを逆順で(下から)表示させたい`
– `RecyclerViewにしたときに上部から下方向へむけて表示させたい`

# ためしたこと
**1. GridLayoutManagerを使って並べ替える**

“`kotlin:kotlin
//Adapter
//リサイクラービューのリスト、取得方法,数字はあくまで仮定
val exList = lis

元記事を表示

Android App Development

Android App Development!

Mobile applications have become a crucial part of our daily lives, transforming the way we communicate, work, and entertain ourselves. Among the various mobile operating systems, Android stands out as the most popular, powering billions of devices worldwide.

![Android App Development.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352567/17f7b22b-b3f2-f37b-ab45-1f428d5d8700.pn

元記事を表示

AndroidアプリのIntentの書き方

最近ChatGPT先生に教えて貰いながら自作Androidアプリを作っていました。
長らくWindowsやちょっとLinuxに慣れ親しんだ体にはAndroidのファイルアクセスが理解できなくて大変でしたが何とか動かせました。

最後の最後で躓いた部分をメモ

正しいコード
“`



【Android】Jetpack Compose楽々体験 文字列&画像配置編

# いろいろと楽にしてくれるjetpack compose
開発でfragmentやらを作った上にxmlでレイアウトを崩さないようにいろいろ調整するのが面倒でした。
おまけにその分時間をとられて作業がなかなか進まないために残業をしなければ終わらないっ・・・!
そんな時に出会ったのがこのjetpack composeです。
少し触ってみた感想は、**「kotlinファイルだけで画面を生成できるのは本当に楽!」** でした。

## 作ったもの
画面がかなり汚くなっていますが、文字列操作のテスト画面を作成しました。導入は`Empty Compose Activity`をプロジェクト時に選択するとgradleの設定をしなくてもよくなるので楽です。ただし、生成時に自動でついてくるactivity_main.xmlは使わないので削除します。
色や画像設定、文字列はリソースファイルからとってきています。

元記事を表示

[Android] Hiltを使ったテスト中のデータベース差し替え方法

## はじめに
ComposeのUIテストを行う際に、DBをin memoryに差し替えたいなと思って調べた結果を簡潔にまとめました!

## Custom test runnerの設定
HiltでのDB差し替えをテストで使うには専用のHiltTestApplicationを使う必要がある。なのでCustomTestRunnerを設定、gradleでそれを使うように指定する。

“`kotlin
class CustomTestRunner : AndroidJUnitRunner() {
override fun newApplication(cl: ClassLoader?, className: String?, context: Context?): Application {
// HiltTestApplicationをテスト用のApplicationクラスとして使用
return super.newApplication(cl, HiltTestApplication::class.java.name, context)

元記事を表示

Apple Silicon + Android Studio2023.1 + Android OS9環境でのアプリインストール問題の解決

### 問題
MacのApple Silicon端末において、Android Studio 2023.1(SDK Platform Tools 34.0.5)の最新版を使用し、Android OS 9を搭載した端末にアプリをインストールする際、Studioから「Run」する方法やADBコマンドを使用した方法でインストールができないという問題が発生しました。ビルド自体は成功しているようですが、その後のインストールに問題が生じています。なお、Android 12や13ではこの問題は発生していません。

### 問題が発生した環境
端末: Mac(M2 Pro)Apple Silicon
Mac OS: Sonoma 14.2.1
エディター: Android Studio 2023.1(SDK Platform Tools 34.0.5)

### 参考になった情報元
https://issuetracker.google.com/issues/270205252

### 解決方法
ADBコマンドが使える前提となりますが、Google Issue Trackerに報告されているよう

元記事を表示

Vulkan Extension Layer を使う Android アプリを RenderDoc でデバッグする

## 今回の結果の git コミット
fork した RenderDoc のリポジトリにコミットを追加してある.

https://github.com/James2022-rgb/renderdoc/commit/81e63e382068b9d8fffe79c69e012e5455a29226

後述の手順でビルドを行うと, VEL の `*.so` がパッケージングされた `org.renderdoc.renderdoccmd.arm64.apk` が生成される.

この APK を下記の手順で RenderDoc が使用するようにすると, VEL を使った RenderDoc キャプチャのリプレイが可能になる.

## 導入

### Vulkan Extension Layer (VEL)
Android に限らず Vulkan アプリで, ドライバがネイティブで対応していない拡張を用いるために,
polyfill layer である [Vulkan Extension Layer (VEL)](https://github.com/KhronosGroup/Vulkan-E

元記事を表示

Android Studio をインスト-ルしています。

Android Studio をインスト-ルしています。
インストールし始めて自分で本を読ながら時には自分でアプリを作ったりして約1年経ちます。
おかしくなったので、再インストールしています。

途中でSDKを指定するパスはどこか聞かれます。
それから先は進みませんがそれを無視すると

Unable to continue until an Android SDK is specifiedSelf-causation not permitted
Unable to continue until an Android SDK is specified

と言うメッセ-ジが表示されこれより先に進みません。訳すると

Android SDKが指定されるまで続行できない自己因果関係は許可されていません
Android SDKが指定されるまで続行できません

と言うことですが、どうしたら良いのでしょうか?

もう完全アンインストールしてインストールしています。何回も同じ結果です。

元記事を表示

ReactNativeでアプリのシステム設定画面に遷移する

起動しているアプリに関わるシステム設定の画面へ遷移する方法を記載していく。

公式ドキュメントを参考にする。

https://reactnative.dev/docs/linking?language=typescript#opensettings

## 内容
`Linking`ライブラリーを用います。
`Linking`はアプリのリンクを操作するためのインターフェイスを提供しています。

### ライブラリーをインポート
“`tsx
import { Linking } from ‘react-native’;
“`

### アプリの設定画面に遷移する

“`tsx

元記事を表示

【Android】動かしたViewをフェードアウトさせる【Kotlin】

# はじめに
前々回の [【Android】Viewをドラッグして移動させる【Kotlin】
](https://qiita.com/Tsubasa12/items/c0287069b5e8666c2de7)前回の [【Android】ドラッグしたViewを回転させる【Kotlin】
](https://qiita.com/drafts/4178c27c469ac3bc2c0d/edit)
に引き続き、今回はViewをフェードアウトさせるアニメーションを作っていきます。

# 実践

“` diff
+ lateinit var textView: TextView

@SuppressLint(“ClickableViewAccessibility”, “MissingInflatedId”)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_

元記事を表示

Androidアプリの制作フロー概要

昨今生成AIのおかげで個人開発のハードルが下がり、何かアプリを作りたいと思ってる人も多いと思います。

なのでAndroid向けアプリの概要(アプリ開発に必要なサービス等)について簡単に書いてみます。

– AndroidManifest.xml: アプリの構造やメタデータ、コンポーネント、パーミッションなどを定義するマニフェストファイルです。プロジェクトのルートディレクトリにあります。
– java: JavaやKotlinのソースコードファイルが入っているフォルダです。UIのコントローラーとして機能します。
– res: リソースファイルが入っているフォルダです。画像や音声、文字列、レイアウトなどが含まれます。
– drawable: 描画可能なリソースファイルが入っているフォルダです。ビットマップやベクター、シェイプ、レイヤー、ステートなどが含まれます。
– layout: UIのレイアウトを定義するXMLファイルが入っているフォルダです。ビューの階層構造を作成するために、子要素としてウィジェットを追加できます。
– values: 文字列や色、スタイル、テーマなどの値を定義す

元記事を表示

【Android】startActivity(intent) と startActivity(intent) + finish() の違い

## finish() ありか、なしか
### 画面遷移時 `finish()` あり
“`kotlin
val intent = Intent(this@LoginActivity, NextActivity::class.java)
startActivity(intent)
finish()
“`
– LoginActivity が終了し、バックスタックから削除される
– つまり、ユーザーが WebActivity を閉じた後にバックボタンを押すと、アプリは直接アプリのメイン画面や前の画面に戻る

### 画面遷移時 `finish()` なし
“`kotlin
val intent = Intent(this@LoginActivity, NextActivity::class.java)
startActivity(intent)
“`
– この場合、LoginActivity は終了せず、バックスタックに残る
– つまり、WebActivity を終了した後でも、ユーザーがバックボタンを押すと LoginActivity に戻る

## 挙動チ

元記事を表示

[Android] ActivityのTaskについて

## はじめに
画像シェア機能を扱う際にTaskやRecentについて色々と調査した結果を書き残しておきます。

## taskとは
Taskはアプリで使用する一連のActivityの集まりで、内部的にはBackstackを用いてActivityを管理している。
## task内のbackstackの挙動操作
ActivityのlaunchModeを指定することにより、Backstackの挙動を制御できます。設定方法は主に二つある:

1. AndroidManifest.xmlでの設定
2. Intentのフラグを使用した設定
### AndroidManifest.xmlでの設定
AndroidManifest.xml内で以下のように設定する:
“`jsx


“`
以下はlaunchModeのオプション:
* standard
* Backstackの最上部に新しいActivityインスタンスを追加する
* 異なるTask上に新しいActivityインスタンスを生成する

元記事を表示

JetpackComposeでライセンス画面を実装する

# はじめに
今回はAndroidでは必須なライセンス画面をJetpackComposeで実装していこうと思います。
Google公式のAPIだと手動で追加するのが面倒だったり、coockpadさんのライブラリだとアーカイブされてしまっているので少し面倒に感じるかもしれませんが、実はとても便利なライブラリがあるのでそれを紹介しつつ実装していきます
### 本文
まず、今回利用させていただくライブラリは`aboutLibraries`です
実装の方法としてはとても簡単で、まずプロジェクトの`build.gradle`に下記のように記述します
“`gradle:rootBuild.Gradle
plugins {
id(“com.mikepenz.aboutlibraries.plugin”)
}
implementation “com.mikepenz:aboutlibraries-core:${latestAboutLibsRelease}”
“`
次に表示させたいUIが置かれているModuleの`build.gradle`に下記のように記述します
二種類記載していますがMater

元記事を表示

Asahi Linux で Waydroid は動かない

# TL;DR

**Waydroid は Asahi Linux では動きません!**

少なくとも現状, 良くても… 向こう数年? (Linux on ARM がより普及したり対応が進んだら話は変わるのかな)

# Waydroid とは

ggrks.

https://waydro.id

# 環境

– `OS: Arch Linux ARM aarch64`
– `Host: Apple MacBook Pro (16-inch, M1 Pro, 2021)`

ここで `waydroid`[aur](https://aur.archlinux.org/packages/waydroid) を導入しています. 詳しいことは聖書を読みなさい (Waydroid すら Arch 関係は[聖書に丸投げ](https://docs.waydro.id/usage/install-on-desktops#arch-linux)しています).

https://wiki.archlinux.org/title/Waydroid

# 試したこと

## `bind

元記事を表示

【Android】TarsosDSP を 2024.02 時点の Android 開発環境で使ってみる

## はじめに

[ピッチ(音高)](https://www.sii.co.jp/music/try/tuner/01.html)を測るチューナーアプリを作るためライブラリを探していたら [TarsosDSP](https://github.com/JorenSix/TarsosDSP) というものを見つけた。 Android でも使用できるみたいだがかなり古い。TarsosDSP を使用した Android プロジェクトの GitHub リポジトリを見つけたがこれらも古い。

– [mikkipastel/pitchDetector](https://github.com/mikkipastel/pitchDetector)
– [project-spectra/SpectraPitchDetectorAndroid](https://github.com/project-spectra/SpectraPitchDetectorAndroid)

記事を書いている 2024.02 時点の最新の環境でも TarsosDSP を使えるのか検証する。

## 環境

– Android S

元記事を表示

Wear OS 搭載スマートウォッチで曲がった(curved)スクロールバーを表示したい

## 概要
円形のスマートウォッチで縦棒のスクロールバーではなく、画面の淵に沿って曲がった(curved)スクロールバーを表示したかったがうまくいかなかったので試行錯誤した

## 実装
何も考えず `ScrollBar` or `RecyclerView` を配置すると縦棒のスクロールバーが表示された

コードを見る

元記事を表示

Kotlin Flowを使ったポーリングの実装

# はじめに

APIから一定間隔で自動的にデータを取得(ポーリング)して、UIを最新の状態に保ちたいことがあります。タイマーを使う方法もありますが、Flowを使うと安全で効率的な処理が綺麗に書けます。

https://developer.android.com/kotlin/flow?hl=ja

# ポーリング

今回、必要な条件は以下のように考えました。

– 一定間隔でAPIに問い合わせて画面を更新する
– UIコンポーネントが画面に表示されていない時は、更新処理を行わない
– ユーザーが任意のタイミングで更新することもできる

## Flow

Flowは非同期なデータの流れです。このケースでは、定期的にAPIに問い合わせた結果が流れていく場所がFlowになります。

Flowは「コールド」です。コールドとは、値を収集することではじめて動作するという意味です。つまり、UIが表示を行うためにFlowの値を収集することによって、Flowの処理が実行されます。

## Flowの作成

`flow`ビルダーを使ってFlowを作成します。
リポジトリからデータを取得して、`emi

元記事を表示

FragmentでPredictive backをサポートする

Fragment 同士の遷移時アニメーションで Predictive back を有効にする時の実装メモです。
これを書いている時点では、alpha 版のライブラリや Experimental な機能を使用しているため、将来的に変更される可能性があります。

## 実装

### 依存関係

ライブラリの依存は以下のバージョン以降である必要があります。

– [Fragment](`https://developer.android.com/jetpack/androidx/releases/fragment`) 1.7.0 以降 or [Transition](https://developer.android.com/jetpack/androidx/releases/transition) 1.5.0 以降
– compileSdk 34
– [material-components](`https://github.com/material-components/material-components-android`) の Motion を使いたいならば 1.12.0 以降

元記事を表示

OTHERカテゴリの最新記事