Android関連のことを調べてみた2020年06月03日

Android関連のことを調べてみた2020年06月03日

Github Actionsを用いてFirebase Test Lab上で実機テストをする方法

# 概要
本記事ではGithub Actionsを使用して、Firebase Test Labで実機テストを行う方法を紹介します。
具体的には、プルリクエストをトリガーにGithub Actionsのworkflowが起動し、Firebase Test Lab上でRoboテストを、自動で走らせる方法を紹介します。

## きっかけ
これを試したきっかけは、仕事先でライブラリのアップデートをした際に、クラッシュ等がないかの確認のため、実機をポチポチするという作業がとても面倒に感じられ、Firebase Test Labで自動化できるのではないかと考えたことです。
さらにその調査がプルリクをトリガーに走ってくれたら素敵だと思いGithub Actionsを用いました。

# はじめに
Androidの実機を用いたテストはとても骨が折れるといわれています。
その理由の一つとして、端末の多さがあげられます。(参考: [Android端末一覧(Wikipedia)](https://ja.wikipedia.org/wiki/Android%E7%AB%AF%E6%9C%AB%E4%B8%80%

元記事を表示

Recipe: LiveData.observe with NonNull

### Problem

“`kotlin
viewModel.order.observe(viewLifecycleOwner, Observe {
it?.let { applyCurrentOrder(it) }
})
“`
toooooo many redundant code for just observe NonNull object with `LiveData`.

# Ingredients
1. `lifecycle-livedata-ktx` version 2.1.0 or higher
2. Kotlin

# Metod
#### First.
Add a dependency `lifecycle-livedata-ktx` in `app/build.gradle`.

“`gradle
dependencies {
def lifecycle_version = “2.1.0” // or higher

implementation “androidx.l

元記事を表示

【Amazon Alexa】ウチのスマートホーム環境を晒す。【全力で横着しよう!】

#全力で横着しよう!

– 忙しい時ほどリモコンが見つからない
– 寝ているときに照明を消したい
– 真夏、真冬に家に入った瞬間が不快
– ジム帰りにお風呂が沸いていて欲しい
– 朝急いでいて自動掃除機動かし忘れた
– smart home化に興味はあるが、難しそう
– ~~灯りがついていない家がさみしい~~

そんなことを考えたことがある人にオススメする「スマートホーム化」の記事です

知り合いから「音声で家電操作ってどうやってるの?」と聞かれることがあるのでご紹介。

#環境の紹介

・androidのスマホ(iOSで対応のアプリがあるか未確認です)
・tp-linkのwi-fi無線LANルーター
・amazon prime会員である
・[Echo Dot](https://www.amazon.co.jp/dp/B07PFFMQ64/ref=fs_ods_fs_aucc_cru)(べつにdotでなくともEchoでもEcho plusでもOK)
・[TECKIN スマートプラグ](https://www.amazon.co.jp/%E3%82%B9%E3%83%9E%E3%83%

元記事を表示

Spek FrameworkをアップデートしたらTestができなくなった

Spek Frameworkをアップデートしたらエラーが出て、困ったので、その対処を残します。

# エラー内容(Spek Framework 2.0.11-IJ2019.2)

バージョンを上げたら以下のようなエラーがでた(以前のバーションだと出なかった)

“`
io/mockk/proxy/MockKAgentFactory
java.lang.NoClassDefFoundError: io/mockk/proxy/MockKAgentFactory

java.lang.NoClassDefFoundError: Could not initialize class io.mockk.impl.JvmMockKGateway

“`

# 対処
根本的な問題の解決にはなっていないが、一時的な対処として以前のバージョンに戻してみた。

## Step1
事前に、Android StudioからSpek FrameworkをUninstallしてください。
まず、[Spek Framework](https://plugins.jetbrains.com/plu

元記事を表示

電子機器類がオンライン授業に対応しているか否か分類出来るかメモ

最近オンライン授業に使われているサービスを、少し書き並べてみます。

+ HTML5ブラウザを前提としたWebサービス
+ WebブラウザベースのLMS (moodleとか)
+ Web会議システム (zoom, WebExとか)
+ G Suite, MS Office365 のWebブラウザベースのもの
+ G Suite for Education Apps
+ Google Classroom
+ Hangouts Meet
+ Youtube ?
+ Microsoft Office365 Apps
+ Word, Excel, Powerpoint
+ Teams ほか
+ (サービスに紐づいた様々な)アプリ
+ zoom
+ Cisco WebEx
+ ほか

で、ご家庭でお持ちのハードウェアは何種類かに分かれ、このサービスが必ずしも満足に動作するとは限らないわけです。ちょっと分類してみます。

| PC系 | PC(Windows) | PC(macOS) | PC(Chr

元記事を表示

Androidで確実にアプリ評価をあげる方法

#これ実行したらどこかの誰かに怒られそうなので、コード、スクショ等一切のせません。

Androidの場合評価ダイアログというものが存在しないのはみなさんご存知だと思います。
IOSだと星を選択して評価を送信するダイアログがあります。

もし、作成したい場合自作するしかないのですが、IOSみたく星を選択することは不可能でPlayStoreに飛ばすしか手段がありません。その代わり項目等も自作するしかありません。

#その代わり項目等も自作するしかありません。

はい。お気づきの方はその通り。
星5つの場合だけ評価させる方法があります。
それはダイアログのボタンを3つ用意し、

・星5の場合はレビューお願いします。
・問題がある場合はお問い合わせへ
・あとで見る

のようにしてしまえば良いのです。
問題がある場合にはお問い合わせにいくし、星5ならレビューを書いてくれます。

ただこれを行い審査が通るかどうかは不明です。
評価の不正コントロールと取られても無理ない内容だと思うのであまりおすすめはしないです。

やるというなら自己責任で

元記事を表示

Androidの実機テストで、AdMobの広告が表示されない

# 事象

AdMobを利用していて、Googleの用意するテスト用の広告ユニットIDでビルドすると表示される。
なのに本番用では表示されない…

~~~
I/Ads: Ad failed to load : 3
(中略)
I/Ads: Use RequestConfiguration.Builder().setTestDeviceIds(Arrays.asList(“XXXXXXXXX”) to get test ads on this device.
~~~

といったエラーがでる…

# 解決方法
エラーメッセージにある通りですが、

~~~
RequestConfiguration.Builder().setTestDeviceIds
~~~

をアプリコード中に記述します。
というか、AdMobのドキュメントにも書いてあります……
https://developers.google.com/admob/android/test-ads?hl=ja#add_your_test_device

どこにこのコードを書くべきか?というところですが、広告表示前に一度呼び出されれば良いよ

元記事を表示

Android の Gradle の感覚を掴むためのざっくりとした説明

## 前略: Gradleは奥が深くできることが多いがなるべくシンプルに説明したい

GradleはAndroidアプリ開発には必須なスキルですが、環境設定系の内容なので役割として触れる人が限られてしまうことが多いのではないかと思います。
そんなGradleに対して、なんとなくストレスを減らし、なんとなく感覚を掴んでもらえれば思ってます。
なるべく短く簡潔を心がけますm(_ _)m

## Gradle is

– オープンソースのビルドシステムです。
例えばJavaプロジェクトではjarファイルを、JavaのWebアプリならwarファイルを作ってくれたり、汎用性の高さからさまざまなプラットフォームで使われています。
ビルドはすべてプラグインで行うようになっていて、JavaをビルドしてJarファイルを作りたいなら build.gradle ファイルに以下を定義して gradle を実行します。
“`groovy
apply plugin: ‘java’
“`
– ローカル上やネットワークリポジトリ上にあるライブラリとの依存関係の解決ができます。
– 中身はGroovyで書かれていま

元記事を表示

Android端末とPCを接続し、PCのchrome DevToolsを利用する方法

## おおまかな手順
1. Androidの開発向けオプションを有効にする
2. USBでPCに接続する
3. PC側のChromeで`chrome://inspect`に接続する

### 操作した環境
– macOS 10.14.6
– Android 9

## 詳細

### 1. Androidの開発向けオプションを有効にする
1. `設定`から`端末情報`の画面に進む
2. 下部にある`ビルド番号`を7回タップすると開発向けオプションが有効になる
3. `設定`から`システム`の画面にいき、`詳細設定`を開く
4. `開発向けオプション`が表示されているのでタップ
5. 少し下に画面スクロールするとある`USBデバッグ`をONにする → `ここ忘れがち`

### 2. USBでPCに接続する
1. USBでPCに接続する
2. Android側で「USBデバッグを許可しますか?」と聞かれるのでOKで許可する
3. Android側のChromeを立ち上げて適当なwebページを表示する

### 3. PC側のChromeで`chrome://inspect`に接続する
1

元記事を表示

FlutterアプリをCodemagicでCDしてみた(App Store Connect)

Google Playストア版の続きになります。

FlutterアプリをCodemagicでCDしてみた(Google Playストア)
https://qiita.com/kasa_le/items/17720a02ea0a4de2b66e

Codemagicへは、すでにtagトリガーなどで動くワークフローがあるものとします。
([こちらの記事](https://qiita.com/kasa_le/items/d23075d817f42e869778#codemagic%E3%81%AB%E5%85%A5%E3%82%8C%E3%81%A6%E3%81%BF%E3%81%9F)などを参照して下さい。)
また、App Store Connectにて、アプリを登録済で、かつTestFlightへ手動でアプリ公開をしたことがあることが前提です。
([こちらの記事](https://qiita.com/kasa_le/items/fed9f25b92091bd162ce)などを参照して下さい。)

# 手順

基本的には以下のページの通りです。
https://docs.codemag

元記事を表示

Android Fragmentの中にタブ付きスワイプビューを作る(kotlin)

#はじめに
完成イメージはこんな感じ

「`BottomNavigationView`のボタンから遷移した先の、fragmentのページの中で、さらにfragmentで

元記事を表示

GitHub ActionsでAndroidアプリのCIを構築する方法

## はじめに

GitHub Actionsを使い、Androidアプリのビルドと単体テスト、静的解析を行うCIを構築します。

## 本記事で書かないこと

– GitHub Actionsの概要や基本的な操作方法
[私が以前書いた記事](https://qiita.com/uhooi/items/29664ecf0254eb637951) が参考になると思います

## 設定ファイルの紹介

設定ファイルの内容を上から順に紹介します。

### name

ワークフローの名前を設定します。

私は単純に「CI」としています。

“`yaml:ci.yml
name: CI
“`

### on

ワークフローを実行するトリガーを設定します。

私はGit-flowモデルで開発しており、以下のように設定しています。

“`yaml:ci.yml
on:
push:
branches:
– master
– develop
paths-ignore:
– docs/**
– README.md

元記事を表示

Activityへ値を渡し戻り値も得る

#はじめに
空のActivityに値を渡すことが出来るまでを書いていきます。
ActivityへはGson形式で受渡を行い。
さらにメインのアクティビティとサブのアクティビティにはFragmentを使って同じ画面を表示します。

#準備
##strings.xmlを編集
strings.xmlを下記の様に編集します。

“`strings.xml


QiitaActivityFragmentSample
編集
String型
Int型
Double型

“`

##Gsonを扱えるようにする
左のプロジェクトの

元記事を表示

Android関連 利用頻度高い製品のバージョン (2020-06-01)

# 2020-06-01 現在 Android関連 利用頻度高い製品のバージョン

個人的に特定時期のバージョン情報がまとまっていると嬉しいのでまとめたものです。

## Android Studio

4.0.0 (2020-05-28)

Download Android Studio and SDK tools  |  Android Developers
https://developer.android.com/studio

Android Studio release notes  |  Android Developers
https://developer.android.com/studio/releases

## Gradle

6.4.1 (2020-05-15)

Gradle Build Tool
https://gradle.org/

Gradle | Releases
https://gradle.org/releases/

## Android Gradle plugin

4.0.0 (April 2020)

Android Gradle

元記事を表示

Android Studioのオススメ初期セットアップ(Mac)

## はじめに

Android Studioのオススメ初期セットアップを紹介します:level_slider:

セットアップ完了前後でこのように変わります。

__before__
スクリーンショット 2020-06-01 10.02.46.png

__after__
スクリーンショット 2020-06-01 12.14.53.png

## 環境

– OS:macOS Catalina 10.15.3
– Android Stud

元記事を表示

画面遷移で別のアクティビティを開始するやり方 – Android

#今回学ぶこと
・画面遷移の実装方法

#目指す成果物
このようにボタンをタップしたら,別のActivityに画面遷移する実装をしてみたいと思います.

![gif_画面遷移_qiita.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/249786/629ea04e-0620-6051-a4ff-ed3da817b942.gif)

#ディレクトリ構成

ポイントは「MainActivity.kt」のようなActivityを2つ作ることと、レイアウトXMLファイルを2つ作ることです.

スクリーンショット 2020-06-01 12.05.09.png

#ステップ

実装方法は2パターンあります
ポイントは画面遷移での必須の,「

元記事を表示

こんなソースコードはイヤだ-無名関数のパワー

プログラムのソースコードのより良い書き方をまとめていこうと思います。

# 無名関数のパワー

“`sample.kt
var decodeUrl = “”
try {
decodeUrl = URLDecoder.decode(this.url, “UTF-8”)
} catch (e: Exception) {
decodeUrl = this.url
}
print(decodeUrl)
“`

[どのようにリファクタリングできるのか](https://www.sentohsharyoga.com/ja/bad_source_code/entry/anonymous_function_is_useful)

元記事を表示

Spek(Android)入門

# はじめに
AndroidのUnitTestで[Spek](https://www.spekframework.org/)が流行しているので(今更ですが)、導入からはじめてみました。

この記事では、公式ドキュメントを元にAndroidプロジェクトのセットアップから
UnitTestの実行までを記載します。

そもそも、Spekとは?何が便利か?についてはこのあたりの記事やDroidKaigiでもよく紹介されているので、
そちらを閲覧してみてください。
https://qiita.com/k_keisuke/items/815ced486e8cdff8670d
https://qiita.com/sadashi/items/a5b93c9fc06e084456d2

# 導入

1.JUnit5を実行するため、サードパーティのライブラリを導入。

プロジェクト自体はAndroidStudio標準のFragment + ViewModel で作成しました。

https://github.com/mannodermaus/android-junit5 のページに記載されている

元記事を表示

M5StickCのボタン押下でスマホから現在地をしゃべらせる(1/2)

以前の投稿 [GoogleMapを使ってサイクリングに出かけよう](https://qiita.com/poruruba/items/9bced2e9b23c6d05cc9f) で、GoogleMapに音声ナビゲーションしてもらいました。

今回は、GoogleMapに頼らずに、スマホのGPSだけでナビゲートしてもらいます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/261826/67db435e-7042-b049-efc4-b42a3e201fa3.png)

ですが、自転車運転中は、スマホの画面を見るのは危険ですので、やっぱり音声でナビゲートして欲しいところです。
例えば、「目的地まで100メートル、北西方向です。」と言ってくれれば、助かります。方向はどうやって認識するかというと、そこはアナログに方位磁針に助けを借りて、自転車に取り付けました。自転車ベルと方位磁針がセットのやつが700円弱です。

ずっと、音声でだらだらと音声ナビしてもらうのもよいのですが、できれば、教えて

元記事を表示

UnityからAndroid端末にアプリをインストールするときにでたエラーについて

##エラー
>
adb: failed to install /Users/UserName/UnityProject/TestUnityProject/ProjectName/Builds/Apk/AppName.apk: Failure [INSTALL_FAILED_OLDER_SDK: Failed parse during installPackageLI: /data/app/vmdl1509473597.tmp/base.apk (at Binary XML file line #8): Requires newer sdk version #28 (current version is #27)]
“`

*日本語訳*
>
adb:/Users/UserName/UnityProject/TestUnityProject/ProjectName/Builds/Apk/AppName.apk:のインストールに失敗しました:[INSTALL_FAILED_OLDER_SDK:installPackageLIの解析に失敗しました:/data/app/vmdl15094735

元記事を表示

OTHERカテゴリの最新記事