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

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

【Androidアプリ開発Tips】Widgetをクリックしてもブロードキャストされない

初めてAndroidのWidgetアプリを作る事になり、ネット上のサンプルアプリを動かそうとしたら、ウィジェットをクリックした時にブロードキャストが受け取れない(発生しない)という状況になり、ハマりました。
同じ悩みを抱える人のために取り急ぎ解決方法を記載しておきます。

結果的には、SDKバージョンの仕様変更によるものでした。
わたしのAndroid Studioは、2019年12月時点で最新バージョンを導入しています。

<前提>
・Android Studio 3.5.3
・compileSdkVersion 29
・buildToolsVersion “29.0.2”
・minSdkVersion 15
・targetSdkVersion 29

###1.サンプルコード
以下の二つを実装してみましたが、うまく行きません。
・クリックするとToast表示するアプリ
https://qiita.com/s-yamda/items/cba2c6c134303f29d4ab
・クリックするとおみくじが引けるアプリ

Androidアプリを作ろう08 ウィジェット②

元記事を表示

アプリ開発初心者が Flutter に入門して 1 か月でアプリをリリースした話

## はじめに

最近 Flutter に入門しました。無事に一つアプリをリリースすることができたのですが、ネイティブアプリの開発が全くの素人で苦労した点があったので、同じく入門する初心者の方に記録として残していこうと思います。

また、事情があり家の PC でなかなか開発が進められないため社内の PC で業務終了後に開発を進める形になりました。社内環境では Proxy にネットワーク通信が阻まれてしまうため、よくある入門の記事通りに行かないことがとにかく多くあり・・・(というかむしろここが一番苦労したと思います。)
同じく Proxy 環境での開発を余儀なくされている方の助けになれば幸いでございます。

なお、Flutter やその周辺等知識が甘い部分が多いと自負しているため誤りやアドバイス等あればコメントしていただけると幸いです。ただちに確認致します。

## リリースしたアプリの紹介

### BundleApps

