Android関連のことを調べてみた2021年12月27日

Android関連のことを調べてみた2021年12月27日

UiAutomatorで表示しているブラウザのURLを取得する

## 結論

“`kotlin
uiDevice.findObject(UiSelector().resourceId(“com.android.chrome:id/url_bar”)).text
“`

## 概要
UiAutomatorを利用した検証で遷移したブラウザページのリンクを取得したい
結論項にある方法で取得が可能

## 参考
https://stackoverflow.com/questions/48112983/how-to-verify-a-chrome-tab-url-by-using-ui-automator

元記事を表示

[Rails]Webアプリケーションしか作った事ない僕が、ネイティブアプリケーションを作りたい

#はじめに
初学者の私が、2ヶ月でRailsを学びWebアプリケーションを作れるようになりました。
IOSでリリースをするに至って
まずどのような知識が必要かをまとめる記事になっています。

##React Native

React Nativeは、iPhoneとAndroidどちらでも動かすことができる開発用フレームワークです。
JavaScriptで開発することができるため、JavaやSwiftが書けないエンジニアでも、React Nativeを使えばアプリ開発ができます。
React Nativeの開発言語は、JavaScriptです。そのため、JavaScriptのコードを書ければAndroidとiOSの両方で開発が可能になるフレームワーク

“`
Reactに慣れている人にとっては学習コストの低いReact Native
ネイティブエンジニアには、逆に学習コストが高くなると考えられます。
“`
##Flutter

FlutterはGoogleが作ったモバイルアプリ用のフレームワーク。
「Dart」という言語を使って開発をしていきます。

“`
モバイルアプリ開発

元記事を表示

Pepper SDK入門(36) LocalizeAndMapでPepper専用地図を得る

#はじめに
PepperはLocalizeAndMapアクションとLocalizeアクションによって周辺環境の地図を作成し、移動しても自分の相対位置を保持します。

“`java
//アクションをビルドする
LocalizeAndMap localizeAndMap = LocalizeAndMapBuilder.with(qiContext).build();

//非同期にアクションを実行
localizeAndMap.async().run();

