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

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

Quasar Framework と android の実機開発について

## Quasar Framework でできること
quasar は開発ツールなのでデバックに関する手際のよい手法を編み出しています。
“WebView を使うリモートデバッグ” でして、実機からWifi経由で開発環境につなげる操作を次のコマンドで呼び出せます。

“`
quasar dev -m cordova -T android
“`
あくまで開発用なので注意してください。
開発端末の電源を落としたり、Wifiの接続を切れば画面そのものの表示が途切れます。

実機で動かせるパッケージは別の方法で用意します。

## 実機で動かせるパッケージを用意する
ほぼ quasar 公式の解説通りです。

* android studio をDLする。
* jdk 8 をDLする。
* android 開発ツールのパスを環境変数に追加してコマンドから呼べるようにする。
(android tools と android platform-tools)
* 次にデバイスを用意する。
* android studio から android APIをDLする。
(デバイスのandroi

元記事を表示

【Android】WebView参照時にTypeErrorで読み込みができない場合の対処法

# はじめに
Androidで実装する機能の中でほぼ必ずと言っていいほど使用する機能のひとつがWebViewですよね。
そんなWebViewですが、NextJSで実装されているようなWebページでたとえばアンダーバー付きのディレクトリを参照する必要がある場合など、そのままURLとして読み込むと以下エラーとなってしまいます。
“`
“TypeError: Cannot read properties of null (reading ‘getItem’)”, source: https://XXXX
“`

今回はこちらのエラーの解消の仕方を備忘録的に残しておこうと思います。

# エラーの解消方法
解消方法は非常に簡単です。
WebViewはWebSettingsというパラメータを保持していますが、こちらに対し以下を設定してあげる形で対応可能です。

“`main.kt
webView.settings.domStorageEnabled = true
“`

https://developer.android.com/reference/android/webkit/Web

元記事を表示

Unity でスクリーンセーバーを作る方法を模索してみた

はじまり
========

Unity でHLSL書いてシェイダーアートを作ってみたいなーと漠然と思いつつ、どうせならスクリーンセーバーとして動かせないものかと漠然と思いながらあれこれ調べてみました。
するとどうも Windows と Android でビルド方法が見えそうだったので試してみることにしました。

目的
====

Unity で以下のプラットフォーム向けにスクリーンセーバーをビルドする設定や手順を調べる。
(シェイダーアートを書くのはここではやりません。)

– Windows x86-64
– Android

環境
====

– Windows 11 22H2
– Android 14
– Unity 2022.3.14f1

下調べ…スクリーンセーバーの仕組みを調べる
==========================================

そもそもUnity以外のスクリーンセーバーがどのように作られてるのか調べないと手順が見えてこないのでOSごとに調べます。

Windows スクリーンセーバー
————————

元記事を表示

【Android】WebView の input type file で カメラを起動する

## Android WebViewでは、なぜかカメラが起動しない!!
webViewで、`` でのカメラ起動は、IOSは何もしなくともカメラが起動するのですが、Androidだと、カメラがぜーんぜん起動しない・・・😢

かなり手こずったので、私がカメラ起動に成功した方法をまとめてみました。

## ゼロから作っていく
Web側
“`html

“`

ここからアプリ
空っぽアクティビティです
MainActivity.kt
“`kotlin
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
“`
レイアウトは、webViewが使えるようにしてお

元記事を表示

Pixel 6a を USB接続の Webカメラ(ドライバ不要の UVCカメラ)として利用できる標準機能のお試し【完走賞ゲット-16】

:::note info
※ [Qiita の完走賞をゲットするための条件は「単一/複数のカレンダーに投稿した記事が合計25」です](https://twitter.com/Qiita/status/1593441648796524545)
:::

この記事は、「[完走賞ゲットのため小ネタ 25記事を投稿しようとチャレンジ v2 Advent Calendar 2023](https://qiita.com/advent-calendar/2023/youtoy)」の 16日目の記事です。

## 今回の内容
今回の内容は、ちょっと前に以下のポストをしていたりした「Pixel 6以降の端末が、USB接続の Webカメラとして利用できる機能」に関するものです。
この機能は標準機能で使えて、そしてドライバ不要の UVCカメラ(USB Video Class のカメラ)として動作するというステキな仕様です。

### Pixel 6a で試す
それでは、自分が所有している Pixe

元記事を表示

Sceneview Android – 3D/ARを体験する –

Android Advent Calendar 15日目を担当させていただきます。@hiraokです。

3Dモデルを使って何かしたいなということで面白そうなOSSがあったので試してみました。

https://github.com/SceneView/sceneview-android

JetpackCompose で 3DとARをロードできるものになります。

導入方法は至って簡単でREADMEに記載の通りセットアップすると使えます。
※3Dを使う場合とARを使用する場合でDependencyが異なるので注意してください。

sampleコードもプロジェクトに用意されております。

https://github.com/SceneView/sceneview-android/tree/main/samples

3Dを読み込むサンプル
・model-viewer-compose
ARを読み込むサンプル
・ar-model-viewer-compose

サンプルを動かすと以下のように動きます。

10時間でアプリを開発~公開したので振り返る

## 宣伝させてください
**seppan**という割り勘を管理するアプリをandroid用にリリースしました。

私は「後で割り勘でもいい?」というシチュエーションが結構あるのですが、いちいちレシートを確認するのが面倒くさくなったので作りました。

会計する時に買った人、物、金額を入力して保存しておけば、後でどっちがどっちに何円払うか簡単にわかるというアプリです。

清算した履歴も見れるので、うちでは「〇月分の水道代まで割り勘してもらってる」というような使い方もしています。

とてもシンプルですが、意外と便利なのでぜひインストールお願いします。

https://play.google.com/store/apps/details?id=com.tatta_chotdog.seppan

## きっかけ
本業でReactエンジニアをしているので、学習も兼ねて何か個人開発をしようと思い調べたところReact Nativeというフレームワークに出会いました。

## React Nativeとexpo
・Reactのお作法とjs/tsの知識があればスマホアプリ開発ができるというフレームワ

元記事を表示

[compose multiplatform 中級チュートリアル 5]compose multiplatformのアーキテクチャを整える

# 前回
[前回](https://qiita.com/shunk0616/private/a61be6e397534ca393e8)はバックエンドの検討でした。

# はじめに
前回の章でsupabaseを使うことは決まったので、環境を作っていきます。

# supabase側の準備
## プロジェクト作成
1. supabaseのダッシュボードに行きます。(やってなかったら会員登録してください。)
2. NewProjectを選択
3. プロジェクトネームとDatabasePasswordを適当な値で入力
4. RegionはNortheast Asiaを選択
5. Create new Projectを押す

## テストデータを追加
1. Databaseをクリック
![](https://storage.googleapis.com/zenn-user-upload/3c7ca4752d10-20231114.png)
2. Create a new tableをクリック
![](https://storage.googleapis.com/zenn-user-upload/

元記事を表示

Android14の変更点を簡単にまとめる

## はじめに
Android14の変更点の主な点をざっくりまとめていきたいと思います。
## 主な変更点
### ・正確なアラームのスケジュールがデフォルトで拒否される
・ここ最近バージョンが上がるごとに厳しくなっている権限関係の変更のようです。
 ・SCHEDULE_EXACT_ALARM 権限がデフォルトで付与されなくなる。
 ダイアログを出して許可を取らないといけなったっぽい。
影響を受けるのは、
 ・Android 13(API レベル 33)以降をターゲットとしている。
 ・マニフェストで SCHEDULE_EXACT_ALARM 権限を宣言している。
アプリケーションになります。

### ・アプリは自身のバックグラウンドプロセスのみを強制終了できる
・killBackgroundProcesses() を呼び出すことで自身のバックグラウンドプロセスを強制終了できるようになります。ただし、範囲はあくまで自身のみで他のアプリのパッケージ名を渡しても意味はありません。
### ・インストール可能な最小APIレベルが23に
・これはそのままです。Android14の端末では、t

元記事を表示

【Flutter】flutter_mapで出来ることって?flutter_mapざっくり解説。

[DeNA 24新卒 Advent Calendar 2023 ](https://qiita.com/advent-calendar/2023/dena-24-newgrad)の 15日目の記事です。

この記事では、Flutterのマップパッケージである、[flutter_map](https://pub.dev/packages/flutter_map)について、さらっと紹介します。

https://pub.dev/packages/flutter_map

flutter_mapは高頻度でアップデートが行われ、使い方などもバージョンによって結構変わってしまいます。
この記事ではflutter_mapのバージョンは6.1.0ですので、「あれ?コード通り実装したのに、そんな関数ないって言われる!」みたいにならないよう、ご注意ください!

[flutter_map Docs](https://docs.fleaflet.dev/)

https://docs.fleaflet.dev/

## 目次
– [環境](#環境)
– [事前準備](#事前準備)
– [

元記事を表示

[compose multiplatform 中級チュートリアル4]compose multiplatformのバックエンドを検証してみる

# 前回
[前回](https://qiita.com/shunk0616/private/8fe95658ab2f64aea302)では見た目を作ってみました。

# はじめに
前回までの章で作ったシンプルなTodoアプリのデータをDBに保存して安全に保ちたいのと、データ分析処理を行いたいのでバックエンドに接続したいです。

ただ、無限に選択肢があるので、検討した全てを書きます。

# 調査
## Firebaseは使えるか?
色々あるけど、Firestoreで実装できたら楽ですね。
ネイティブから直接DBにアクセスできるし、トリガーでfunctionsを呼んでデータ分析を行ったり便利ですからね。

### 良いライブラリはある?
現状のcompose multiplatformの状況から確認するとKotlinでFirebaseの接続をサポートするライブラリはあります。
[これ](https://github.com/GitLiveApp/firebase-kotlin-sdk?source=post_page—–0f3b8d3c84cb——————-

元記事を表示

(覚書)Android版Unity製ゲームアプリからのSpineデータ抽出

## 前提

1. Unity製のひねってないゲームアプリを想定
1. apk自体ではなく起動後にリソースを取得するタイプ
1. リソースが特に暗号化されていない

## 1. リソース取得

1. Android(エミュレータでも可)で対象のアプリをインストール&起動
1. 数GBのリソースダウンロードがだいたいあるので待つ
1. アプリを終了
1. ファイルマネージャやUSB接続経由などで保存先フォルダを確認
1. 以下のような感じ
1. Android/data/com.example.sampleapp/files/UnityCache/Shared
1. Android/data/com.example.sampleapp/files/AssetBundls
1. 該当フォルダの中身を作業用フォルダにコピー
1. 次へ

## 2. 抽出

1. [AssetStudio](https://github.com/Perfare/AssetStudio/releases)をインストール
1. インストールしたAssetStudioを開く
1. A

元記事を表示

JVMとは

# はじめに
毎週1本様々な技術に関する記事を投稿しています。
もし興味のある方は下のリンクから他の記事も見ていただければ幸いです。
[@7_inai_](https://qiita.com/7_inai_)

# JVMとは
`JVM(Java Virtual Machine)とは、Javaプログラムを実行するための仮想環境`です。コンパイラが生成したバイトコードを実行し、プラットフォーム間でのポータビリティを実現します。

# なぜJVMを使用するのか?
### ■高いポータビリティ(移植性)
Javaプログラムが一度バイトコードにコンパイルされると、そのバイトコードはどんな環境でもJVM上で実行可能です。つまり、__同じバイトコードはWindows、Mac、Linuxなどの異なるオペレーティングシステム上で動作__ し、それぞれの環境で同じような結果を返すことができます。このような特性により、__プログラムの再コンパイルなしに異なるプラットフォームで動作させることができる__ ため、ポータビリティが高いと言えます。

### ■メモリ管理とセキュリティ
JVMはメモリ管理とガベ

元記事を表示

Android Studio Hedgehogの便利な新機能

[2023年11月30日にAndroid Studio Hedgehogの安定版リリースがアナウンス](https://android-developers.googleblog.com/2023/11/android-studio-hedgehog-is-stable.html)されました。
私はハリネズミ(Hedgehog)が大好きなので、楽しみに待っていました!

毎年Android Studioはメジャーアップデートがありますが、みなさんは新機能を細かくチェックしていますでしょうか?
全部チェックするのは大変ですよね。そして実際に使う機能は一部だけだったり。

そこで、この記事では、実務で便利だなと個人的に思ったAndroid Studio Hedgehogの新機能だけをピックアップしてご紹介します!

# まずはダウンロード&インストール
公式ページからダウンロードしてください。
なんでこんなこと書くんだって思ったかもしれませんが1点だけお伝えしたいことがあったからです。

![スクリーンショット 2023-12-13 21.11.04.png](https://qiita-

元記事を表示

Androidアプリのテストに(少し)役立つ、いくつかのこと

遊軍的な立場で開発することが多いAndroid開発者です。
最新の技術よりは枯れた内容を相手にすることが多い中、培ってきた技術を共有します。

:::note warn
# 注意(という言い訳)
このページは *試験項目書に類するものがあること* を前提として、
試験の前の手詰まりや後戻りを減らし、問題や気づきを得ることを目的としています。
……つまり曖昧な内容です。

サポートするOSの最小/最新で確認するとか、しきい値を中心に動かすとか、通信を切って動かすとか、入力項目があれば大量のコピペで埋めるとか、文字列にエスケープシーケンスを混ぜるとか、ボタンがあったら同時押しや連打するとか、解像度の低い端末でも確認するとか、クラッキング的な攻撃手法の検証とか、
具体的な項目を挙げて試験技術を向上させる方法は、このページにはありません。

それらの情報が必要な人は、
他のページを参照したり、日本スマートフォンセキュリティ協会さまが展開してくれている資料を読んだりしてください。
:::

『Androidアプリのセキュア設計・セキュアコーディングガイド』【2022年8月29日版】を公開しました

# 1. 開

元記事を表示

【Android】buildscriptはどこに?【Kotlin】

# buildscriptがないぞ?

教本を使ってAndroidStudioを学習中に、AndroidStudioのファイル上に指定された記述がなく困った。
調べ回って解決に至ったので、備忘録として残しておきます。

## どこで詰まったのか
とあるチャプターで、
“`
「build.gradle(Project:hogehoge)」を開き、dependenciesに一行追加する
“`

という工程がありました。
しかし、build.gradleを開いて探しても、
`plugins`があるのみで、`buildscript`及び`dependencies`がありません。

**詰んだ…**

## 解決

しかし、調べてみると、昨今のAndroidStudioでは
“`kotrin
plugins {
id ‘com.android.application’ version ‘7.4.2’ apply false
id ‘com.android.library’ version ‘7.4.2’ apply false
id ‘org.je

元記事を表示

Kotlinコンパイルで出たe: Could not load module をKotlinコンパイラをデバッグして解決するメモ

# 原因
基本的には存在しないクラスを参照していたりして起きています。
なので、Android Studioでそのクラスを開ければ赤くエラーが出ているので解決します。

何もソースコードの位置が出ないので、だいぶ解決が難しいです。
多すぎたりしてクラスを特定するのが難しい場合もあります。

# デバッグ方法

## 事前準備

Kotlinが別のプロセスで動いているとGradleの仕組みでデバッグできないのでプロセス内で動かす必要があります。

> -Dkotlin.compiler.execution.strategy=”in-process”

でin processでビルドできるはずなんですが、できない(デーモンでの起動になってしまう)ので、以下をgradle.propertiesに書きます。

> kotlin.compiler.execution.strategy=in-process

## デバッグ待ち状態にする

以下は:app:kaptGenerateStubsDebugKotlinでエラーが出ている場合です。:app:compileKotlinとかの場合もあります

元記事を表示

Kotlin たまに使うことまとめメモ

思い出したら随時追記していきます。

## ◯非同期でAPIを複数呼びたいとき

“`kotlin

lifecycleScope.launch(Dispatchers.IO) {
val getApiResult = getApi(requestBody)
val getApiSecondResult = getApiSecond(requestBody)

withContext(Dispatchers.Main) {
//APIのレスポンスを使った処理
binding.view = getApiResult.return_data

}
}

//1つ目のapiを呼ぶ関数
private fun getApi(requestBody: GetApiRequest): GetApiResponse? {
val http = RequestApi().getApiRequestObjectPlane().create(GetApi::class.java)
val

元記事を表示

build.gradleの依存に立ち向かう

# はじめに
この記事は [Globee Advent Calendar](https://qiita.com/advent-calendar/2023/globee) の13日目の記事です。
こんにちはGlobeeでAndroidエンジニアをしています屋代です。
皆さんは、ライブラリを有効活用して開発していますでしょうか?

運用期間が長くなっていくと、使用していたライブラリのバージョンアップを行うことがあるかと思います。
何事もなくすっとアップデートが完了すれば良いのですが、ライブラリ内で依存しているライブラリと、別ライブラリ内で依存しているライブラリが競合してしまう場合があります。
そうなると依存の解決地獄、場合によってはアップデートを断念するなんてことも。

今回は、そんな状況に陥っていたAndroid版abceedが健全性を取り戻せた方法をご紹介します。

# 最初に結論
– 大きいライブラリを使う場合は、依存を閉じ込めよう
– 場合によっては、そのライブラリをラップするandroidライブラリを作るのも手
– テストを書いてロジックの恒常性を担保しよう

# And

元記事を表示

Jetpack ComposeでXMLレイアウトからの卒業(超初級)

## はじめに
PHONE APPLI Advent Calender13日目です!
Jetpack ComposeやらKotlin CoroutineやらDagger Hiltやら色々勉強つまみ食いしすぎて、逆に分けわからなくなっているしがないAndroidエンジニアです。
今回は最近(?)話題のコードベースでレイアウトを構築できるJetpack Composeについて、自分なりに理解したことを初歩の初歩部分ですが記事にしていきたいと思います。

## Jetpack Composeってそもそも何?
Jetpack Compose は、ネイティブ UI をビルドする際に推奨される Android の最新ツールキットです。Android での UI 開発を簡素化し、加速します。少ないコード、パワフルなツール、直感的な Kotlin API を使用してアプリをすぐに動かすことができます。
(※Android Developersサイトから抜粋)

うーん、なんかよく分からん。
百聞は一見にしかずということで、早速使ってみましょう!

## まずはJetpack Composeプロジェクト

元記事を表示

OTHERカテゴリの最新記事