こちらのアプリです ⇒ [BundleApps](https://play.google.com/store/apps/details?id=com.johnwo

元記事を表示

Firebase ML Kitでオンデバイス翻訳を使ってみる

# Firebase ML Kit
https://firebase.google.com/docs/ml-kit/?hl=ja
Googleの機械学習機能をAndroid、iOSアプリとして提供するモバイルSDK。
数ある機能の内の1つである`翻訳機能`を試してみます。

## デバイス / クラウドの両方に対応
オンデバイスAPIは実行速度が速く、オフライン環境で機能します。
クラウドAPIは、Google Cloud Platformの機械学習を利用して精度の高い処理が可能です。ただし有料。

## 翻訳機能
ML Kitのオンデバイス翻訳APIを使用すると、59の言語間でテキストを動的翻訳することができるらしいです。
Google 翻訳アプリのオフライン モードで使用されているモデルが搭載されています。

早速日本語→英語へ翻訳した動作結果です。
長文を翻訳した感を出したかったので、雑に青空文庫から著作権フリーの作品を引っ張ってきました。

`原文`
![Screenshot_20191018-022119_MLKitTranslation.jpg](https://qiita

元記事を表示

Androidアプリで端末の画像を取り込む

#はじめに
AndroidStudioのデフォルトだけで完結するアプリ作りにも飽きてきたので、OpenCVを使って画像を色々編集できるようにしてアプリの幅を広げてみる。
はじめに編集するための画像をデバイスから取り込む。

#環境
OpenCV 4.1.2
AndroidStudio 3.4.1

#画像を取り込む
[公式ドキュメント](https://developer.android.com/guide/topics/providers/document-provider?hl=ja)がこちら

まずは適当にベースとなるコードを書く。
いまだにGUIでレイアウト画面作るの慣れていないのでxmlで書いちゃう派です。

“`java:MainActivity.java
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity ex

元記事を表示

android 課金レシート検証するためにリフレッシュトークン取得がやっと理解できた

# リフレッシュトークンが必須!!

##リフレッシュトークンを取得するまでの流れ

OAuth 2.0 クライアント IDに、タイプ「ウェブアプリケーション」のクライアントIDを作成する
リダイレクト先をhttp://localhost でもなんでもいいから登録しておくこと

###1.codeを取得する
#### ブラウザのアドレスに以下を記入する。

“`
https://accounts.google.com/o/oauth2/auth?scope=https://www.googleapis.com/auth/androidpublisher&response_type=code&access_type=offline&redirect_uri=http://localhost&client_id=1097990115894-an30hkodeibai45l87k2l0nun6h391e5.apps.googleusercontent.com
“`

URLに以下が表示されるのでコピーしておくcode=のところ。

“`
http://localhost?code=4

元記事を表示

CoordinatorLayoutとMotionLayoutで、Googleカレンダーのプロフィール画面風のUIをつくる

# はじめに
アニメーションが気持ちいいUI、気持ちいいですよね。
Android Studio 4.0(現時点ではCanary版)からMotion Editorを利用したアニメーションを作ることができるようになり、アニメーションを作りやすい状況が整備されてきていると思います。
今回は自分がよく使っている[Googleカレンダー](https://play.google.com/store/apps/details?id=com.google.android.calendar&hl=ja)のプロフィール画面の動きを再現したいと思い、CoordinatorLayoutとMotionLayoutの組み合わせで実装してみました。

# 何をつくるのか
![motion5.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/20276/27e70a5e-b68b-0385-a8d0-27417fa9c40e.gif)

Googleカレンダーの予定に追加されたゲスト、のプロフィール詳細画面の動きです。
プロフィール画

元記事を表示

そのkeystore、消えるよ

# はじめに
年の暮れ師走、`ReactNative`製`Android`アプリの最新バージョンを公開すべくリリースビルドを実行した時の話。

ワイ「よっしゃ、`Android`版のリリースビルドをするで~」

ワイ「最近は`iOS`版固有のバグ取りにてんてこ舞いやったから、`Android`フォルダを触るのも久々やわ」

ワイ「久しぶりのリリースビルドだから、しっかり手順書に従わなあかんな」

**※このあたりの手順は別記事の[【ReactNative】Androidリリースビルド時のメモ(2019/10/28 追記あり)](https://qiita.com/nekoniki/items/bf9433aec8a824af849c)で詳しく触れています。**

ワイ「ふんふん、最後に`.keystore`ファイルで署名をするんやな」

“`
apksigner sign –ks app/my-release-key.keystore –ks-key-alias my-key-alias my-app.apk
“`

ワイ「・・・あれ、なんかエラー出たわ」

コンソール「`a

元記事を表示

Androidアプリ開発で国民の祝日を表示するのに試行錯誤。後編

 どうも!ヨースケです。なかなか良いタイトルが思いつきませんw簡潔にかつ具体的でなんかいい感じ(笑)のタイトルは難しいですね。ブログとかとはちょっと違う気がしますし、僕も内容もそうですがいい感じになるように精進します!

 [前編](https://qiita.com/ysk75/items/90151559e08551ed58e8)は国民の祝日の日付について説明しました。後編ではソースコードを組むにあたっての考え方(と言っても僕はこう考えましたよ。と示すものですが…)やソースコード、そしてまぁまぁの欠点があったのでそれも含めてご紹介します。
 前編でのおさらいとして祝日の曜日と備考をもう一度載せておきます。

|祝日名|日付|備考|
|:—:|:—:|:–:|
|元日|1月1日|-|
|成人の日|1月の第2月曜日|-|
|建国記念の日|2月11日|-|
|天皇誕生日|2月23日|-|
|春分の日|3月の19~22日のうち1日|西暦年を4で割った余りで日にちを決定|
|昭和の日|4月29日|-|
|憲法記念日|5月3日|-|
|みどりの日|5月4日|-|
|こどもの日|5

元記事を表示

Androidスマホの音声をパソコンにミラーリングする方法

#Androidスマホの音声をパソコンにミラーリングする
Androidスマホの音声をパソコンで流したい人もますます増えているようですね。
スマホの画面をパソコンに出力するガイドはたくさんありますが、
**スマホの音声をパソコンにミラーリングする方法**は多くではありません。
では、この記事はAndroidスマホの音声をパソコンにミラーリングする方法について、ご紹介します。
##事前準備
Androidスマホ(この記事ではHuaweiスマホを例として説明します。)
キャスト機能に対応しているWindows PC(Windows7/8/8.1/10)
画面ミラーリングアプリ(この記事ではLetsViewというアプリを例として操作します。)
##操作手順
1.スマホとパソコンを同じWi-Fiネットワークに接続しておきます。
2.パソコンに[LetsView](https://letsview.com/jp/) をダウンロードして、起動します。
[LetsViewダウンロード](https://download.aoscdn.com/down.php?softid=letsview)
3.

元記事を表示

[Android]UP ボタンと同じ 円形の Ripple Effect (波紋) を表示する

# はじめに

UP ボタンをクリックすると次のような円形の Ripple Effect (波紋) が表示されます。
この円形の Ripple Effect (波紋)を Image Button で表示するのに困ったので作り方をまとめます。

![Dec-17-2019 08-47-30.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/79387/e88d9488-7039-aa71-badc-6aab6094a1ff.gif)

# Step1 Image Button に貼り付ける Drawable をダウンロードする

[Material Design Icon](https://materialdesignicons.com)にアクセスし Vector Drawable をダウンロードする。
そしてダウンロードしたファイルは Drawable にコピーしておく。

“`xml:ic_folder.xml
[Android]Ripple Effect (波紋)を表示する方法まとめ

# はじめに

Ripple Effect とは UI コンポーネントを Click したときに発生する波紋のアニメーションのことです。
例えばですが Click する次のように Click した位置から波紋状に広がるアニメーションが表示されます。

![Dec-17-2019 00-30-22.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/79387/a56ad6b4-7524-ab27-d026-ce9c3c5459b4.gif)

この Ripple Effect ですが View によっては表示されません。
例えば次のように TextView では Click しても表示されません。

![Dec-17-2019 00-31-01.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/79387/348e8e9c-c45d-2c52-8723-1b8b8eba7f23.gif)

また表示されている View でも Ba

元記事を表示

Androidデバイスでゼロタッチデプロイするまで~調達編1~

# 目的
* 日本で購入したAndroidデバイスで
* ゼロタッチデプロイを行い
* EMM導入までできるようにする

## 今回の目標
ゼロタッチデプロイ対応できるメーカを特定する。
(2019年12月の情報です)

#アプローチ
## ゼロタッチデプロイ対応可能なAndroidメーカを探す

基本的に、業者の情報はGoogleのAndroidのサイトに記載されています。
https://www.android.com/intl/ja_jp/enterprise/management/zero-touch/

たとえばここで、

“`
ゼロタッチ パートナー
端末をスムーズに導入していただけるよう、世界中の携帯通信会社、端末メーカー、EMM プロバイダと提携しています。
“`

とありますが、日本で聞いたことあるメーカでも、**日本法人向けに提供してくれるとは限りません**。
というか、だいたいダメでした。

なので、こちらで調査しましょう。
https://androidenterprisepartners.withgoogle.com/resellers

![スクリー

元記事を表示

アプリ内課金の価格改定した話

# はじめに

NewsPicksの桐畑です。
先日、NewsPicksではiOSとAndroidアプリの定期購読価格を改定いたしました。
今回、その時の具体的な手順や注意すべきポイントをお伝えしたいと思います。

※なお、2019年11月時点の話となります。動作をなんら保証する情報ではありませんので、その点ご留意ください。

# アプリ内課金について

iOSとAndroidのアプリ内課金には大きく、`都度課金` / `定期購読課金` があります。

`都度課金` は、課金したタイミングに応じてアプリ内のサービス(ポイントやガチャ用の魔法石など)が発生するタイプの課金です。
*例:5,000円で魔法石300個を購入*

`定期購読課金` は、その名の通り定期的に課金が発生し、課金継続期間中はサービスが利用できます。
*例:毎月 1,600円が課金されて、課金期間中は記事と動画見放題 。*

# 定期購読の価格改定方法

また、定期購読の価格改定方法にも大きく以下の2パターンがあります。

## 1. 全ユーザーに一律で新価格を適用

既存ユーザー / 新規ユーザー問わず、シンプルに

元記事を表示

ConstraintLayoutを使いたい – 基本編【Android】

# Androidアプリのレイアウト作り
* LinearLayout
* RelativeLayout
* ConstraintLayout

…などなど、
Androidのレイアウトの作り方、いろいろありますよね。

個人的にはConstraintLayoutが好きなのですが、
後から追加されたレイアウトということもあり、昔からAndroid開発をやっている方からすると、
「新しく覚えなくてもLinearLayoutやRelativeLayoutでいいじゃん:thinking:」と思うことがあるようです。

そんな方に向けて、**「ConstraintLayoutはいいぞ」**を伝えられる記事があったらいいなと思い、
この記事を書きました。

# ConstraintLayoutのいいところ
* レスポンシブな画面を作りやすい
* ネストの必要がないので処理が早くなる(らしい)

以下の記事が参考になります。
[ConstraintLayout がもたらすパフォーマンスのメリットを理解する – Google Developers Japan](https://developer

元記事を表示

FluxとMultiple Back StacksなAndroidアプリにおける画面毎のデータ管理について

# はじめに
この記事は、[Android#2のアドベントカレンダー](https://qiita.com/advent-calendar/2019/android-2)の17日目の記事になります。

The Chain MuseumでAndroidエンジニアをしているYoung (@akihito-okada) です。
現在私の関わっている[ArtSticker](https://artsticker.app/)というアプリでは、以下の構成で開発をしています。

– `Flux`
– `Single Activity`
– `Multiple Back Stacks`(BottomNavigationViewを各画面に持ち、メニュー毎にスタックを管理)

今回は、この構成における画面毎のデータ管理の方法について紹介したいと思います。

## Multiple Back Stacksについて

ArtStickerにおける画面遷移の要件として、`アプリ内のほとんどの画面でBottomNavigationViewを表示しつつ、各メニューごとにスタックを管理する`ことがあげられます。ここで

元記事を表示

[Navigation Component] Back Stack の変化まとめ

## はじめに

Navigation Component を使う際、[基本原則](https://developer.android.com/guide/navigation/navigation-principles)に従った遷移については本当に楽で助かるのですが、バックボタンの遷移先を前の画面以外にするなど、少し特殊な遷移を実装しなければいけない場合には NavController 内の back stack がどのように積まれているか知る必要が出てきます。
本記事では Navigation Component の使い方を一通り学んだ方向けの情報として、特定の遷移を行った場合の back stack の変化をひたすら挙げていきます。(バージョン2.2.0-rc02での情報です)

なお、本記事には以下の発表内容が一部含まれます。

## Navigation Component の Back Stack

元記事を表示

【初学者向け】Flutterを使ってアプリを作る

こちらは、[TOWN Advent Calendar 2019](https://adventar.org/calendars/4335) 17日目のエントリーです。

[Flutter](https://flutter.dev/)とは、Googleによって開発された、単一のソースコードからiOS/Android両方のアプリケーションを構築することができるオープンソースのモバイルのアプリケーションフレームワークです。
今回はQiitaの記事を一覧表示するFlutterのアプリを作ってみました。

## 開発環境構築
以下のエントリを参考にさせていただきました。
⇛ [Flutter開発環境構築(Mac編)](https://qiita.com/akatsukaha/items/3b8a5a6d94a3cdb1e047)

## 作ったもの
[![Screenshot from Gyazo](https://gyazo.com/8b281681ccb6066ee6e5153d12a86f70/raw)](https://gyazo.com/8b281681ccb6066ee6e5153d

元記事を表示

FirebasePredictionsで効率的な有料会員獲得を目指す

[NewsPicks Advent Calendar 2019](https://qiita.com/advent-calendar/2019/newspicks) 16日目の記事です。

## Subscriptionの獲得が大事
NewsPicksのネイティブアプリではiOS・Androidともに月額によるSubscriptionを提供しています。
課金獲得数がそのまま収益へと繋がるのでチーム一同毎日どうすればユーザーに価値を感じてもらいSubscriptionに登録してもらうのか、またどうすればずっと登録を継続してもらえるのか考えています。
最近ではユーザーの行動ログ分析やユーザーインタビューなどを行い施策に落とし込むことをしています。しかし行動ログの分析には難しい統計学の知識が必要で専門的な能力が必要です。残念ながら僕にはそのような知識はないので今すぐどうこうできません。ユーザーインタビューを行おうにも人見知りの激しい僕にはハードルが高い施策です。そんな困った人に救いがあるのがFirebasePredictionsです。

## FirebasePredictionsとは
ざっ

元記事を表示

[ Android ] esspressoでのテストコードサンプル

前回、AndroidTestで必要となるesspressoとサンプルコードをついて紹介した。
今回はより具体的なコードを紹介する。

##Spinnerの選択
UIテストでSpinnerをクリックするコードは以下のとおりである。

~~~java
//spinnerの選択肢で”hoge”と表示されている選択肢をクリックする
onData(allOf(is(instanceOf(String.class)), is(“hoge”))).perform(click());
~~~

https://qiita.com/teracy/items/ebbe92e2384657800856

##Buttonの有効性を確かめる
例えばボタンが有効状態かどうか確かめるには以下のコードを書く

~~~java
//リソースIDがR.id.buttonが有効かどうか検証
onView(withId(R.id.button)).check(matches(isEnabled()));
~~~

https://stackoverflow.com/questions/32880107/android

元記事を表示

AndroidのTheme/Styleを理解する

AndroidのThemeとStyle、本当は活用したいんだけどよくわからないので、どうしても後回しになって理解が進まずにいるって人多いと思います。
少なくとも僕が過去に関わったプロジェクトは、どれも活用までは至っていませんでした。

今回は、AndroidのTheme/Styleを雰囲気で理解している…というのを脱却するためにまとめました。

# ThemeとStyle

Themeは**変数の集合**、Styleは**Attributeの集合**です。

Themeは`Theme`、`ThemeOverlay`が当てはまり、
Styleは、`style`、`TextAppearance`、`ShapeAppearance`が当てはまります。

ただし、これらの役割は定義で決まるものではなく、**利用するときに決まる**ため、どれも区別なく`