//LocalizeAndMapの実行を保存
private Future localizationAndMapping;
“`

つまりLocalizeが実行されていれば、Pepperを特定の位置に配置して周辺をネズミ花火のように動き回ってもらってもPepperは自分の立ち位置を見失いません?
LocalizeAndMapの使い方は以下の通りです↓

“`java
//アクションをビルド
LocalizeAndMap localizeAndMap = LocalizeAndMapBuilder.with(qiCon

元記事を表示

MacのPCでADBを使えるようにする方法

今回は自分は良くパソコンをお借りして仕事することがあり、その度にADBを入れているのですが、毎回調べている為、ここにまとめておこうと思いました。

# ADBとは

Android Debug Bridge(ADB) の略称です。
android開発をする際に便利な機能を使えるようになります。

# 始めに
今回はMacのパソコンで、AndroidStudioを既にインストールしてある状態から始めます。

# Android SDK locationのファイルパスを確認する
AndroidStudioを開いてPreferencesを開きます。

![スクリーンショット 2021-12-26 15.34.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274615/bd5f376e-cd7d-87f7-3c12-e8df6cf60af2.png)

SDKと検索するとAndroid SDKが出てきます。

![スクリーンショット 2021-12-26 15.44.11.png](https://q

元記事を表示

Androidアプリのダウンロード数をBigQueryで連携・取得する方法

# はじめに
これまで、Androidアプリのインストール数を確認するときは、Google Play Consoleを開き、
アプリを選択しダウンロード数を**手動**でスプレッドシートに転記させていた。

これはエンジニアとして許せないと思い、この面倒な作業をなくすために、

Google Play から取得できるアプリのインストール数をGBigQueryに毎日自動転送するよう設定した。

今日はそのAndroidアプリ(GooglePlay)をBigQueryに連携させた設定手順をアウトプット。

# GooglePlayからBigQueryへの転送手順

公式ドキュメントはこちら

https://cloud.google.com/bigquery-transfer/docs/play-transfer?hl=ja#before_you_begin

### 1/ 転送手順を始める前に

1. [BigQuery Data Transfer Service](https://cloud.google.com/bigquery-transfer/docs/enable-trans

元記事を表示

Flutterでのバックグラウンド処理のスケジューリング実装が難しいというお話

## 初めに
iPhone純正アラームのような規定時刻&曜日に通知を送って音を鳴らす目覚ましアラームアプリを、Flutterにて個人開発しています。
しかし、作り始めてみたところ思った以上に実装難易度が高く、調べた中で得た知見を共有します。バックグラウンドって何度も書くのアレなので以降**BG**とします。

また、いやいやこれでいけるんじゃないですか?みたいなコメントは大歓迎です。

## TL;DR (忙しい人用)
– 現状アプリkill状態でのBG処理のスケジューリング実装は**MethodChannel**を用いてOS毎にコードを書く必要がありそう…?(調査中)
– 調査段階の中途半端な状態で投稿すいません。
– アラームアプリ等、BG処理のスケジューリングは**茨の道**。
– 規定時刻&曜日のローカル通知は[flutter_local_notifications](https://pub.dev/packages/flutter_local_notifications)の[zonedSchedule](https://pub.dev/packages/flut

元記事を表示

ARでクリスマス気分を味わってみた!

こんばんは!ZOZOTOWNでAndroidエンジニアをやっているマサと申します。

この投稿はZOZO Android Adventカレンダーのその2の25日目(最終回)の記事となります。

この記事ではAndroidのアプリ上でAR(拡張現実)を使用してクリスマスツリーを設置する方法を共有したと思います。

キッカケは、僕が普段からARに関連するアプリを(Pokemon Go,マップアプリ)使用する機会があり、ふとAndroidでARアプリを作成する方法が気になったからです。また、ちょうど投稿日がクリスマスということもあり、今回はARでクリスマスツリーを設置してみようと思います!

## はじめに
この記事は主に以下のような読者を対象として想定して書いてみました。他にも様々な実装手段やツールがあると思いますので、あくまで参考程度にしていただければと思います。

この記事にはどういう特徴があるの?
– OpenGLについてあまり詳しくないけどARをAndoridで書いてみたいまたは実装方法を知りたい
– Andoridを普段JavaまたはKotlinを使用してAndroidStud

元記事を表示

Navigation Componentのdeep linkの仕組みを調べて見た

Navigation Componentでは起動した時点でFragmentのバックスタックが作られるDeep Linkという機能があります。
リファクタリング中の既存の動作を維持しつつnavigationを適用していたときに、応用の仕方が分からず、どうやって実装されているのか、調べて見ることにしました。

# Deep Linkの起動方法

Deep Linkには暗黙的deep link (implicit deep link) と明示的deep link (explicit deep link) の2種類があります。まずはそれぞれの起動方法がどうなっているのか調べて見ましょう。

## 暗黙的deep link

暗黙的deep linkではdeep linkにuriを設定して、そのuriで起動された時にdeep linkが発動するようになります。呼び出しの仕組みはuri指定のIntentなので、呼び出し側はなにも複雑なことはしていません。

設定の仕方は、navigation graphにdeeplinkタグを設定

“`xml:nav_graph.xml

元記事を表示

Android StudioでEspressoを使ったUIテストのやり方

#はじめに
**Espresso**はAndroid StudioのUIテスト(画面のテスト)が出来ます。その使い方を紹介します。
#今回は・・・
以下のようなアプリケーションがあるとします。

“`java:MainActivity.java
package com.websarva.wings.android.uitest1;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

private TextView textView;
private EditText editText;
private String text;

@Override
pro

元記事を表示

【Android】PlayStore遷移時のActivityNotFoundException

クラッシュリティクスにこんな報告が上がってきました。

“`
Fatal Exception: android.content.ActivityNotFoundException
No Activity found to handle Intent { act=android.intent.action.VIEW dat=https://play.google.com/… pkg=com.android.vending }
“`

PlayStoreへのIntentが失敗している?
中華スマホとか、Kindleならわかるが対象端末は普通にキャリアで売られているものばかり。。

## 問題はこれかも

![Screenshot 2021-12-02 135349.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/429030/3fadf9c1-f1f0-0d2f-6c91-f7375e3ceeaa.jpeg)

Disabledにして、強制アップデートダイアログを叩いてストア遷移しようとすると落ちまし

元記事を表示

家にきた赤い服のその人は、本当にサンタですか? 〜tflite modelを作って判別しよう〜

## メリークリスマス

アドベントカレンダーのネタを探してたら、kaggleで [IS THAT SANTA?](https://www.kaggle.com/deepcontractor/is-that-santa-image-classification) というデータセットを見つけてしまったので、on-device向けのサンタ識別モデルを作成することにしました。

## 準備

自分でモデルを組んでも良かったんですが、ここはお手軽に[TensorFlow Lite Model Maker](https://www.tensorflow.org/lite/guide/model_maker)を使うことにしました。

TensorFlow Lite Model Makerは転移学習を用いてtensorflow liteのモデルを作成できるライブラリで、少ないデータ量で精度が高いモデルを作成することができます。

また、モデル作成の実行環境は、[Colaboratory](https://colab.research.google.com/notebooks/welcome.ipyn

元記事を表示

Android AppLinksについて

この記事は [ZOZO Advent Calendar 2021](https://qiita.com/advent-calendar/2021/zozo) カレンダー2の25日目です。

## AppLinksとは
あるURLをIntent FilterとしてアプリのManifestファイルに定義することで、定義したURLからアプリを起動することが出来るようになりますが、httpやhttpsといったschemeの場合は反応するアプリも多いですし、毎回目的のアプリを選択するのは面倒です。

AppLinksに対応することで、特定のURLに直接アプリを関連付けることが出来、前述のような煩わしさが全くなくシームレスにアプリを起動することが出来るようになります。

公式ドキュメントでは、さらに詳しく解説されています。

https://developer.android.com/training/app-links?hl=ja#app-links-vs-deep-links

正直、新しいトピックではありませんが、Android 12で加えられた変更点も交えて書いていきたいと思います。

#

元記事を表示

だからボクはオブジェクト指向が使いこなせない Android/Kotlin編

#はじめに
本記事は、Android/Kotlin開発において、オブジェクト指向を使いこなしたい、という方に向けた記事です。
※この記事は「[だからボクはオブジェクト指向が使いこなせない Android/Java編](https://qiita.com/argama147/items/dbd6210d4b0f570ad295)」をAndroid/Kotlinで書き直したものです。

私が10年近くAndroidアプリ開発に関わってきて思うのが、開発現場でオブジェクト指向らしいコードを書けるプログラマーは、残念ながら全体の2割にも満たない、ということです。(あくまで私個人の感想です)。
逆に言えば、オブジェクト指向らしいコードを書けるようになるだけで、開発現場で重宝される人材になれます。Androidの最新ライブラリの使い方の勉強をすることも大切ですが、開発現場でより即効性があり、かつ、Android以外のプログラミングにも応用できる、潰しのきく技術、それがオブジェクト指向らしいコードを書く技術です。

##どうしたらオブジェクト指向らしいコードを書く技術を身につけられる?
※具体的な

元記事を表示

DialogFragmentで5分刻みのタイムピッカー

## はじめに

記事にするのを1年間忘れてたので、備忘録といっても今更役に立つやら。

一般的な手法なのかわかりませんが、
「5分刻み TimePicker」とかで検索すると、
Android標準のタイムピッカーを改造する例がちょいちょい見つかります。

しかしこのタイムピッカーが、
API30以上がターゲットの場合にクラッシュするようになりました。

https://developer.android.com/about/versions/11/non-sdk-11
APIへのアクセスが禁止されたものの中に、TimePickerがあります。
今は新しいTimePickerが提供されているので、そっちを使ってねってことみたいです。

でもダイアル式のタイムピッカーが使いたいので、
クラッシュ原因以外の部分だけ切り取って、それっぽいものに復元しました。

画面表示する都合で、
最終的に取得できる時間と分を数値にしています。

## タイムピッカー

“`Java:TimePickerDialogFragment.java
package com.example.myapplicati

元記事を表示

Play Billing LibraryでAndroidの課金実装してみた

# はじめに
こんにちは。
昨年に引き続きLivesense Advent Calendarで記事を書かせていただくことになりました。
今回は「Play Billing Library」を使ったAndroidの定期購入課金実装の話をしようと思います。

# Play Billing Library
2017年ごろにリリースされた、アプリ内課金を実現するためのライブラリです。
課金サービスとの接続の管理や通信処理、課金を行うためのモーダル表示をすることができます。

このライブラリは2年ごろにバージョンアップが行われ、その度に古いバージョンの足切りがあり課金ができなくなるため、バージョン管理には気をつけましょう。

https://developer.android.com/google/play/billing/integrate?hl=ja

# 課金処理の流れ
1. アプリで課金サービスへの接続を行う
1. 接続完了後、ユーザー操作による購入のタイミングで課金モーダルを表示する
1. モーダル内の「定期購入」をタップする
1. Google Play側へ支払いが行われ、レシート情報

元記事を表示

Androidアプリのログが正しく送信されていることを担保する

こんにちは。NewsPicks Androidアプリエンジニアの sefwgweo です。
今回は[こちらの記事](https://tech.uzabase.com/entry/2021/05/21/094101)で書かれているログまわりについて、掲題の通りAndroidの事例として紹介します。

なお、概要等についてはリンクの記事に全て詳細に書いてあるのである程度割愛し、本記事ではAndroidで工夫した部分に焦点を当てていきます。

## ログE2Eテストの大まかな仕組み

AndroidでUIテストということでJUNIT4系とEspresso3系を用いて実装しました。

テストコードにはテスト対象のログが送信されるときの画面操作を実装しています。例えば、ニュースフィードで記事を表示する、記事をタップする、といった操作です。

ログ送信のエンドポイントはスタブ化していて、テスト時のログが本番環境に送信されないようにしています。さらに、ログリクエストの内容をあとで検証できるように、スタブ化する過程でリクエスト内容をファイルに一時保存しています。

## ログE2Eテストの実装の詳細

元記事を表示

ヒーローズ・リーグ2021「カフェのサイズが覚えられない」

# はじめに
ヒーローズ・リーグ2021へ「[カフェのサイズが覚えられない](https://protopedia.net/prototype/2722)」を応募しました。

– ダイヤモンドさんの「スタバ」ネタが好き。
– チェーン店のカフェのサイズはお店毎に呼び方がちがって覚えにくい。
– 体でサイズを説明しながら楽しくチェーン店のカフェサイズを覚えたい。

![コンテスト応募_タイトル.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/543183/640f24c0-baaa-730c-d082-d912a5c55d0c.png)

私がダイヤモンドさんのネタをやりたかっただけとも言えます。

# 応募した作品
元ネタを見てからアプリのデモ動画見ると、よりアプリを楽しめます。
[カフェのサイズが覚えられない](https://protopedia.net/prototype/2722)

元ネタはこちら
漫才『スタバ』/コーヒーのサイズ おもしろ荘優勝ネタ/ダイヤモンド(ダイヤモンドお笑いチャンネル

元記事を表示

HyperionのデバッグメニューアイテムをJetpack Composeで作る

ComposeViewを使えばJetpack ComposeでViewがかけるのでHyperionのデバッグメニューのアイテムをJetpack Composeで書くことができる。
Android Viewだとデバッグ用にlayoutを用意する必要があったりして利便性が悪かったが、Jetpack Composeでかけるとコードだけなのでスッキリ書くことができた。
Columnで作ったけども、BoxでもRowでも別に問題はなさそうなきはするのでこれで好きなレイアウトのデバッグメニューが作り放題!

“` kotlin
@AutoService(Plugin::class)
class DebugMenuPlugin : Plugin() {
class PluginModuleImpl : PluginModule() {
override fun createPluginView(layoutInflater: LayoutInflater, parent: ViewGroup): View =
ComposeView(parent.co

元記事を表示

ABCD2021Winter参加レポート

# ご挨拶
こんにちは!もうすぐクリスマス?ですね!
dip株式会社でAndroidエンジニアをしながら、日本Androidの会にも所属している古川守加と申します!
日本Androidの会活動の一環でイベントの運営にも携わっております!
中でもABC、ABCDはAndroidの祭典として毎回大盛り上がりしています?
ぜひこの熱気を伝えるべく記事にしました!!お楽しみくださいっ

# 概要
2021年12月11日(土)に開催されたAndroid Bazaar and Conference Diverse 2021 Winterの参加レポートです!

![スクリーンショット 2021-12-23 17.09.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/394720/1d995fe4-c776-9ee0-cd6a-8377e08c5f0d.png)

コロナ前は大学などをお借りして現地開催されていましたが、今年も前回のABC/ABCD同様オンラインでの開催となりました!
` ABCD2020Autum

元記事を表示

【Android】今日からできるSplashアイコンアニメーション【Splash】

この記事はand factory.inc Advent Calendar 2021 23日目の記事です。
昨日は[@doihei](https://qiita.com/doihei)さんの[GitHub Template Repository](https://qiita.com/doihei/items/223c273a1aef467fc3fd)使ってみたでした。

# はじめに

Android12が出てから、YoutubeやGoogle公式アプリ(MapやGmail)のSplashにアニメーションが追加されて、めちゃくちゃオシャレになったよね?
ユーザーの目に入るのはアプリを開く一瞬だけだけど、ちょっと動きが追加されるだけでワクワク感が出ててとっても素敵。

是非とも真似したいと思って色々調べてきたので、Splashアイコンのアニメーション実装方法を紹介するよ。

## 完成形

Before | After
:–: | :–:

  • OTHERカテゴリの最新記事