Android関連のことを調べてみた2022年01月07日

Android関連のことを調べてみた2022年01月07日

Cordovaアプリケーション開発に、NoSQLドキュメント指向組み込みデータベースCouchbase Liteを使うには?(Androidネイティブプラグイン構築手順)

## はじめに

先に、下記の記事を(iOSネイティブプラグイン構築について)発表しました。

https://qiita.com/yoshiyuki_kono/items/9122beb6b86847a82788

CordovaとCouchbase Liteに関する基本については、そちらをご覧ください。

## チュートリアル紹介

Couchbase公式チュートリアルとして下記があります。

https://docs.couchbase.com/tutorials/hotel-lister/android.html

本稿では、CordovaアプリケーションでCouchbase Liteを使用する方法を解説します。

このチュートリアルでは、AndroidでCouchbase Lite2.xとインターフェイスするCordovaプラグインを構築する方法について説明しています。このチュートリアルでは、フロントエンドWebアプリレイヤーの構築にIonicを使用しています。

チュートリアルでは、Couchbase Liteデータベースに保存されているホテルに関する情報を表示および検索す

元記事を表示

THETA PLUG-IN STOREへのプラグイン公開手順(公開手続き編)

## はじめに
リコーの @KA-2 です。

弊社では[RICOH THETA](https://theta360.com/ja/)という全周囲360度撮れるカメラを出しています。
RICOH THETA VRICOH THETA Z1は、OSにAndroidを採用しています。Androidアプリを作る感覚でTHETAをカスタマイズすることもでき、そのカスタマイズ機能を「プラグイン」と呼んでいます(詳細は本記事の末尾を参照)。

本記事は、[THETA PLUG-IN STORE](https://pluginstore.theta360.com/)に皆様の成果物を公開する手順の2回目となります。

– [THETA PLUG-IN STOREへのプラグイン公開手順(リリースビルド編)](https://qiita.com/KA-2/items/d8f4cb1fa4dd4d654164)
– THETA PLUG-IN STOREへのプラグイン公開手順(公開手続き編)※本記事です

前回の記事にて、公開するapkの作成手順を伝えることがで

元記事を表示

【Android Studio】High and Lowゲーム

#はじめに
翔泳社 作ればわかる! Androidプログラミング で学習したことのアウトプットです。
Android Studioを使用して簡単なアプリを作成します。

#High and Lowゲーム
コンピューターのカードに対してプレイヤーのカードが大きい(High)か小さい(Low)かを予想するゲーム。
予想が当たれば「あたり」がカウントされ、外れれば「はずれ」がカウントされる。
「あたり」が5回に達すればプレイヤーの勝ち、「はずれ」が5回に達すればコンピューターの勝ちとなる。

#学んだこと
・TextView, Button, ImageViewの扱い方。
・アプリのライフサイクル(onCreate, onResume)
・Kotlinの基本的な文法。

#プロジェクトの作成
Empty projectを選択。言語はKotlinを使用。
![NewProject.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2471428/98f6b772-5330-f98e-4ca9-4ffd630ce8

元記事を表示

Android アプリを個人開発でリリースした話

#はじめに
この度、Androidアプリを個人開発でリリースしました。
過程でやったこと・戸惑ったことを書いていきます。

#想定読者
個人開発でアプリをリリースしたことがなく、
これから個人開発でアプリをリリースしてみようと思う方

#この記事に書いていないこと
以下については記載していません。
・アプリの実装
・Google Play配信の具体的な方法
・各種ツールの使い方
公式を当たるのが最新かつ間違いないはずです。
手段を知らなければ公式を参照することもできないので
手段を知るきっかけにしていただければと思います。

#宣伝

個人開発を行ったアプリはメモ帳です。
Android 10からAndroid標準のバブルを利用したメモ帳です。
もしよかったらDLしてみてください。
[Unity + PlayFab を Android で利用する際の設定

# 発生する問題

Unity で PlayFab を Android 環境で実行する際に以下のようなエラーが発生しクラッシュした場合は対処が必要です。

“`
AndroidRuntime FATAL EXCEPTION: Thread-6
AndroidRuntime Process: , PID: 32155
AndroidRuntime java.lang.NoClassDefFoundError: Failed resolution of: Lokhttp3/OkHttpClient$Builder;
AndroidRuntime at com.microsoft.xplatcppsdk_internal.HttpRequest.(HttpRequest.java:24)
AndroidRuntime Caused by: java.lang.ClassNotFoundException: Didn’t find class “okhttp3.OkHttpClient$Builder” on path: DexPathLis

元記事を表示

Androidで背景タップ時にキーボードを閉じる

Androidの文字入力がある画面で表示されたソフトウェアキーボードは、デフォルトではユーザが閉じる操作をしない限り表示され続けます。
EditTextなどの対象のView以外をタップしたときにフォーカスを外してキーボードを非表示にしたい、という要件に対応します。
__注: composeは考慮していません__

# タップイベントをフックする

`Activity.dispatchTouchEvent(MotionEvent)`を使います。
筆者は執筆時にnavigationを利用していたので、目的のFragmentではなく親のActivityに実装しました

“`kotlin
override fun dispatchTouchEvent(ev: MotionEvent?): Boolean {
binding.navHostFragment.requestFocus()
return super.dispatchTouchEvent(ev)
}

“`

`requestFocus()`ではフォーカスを移動しています。フォーカス

元記事を表示

AndroidでPermissionをリクエストするとき

## AndroidでPermissionをリクエストするとき

ネットで探すと、未だにリクエストを開発者側でハンドリングする記事ばかり出てきます。

しかし[公式ドキュメント](https://developer.android.com/training/permissions/requesting?hl=ja)では、**RequestPermission**や**RequestMultiplePermissions**のコントラクトを使用した方がいいと書いてあります。

> 従来からある方法では、権限リクエストの一部として開発者自身がリクエスト コードを管理し、このリクエスト コードを権限コールバックのロジックに含めます。別の方法として、AndroidX ライブラリに含まれる RequestPermission コントラクトを使用して、システムに権限リクエスト コードの管理を許可することもできます。RequestPermission コントラクトを使用するとロジックが簡素化されるため、可能な場合は使用することをおすすめします。

使用例は以下の通り
Kotlin + Jetpack

元記事を表示

Androidアプリで使用するアプリ固有データまとめ

# 目的
– Android アプリで使用するアプリ固有データの種類・保存についてまとめる。

# Androidアプリデータの保存方法による分類

– Androidでアプリが保存するデータ(以下「アプリデータ」)の種類には以下がある。

(1) アプリ固有のファイル
アプリ独自のファイルで、他のアプリから共有しないファイル。アプリ独自フォーマットのファイル等。

(2) 共有ファイル
メディアやドキュメントなど、他のアプリと共有可能なファイル。一般的なフォーマットで他アプリから利用可能な画像・音声・動画ファイル等。

(3) 設定データ
アプリ固有の設定データ。他アプリからアクセスできない領域へキーと値のペアで保存する。

(4) データベース
構造化したデータを非公開のデータベースへ保存する。

– アクセス手段・必要な許可・アプリのアンインストール時に削除されるかどうかはそれぞれ異なる。
– 詳細は Android developers [データ ストレージとファイル ストレージの概要][link0] 参照。

# ア

元記事を表示

Android Layoutの種類

##レイアウト

– LinearLayout(線形レイアウト)
– すべての子ビューを垂直又は水平の一方向に揃えるビューグループ
– android:orientation属性によりレイアウトの方向を指定します。
– 縦方向に表示:android:orientation=”vartical”
– 横方向に表示:android:orientation=”horizontial”
– 垂直方向のリストは、幅に関係なく、一つの行に1つの子ビューしかない。
– 水平方向のリストは、1行分の高さしかない。

– RelativeLayout(相対レイアウト)
– 子ビューを相対位置に表示するビューグループ
– ConstraintLayout
– フラットなビュー改装を持つ大きくて複雑なレイアウトを作成可能
– RelativeLayoutよりも柔軟性がありAndroid StudioのLayoutEditorで使用しやすくなっている。
– MotionLayout
– アプリ内のモーションとウィ

元記事を表示

リフレクションでKotlinの要素を取得する【Javaリフレクション編】

Androidの単体テストにあたり、privateなクラスやメソッドにアクセスするために使用するリフレクションについてまとめました。

【注意点】
この記事では、筆者がリフレクションを一緒くたに認識していた背景から、KotlinでJavaリフレクションを使用しています。
しかし実際はKotlinにはKotlinリフレクションが存在するため、あえてKotlinでJavaリフレクションを使うのであれば、その理由を明確にできることが望ましいはずです。
次回は、Kotlinリフレクションをまとめます。

##リフレクションとは
リフレクション(reflection)とは、反射、内省、熟考という意味の英単語です。
JavaやKotlinでは、クラスやコンストラクタ、メソッドなどの情報の取得、必要に応じて書き替えるための仕組みを指します。
Java:[Trail: The Reflection API (The Java™ Tutorials)](https://docs.oracle.com/javase/tutorial/reflect/)

リフレクションを使うことで、通常はアクセスできな

元記事を表示

CollapsingToolbarLayoutとSwipeRefreshLayoutの併用

よくあるプロフィール画面のヘッダー画像をparallaxにしつつ、Pull-to-Refreshもできる画面を作ってみたいと思い、いざ実装してみたら一工夫必要だったので記事にしました。

# この記事で紹介すること
goal
この画面のような**prallaxなヘッダー画像**と**Pull-to-Refresh**が共存した画面の実装方法を紹介します。

# 結論
そのまま併用すると、スクロール仕切っていないのにPull-to-Refreshが発動してしまいます。
解決策として、AppBarLayout.OnOffsetChangedListenerにSwipeRefreshLayout.isEnabledを上書きする処理を登録します。

AppBarLayout.OnOffsetChangedListenerが受け取るve

元記事を表示

FlutetrでrequestPermissionのエラー

### FlutetrでrequestPermissionのエラー

Flutterで通知アプリ仕込んでます。

あと少しだったのですが、このエラーが出てAndroid版のビルドはできるのですが、アプリが起動しない。この時点でiOS版はビルド通っていた。

エラーは

“`
E/flutter ( 5307): [ERROR:flutter/lib/ui/ui_dart_state.cc(199)] Unhandled Exception: MissingPluginException(No implementation found for method Messaging#requestPermission on channel plugins.flutter.io/firebase_messaging)
E/flutter ( 5307): #0 convertPlatformException (package:firebase_messaging_platform_interface/src/method_channel/utils/exception.dart:1

元記事を表示

【Android&Firebase】Googleログイン実装のDeprecated箇所をリファクタリングしてみた

# はじめに

皆さん、ごきげんよう!れぶです!
2回目のQiitaへの投稿になります。新年早々どこにも外出せずに執筆していきます。

今回の記事は、Firebaseを用いてAndroidアプリへGoogleログイン機能を実装することに関した内容になります。具体的には、Firebaseの公式ドキュメントに掲載されているコードの中で、Deprecated箇所(startActivityForResultとonActivityResult)があるので、リファクタリングしていきます。Googleログイン機能のリファクタリング実装が書かれた記事はあまりないと感じたので、自身がJavaで書いたコードをもとに紹介します。

それでは、参りましょう!!

# この記事の対象者

* 今後Firebase Authenticationを用いて、AndroidアプリにGoogleログイン機能を実装したい方
* 既にGoogleログイン機能を実装済みだけど、Deprecated箇所のリファクタリングが知りたい方

# 開発環境

* Mac
* Android Studio(4.1.2)
* Fireba

元記事を表示

Couchbase Lite開発: Kotlin拡張機能

## はじめに

Couchbase Lite Android 3.0.0-beta02では、Kotlinアプリ開発における慣用的なプログラミング作法のサポートが導入されています。

これによって、Kotlin開発者は、一般的なKotlinアプリケーション開発に用いられる実装パターンを用いてアプリを構築できるようになりました。Couchbase Kotlin SDKは、Couchbase Lite for Androidとシームレスに統合されており、Java APIと同等の機能を備えています。

Couchbaseをモバイルアプリケーションで利用する意義については、以下の記事をご参考ください。

https://qiita.com/yoshiyuki_kono/items/3abd5e32801060a449d2

## Kotlin拡張機能

## 概要

Kotlin開発者は、Couchbase Liteを利用したアプリケーション構築のために、Java APIとの完全な互換性に加えて、Kotlin拡張機能を利用できます。

Kotlin拡張機能パッケージには以下のサポートが含まれ

元記事を表示

【Android】初心者向け シンプルなドラムロール式DatePickerサンプル

Android開発初心者の私はシンプルなドラムロール式のDatePickerを実装しようとした時に、意外と複数のサイトを参照しながら試行錯誤しました。
同じような初心者の方の参考になれば幸いです。

#ドラムロール式DatePickerのイメージ
![Screenshot_1641257836.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/546646/757ecb2d-7383-3a2a-5573-652db16b7f8b.png)

![2a1aee80cd619115f682e1a0b162a90d.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/546646/b057ae8f-7a9a-6128-4f5f-02cdeed9c911.gif)

#サンプルの仕様
・日付入力欄は直接日付を入力することもできる。
・入力欄が空白など日付として認識できない場合、初期値として今日がDatePickerに表示される。
・入力

元記事を表示

Kotlinの初期化を雑に書いてはダメ!

# はじめに

Kotlinを書かれる方に質問です!!
例えばBuilderパターンで生成されるインスタンスをクラス内で使い回したいとき、
反射的にこんな風に書いていませんか?

“`kotlin
class Sample {
companion object {
// 使い回したいインスタンス
private val a: A = A.Builder().build()
}
}

class A {
internal class Builder {
fun build(): A = A()
}
}
“`

`companion object` の中で初期化処理を書いておけば、
Sampleクラスで何個もインスタンスが作られようと `Sample.Companion.a` は使いまわされます。

“`kotlin
class Sample {
fun getA() = a

companion object {
private val a: A = A.Buil

元記事を表示

【Kotlin】スコープ関数まとめ

#はじめに
最近Androidアプリを作りたくてKotlinを学習してます。基礎です。
今回はスコープ関数をまとめていきたいと思います。

#スコープ関数
この関数は変数のスコープを変更する関数で、コードを簡略化、可読性の向上ができます。
使わなくても機能を実装することは可能です。
なくても困らないけどあれば便利ってやつですね。

#with関数
同じオブジェクトに繰り返し処理を行う場合に有効です。

次のようなPersonクラスを用意します。

“`Kotlin
class Person(val name: String) {
var age: Int = 0
fun message(): String {
Log.d(“message”, “私は $name です。 $age 歳です。”)
}
}
“`

with関数を使わない呼び出し側はこのようになります。

“`Kotlin
val person = Person(“REON”)
person.age = 21
person.message() // 私は REON です。 21

元記事を表示

【android】ActivityからActivityの画面遷移

こんにちは。
2021年の年末はAndroid Studioをいじくっていました。完全に素人からのスタートで、触って3日くらいです。
ただ、私は一応、javaについては足し算引き算できるくらいには書けますので、
つまづく所は主にAndroidならではの要素の部分でして、つまりは、画面の表示だったり画面遷移の話だったりするわけです。

#### 環境

android studio APIレベル32 (java)

# ActivityからActivityの画面遷移

そもそもActivityで画面遷移すべきかどうか、という話があるようです。~~調べていると情報が錯綜する!~~
おそらくはActivityは「シーン」で1つだけあれば良く「その中」での切り替えはFragmentを使うというのが、”たぶん”正しそうです。
ただ私がざっと調べた所「Fragmentはあくまで画面表示パーツであって画面そのものではない」理解に行きました。画面の一部を書き換えるイメージ。で、画面の大部分を置き換えればそれは実質画面の切り替えになる、とかそういう。(そして大画面のタブレットなら両方並べても良いじゃない

元記事を表示

1分で出来る最新で最小なADB環境の構築[Windows編]

# ※ わざわざAndroidStudio入れたくない人向けです

1. XDAから**15 seconds ADB Installer v1.4.3**を[ダウンロード](https://forum.xda-developers.com/t/official-tool-windows-adb-fastboot-and-drivers-15-seconds-adb-installer-v1-4-3.2588979/#post-48915118)する。
1. Googleより最新版の**Platform-Tools**を[ダウンロード](https://dl.google.com/android/repository/platform-tools-latest-windows.zip)をする。
1. **手順1**で落としたファイルを解凍後、管理者権限で実行してインストールする。
1. cmdで`adb version`を入力して確認する。
1. ↑が成功していればインストール完了。そのままだとかなり古いバージョンのツールを使うことになるので`C:\\adb\`以下に**手順2**を解凍

元記事を表示

AudioTrackでバックグラウンドでも音飛びせずに音楽をストリーミング再生する方法

# はじめに

昨年(2021)末、Androidで独自に波形生成した音楽を再生してバックグラウンド再生にも対応するアプリ(東方BGM on VGS)を作り直した際に、波形データの再生にAudioTrackを使ってみたのですが、似たようなアプリを開発する方のために参考情報として要点を記します。

「独自に波形生成した音楽を再生」するアプリを作る人は稀だと思います。というのも、私が東方VGSを最初に公開した2013年春先以来(そろそろだいたい丸9年間ぐらい?)、少なくとも私が知る範囲では類似アプリは存在しなかったので。

ですが、バックグラウンドで音楽をストリーミング再生するアプリを作っておられる方々にとっては若干有益な情報かもしれません。

> なお、アプリの公開が完了したらソースコードも全部OSSで公開しようと思っています。このアプリをコードベースにすれば、色々なVGS楽曲アプリの開発が低コストでできるので、あとは楽曲データ作成に掛かる作業コスト分をペイできる程度のシロモノであれば楽曲の版権を抑えている各社で自由にお小遣い稼ぎして頂ければ良いかな…という青写真を勝手に描いているの

元記事を表示

OTHERカテゴリの最新記事