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

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

FlutterでNFC通信を利用して学生証のプリペイド使用履歴を表示させてみた

# はじめに
 前回[こちら](https://qiita.com/f-nakahara/items/82fefe574a2e5a25182b)の記事でFlutterのnfc_managerを使用して学生証のプリペイド残高を読み込んでみました。
 今回は、残高だけでなく、使用履歴も表示させていこうかと思います。ちなみに、デザインは全く意識せず、必要なデータだけ表示させてるので見た目に関してはシーッ!!!

# 完成形
![gakuseisho.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/600842/edb83bbe-f093-e844-6671-46dadbc2578f.gif)

# やってみる
## 使用ライブラリ
 NFC通信を行うために使用するライブラリは「[nfc_manager](https://pub.dev/packages/nfc_manager)」というものを使っていきます。NFC通信をするためのライブラリは他にもいくつかありましたが、個人的にこちらのライブラリが一番使いやすか

元記事を表示

[android] ターミナルからAVDを起動する

# はじめに
VScodeでReactNative開発するのにターミナルからAVDを起動できるようにすると便利なので、環境変数にAndroidのパスを通します。

# 開発環境
Linux

# やり方

“`
# ——————————————————————
# Android
# ——————————————————————
export ANDROID_HOME=”$HOME/Android”
export ANDROID_SDK_ROOT=”$ANDROID_HOME/Sdk”
export PATH=”$ANDROID_SDK_ROOT/tools/bin:$PATH”
export PATH=”$ANDROID_SDK_ROOT/emulator:$PATH”

“`

# 確認

“`terminal

❯ emulator -list-avds

元記事を表示

すべてのAPIレベルで使用できる ?attr/ 属性を使うべし

|記述|説明|
|:–|:–|
|`?android:attr/foo`| `android:`あり。
Android プラットフォームで定義されている静的ライブラリ。
例) Layout `android:id`
|
|`?attr/bar`|`android:`なし。
AppCompat や MaterialDesignComponentで定義。
コンパイル後アプリに同梱される。
例) Layout `app:baz`|

`colorPrimary`など両方に存在する場合は、多くのAPIレベルで利用できる`?attr/bar`を使うことをおすすめします。そのライブラリを正しく複製してバックポートしています。

[?Theme.MaterialComponents の カラーテーマ](https://qiita.com/chanzmao/items/59e930b885396072ac8b)

元記事を表示

MacでKotlinを使ったAndroidアプリ開発 〜環境構築編〜

タイトルの通り

#開発環境(IDE)のダウンロード

昔はEclipseにAndroidの開発プラグインを導入してAndroid開発してたけど
今はAndroid Studioっていう独立したIDEを使うのが主流っぽい

というわけで公式サイトから[Android Studioの最新版](https://developer.android.com/studio?hl=ja)をダウンロード

#インストール

ダウンロードしたファイルでインストール作業を実施。
と言ってもMacなのでappを指定のフォルダに配置するだけ
![スクリーンショット 2020-03-11 23.33.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/601102/676e6d75-05a5-da0b-7238-3dc6e424f6ba.png)

最初に表示された画面で「AndroidのSDKインストールしちゃうぜ」的な文章が記述されているけどそのまま「Next」
![スクリーンショット 2020-03-11 23.50.3

元記事を表示

FlutterでNFC機能を使用して学生証のプリペイド残高を取得してみた

# はじめに
 この記事では、Flutterで学生証のプリペイド残高を読み込んだときの手順を書いていくぜ!
 FlutterでNFC通信をして実際に欲しいデータを取得するような記事がまじで見つからない。あっても大体はID取得して終了みたいな感じだったので、Javaで実装している[こちらのサイト](https://qiita.com/na234/items/59558a3bfc8d74c94522)を~~パクっ~~参考にしてバッコリ書いていくぜ!

#

# やってみる
 とりあえず、みんなが早くやれとせかしてくるから、書いていきます。だから落ち着いてくれ!
## 使用するライブラリ
 FlutterにもNFC通信をするためのライブラリはたくさんありますが、今回は「[nfc_mangaer](https://pub.dev/packages/nfc_manager)」を使用していきます。
 ライブラリ読み込み後は忘れないうちに以下のパーミッションも設定しておきましょう

“`AndroidManifest.xml
PCを使ってAndroidのChromeのデベロッパーツールを表示する方法

AndroidのChromeでの検証でデベロッパーツールを表示したいということがあったので備忘録に…。

## 必要なもの
・検証用Android
・USBケーブル(データの送受信が行えるものであればおそらく動くはず…)
・PC(今回macを使用しました)

## Androidでの準備
### Androidを「開発者モード」にする
1.設定からビルド番号を表示
検証端末によっては以下のように場所が異なるそうです。

“`

Android 9(API レベル 28)以上
 [設定] > [デバイス情報] > [ビルド番号]
Android 8.0.0(API レベル 26)および Android 8.1.0(API レベル 26)
 [設定] > [システム] > [デバイス情報] > [ビルド番号]
Android 7.1(API レベル 25)以下
 [設定] > [デバイス情報] > [ビルド番号]
“`

2.ビルド番号を7回タップ
端末にパスワードをかけている場合はパスワードを聞かれるので入力してください。

3.USBデバッグを有効にする
「開発者向けオプション」が

元記事を表示

AndroidアプリにAws Amplify 無しで Aws AppSyncを導入する際の備忘録

# 概要
Android アプリに Aws AppSyncを導入する方法とTipsをメモしておきます(2020/3/10時点)

# 前提
– AWS側の認証はIAM
– Androidアプリはネイティブ(React等ではない)タイプ
– **Aws Amplifyは使わない**
– すでに既存のAndroidアプリが存在していて、それに追加する形

今回、すでに存在するAndroidアプリに、すでに存在するDynamoDBのデータを自動でSyncさせたいという要求のためにあえてAmplifyは使わずに、AppSyncのみの機能を使う方法です。
新規でまるっと作れるなら、Amplify使ってやったほうが良いと思います。
いろいろ調べましたが、多分すでAndroidアプリ&Sync元データが存在する状況下てAmplifyを使って上手く安全に工数少なくやる方法はないと思います。

### この記事で紹介しないこと
– AWS上での設定の詳細
– GraphQLの説明

# 導入手順
## 0. AWSコンソール上での設定
それぞれの状況下で違うと思うので割愛
AppSyncへのアクセス

元記事を表示

AmplifyとAndroidでPush通知

## これは何

AWS Amplifyを用いて、ログイン、画像アップロード、push通知シリーズ第三弾の投稿です。
第二弾の投稿は以下をご覧ください。

[AmplifyとAndroidでファイル保存](https://qiita.com/bob_yama/items/3c9f6c047ba400248791)

第二弾ではCognitoから取得したcredentialを利用してS3に画像をアップロードするところまで終了しました。
今回は、S3に画像をアップロードしたタイミングで、push通知配信先に登録されている全てのデバイスに対してpush通知を送信する機能を追加したいと思います。

前回に引き続きAmplifyTutorialアプリに機能を追加していきます。

## firebaseプロジェクトを作成

Androidでpush通知を実現するためには、[Firebase Cloud Messaging](https://firebase.google.com/docs/cloud-messaging?hl=ja)というサービスにpush通知を依頼する必要があります。

元記事を表示

AmplifyとAndroidでファイル保存

## これは何

AWS Amplifyを用いて、ログイン、画像アップロード、push通知シリーズ第二弾の投稿です。
第一弾の投稿は以下をご覧ください。

[AmplifyとAndroidでログイン](https://qiita.com/bob_yama/items/27123c3d455752800abf)

第一弾ではCognitoを用いたアカウントの作成、認証コードの確認、ログイン機能の実装まで終了しました。
今回は、Cognitoから取得したcredentialを利用してS3に画像をアップロードするデモを作成したいと思います。

前回に引き続きAmplifyTutorialアプリに機能を追加していきます。

## AmplifyにStorageを追加

まずAmplifyにStorage機能を追加します。
プロジェクトのルートディレクトリで以下のコマンドを実行しましょう。

“`shell
$ amplify add storage
? Please select from one of the below mentioned services: Content (

元記事を表示

AmplifyとAndroidでログイン

## これは何

AWAのAmplifyは、ウェブアプリケーションやモバイルアプリケーションのサーバレスなバックエンドをcliやwebコンソールから簡単に作成できるツールとして最近注目を集めています。
しかし、Amplifyは元々ウェブアプリケーションのためのツールであり、モバイルアプリケーション向けのライブラリを公開したのは割と最近のことみたいです。
[Introducing Amplify for iOS and Android](https://aws.amazon.com/jp/about-aws/whats-new/2019/12/introducing-amplify-for-ios-and-android/?nc1=h_ls)

そのため、AndroidとAmplifyの連携方法についての情報が乏しく、githubでサンプルコードを検索してもほとんど見当たらないというのが現状でした。

今回は、投稿者がAmplifyを用いて、ログイン、画像アップロード、push通知を実装した際に躓いた点や、実装の大まかな流れをtutorial形式でまとめました。
Andr

元記事を表示

Flutter の Integration Test のご紹介

## 前提

・Flutter の導入は完了済み
・Integration Test やったことない

## やること

公式でサンプルがあるのでそれをみて進めていきます!

https://flutter.dev/docs/cookbook/testing/integration/introduction

>
1. テストのためのアプリ作成
2. dependency に flutter_driver を追加
3. テストファイルを作成
4. テストのための app ファイルを記述
5. テストを記述
6. テストを実行

## 1. テストのためのアプリ作成

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/165251/9cbd85b3-ef56-5289-f70c-fe4098987889.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/165251/c173e8f8-4

元記事を表示

Androidアプリの圧縮、難読化、最適化【R8】

つい後回しにしてきたので、正しく理解するために
[公式ユーザーガイド](https://developer.android.com/studio/build/shrink-code?hl=ja)を元に要点をまとめたいと思います。

#R8の有効化
R8はAndroid Gradleプラグイン**3.4.0以降を利用していれば自動で適用**される。

*Android Studio 3.3 ベータ版, Android Studio 3.3.1 では*
gradle.propertiesに以下の設定を加えると適用される。

“`
android.enableR8=true
“`

要は**何もしなくても勝手に適用**してくれるようですね。
ほとんどの場合gradle.propertiesを変更する必要はなさそうです。

ちなみにR8が有効の状態でuseProguardを有効のままにしている場合はビルド時に以下のような警告が表示されます。

“`
DSL element ‘useProguard’ is obsolete and will be removed soon. Use ‘a

元記事を表示

Theme.MaterialComponents の カラーテーマ

カラーコードの表記の横に実際の色を入れておきます。あと簡潔な日本語に。

### カラーテーマを使え

|属性|説明|デフォルト値|
|:–|:–|:-:|
|colorPrimary| アプリで最も使われる色。表面色、背景色より上に描画されます。|`#6200EE`|
|colorPrimaryVariant|colorPrimary のバリエーション。|`#3700B3`|
|colorOnPrimary|colorPrimary 上のテキスト/画像の色。|`#FFFFFF`|
|colorSecondary|セカンダリブランディング色。通常は colorPrimary を強調した補色。|`#03DAC6`|
|colorSecondaryVariant|colorSecondary のバリエーション。|`#018786`|
|colorOnSecondary|colorSecondary 上のテキスト/画像の色。|`#000000`|
|android:colorBackground|スクロール可能なコンテンツの背景色。|`#FFFFFF`|
|colorOnBackgr

元記事を表示

【Android初心者】intent で画面遷移ができない…setContentViewを理解していないことが失敗の原因

Androidアプリ開発の教科書Kotlin対応 を参考にAndroidのアプリについて勉強しています
7章 画面遷移とIntentクラス ではまった
はまっていた当時の[コード](#code)

![概要.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/600486/28293a48-bdcc-bef8-a532-6c43614485c9.png)

目的の動作は上記の絵の通り。
ビルドは問題なくできているのに、、、

「から揚げ定食」を押した際のlogcatを見てみると、たくさんのエラーが、、、、 [logcat](#logcat)
結果的に以下のエラーを読んだことが修正のきっかけになりました。

“`
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.masashi.things.intentsample/com.masashi.things.intentsample.MenuThanksActiv

元記事を表示

Unity(Vuforia)でAndroid向けの簡単なAR表示アプリを作る方法

#はじめに

UnityでAndroid向けの簡単なAR表示アプリを作ります。
今回はマーカー画像を読み取って3Dモデルを表示できるようにします。
Unityのバージョンによってやり方が異なるようなので、本記事を参考にする際は下記の環境を参照してください。
また、本記事ではUnityが既にインストールされており、プロジェクト作成をできる状態を想定しています。

#環境

+ Windows10
+ Unity 2019.2.18f1
+ Android SDK & NDK Tools
+ Vuforia Endine AR 8.5.9 (ARコンテンツを作成するためのライブラリ)
+ Android 9.0

#必要な物

+ Unity (バージョンは上記の通り)
+ Android端末 (Androidの開発者モード設定などを済ませておく)
+ マーカーにする画像

#準備

Vuforia Engine ARというライブラリからDevelopment Keyを取得しておきます。

###アカウントの作成
[こちら](https://developer.

元記事を表示

ConstraintLayout + ConstraintSetを使ったキーフレーム アニメーション

今まで凝ったデザインとか、アニメーションとか何も使わないで生きてきた人生だったので、最近レイアウト周りで苦労しています。なので、きちんとレイアウトの勉強をしようと思って公式Android developerのレイアウトの章を読み始めました。[ConstraintLayout](https://developer.android.com/training/constraint-layout?hl=ja)の章を読んでいて、**ConstraintSet**を使ってキーフレームアニメーションができる!と言うことが書いてあったので実際に触ってみました。

– [キーフレームアニメーションの公式ページ](https://developer.android.com/training/constraint-layout?hl=ja#keyframe_animations)
– [キーフレームアニメーション紹介の動画](https://youtu.be/OHcfs6rStRo)

今回実際に作ってみたやつがこれです。こう言うのをキーフレームアニメーションって言うんですね?
【Android】Snackbarを任意の位置から表示させる

#概要
Snackbarを画面の下部から出すのではなく、任意の位置から表示させる

#レイアウトファイルでCoordinatorLayoutを入れる
“`xml:fragment_main.xml

元記事を表示

[Android]初回にEditTextにフォーカスを当てる

## 目的
アプリを開いたときや、特定のページに遷移した時に画面内のEditTextにフォーカスを当ててキーボードを表示させておく方法

## 内容
ここでXMLファイルのEditTextのタグを拡張して`requestFocus`タグを内部に追加します

“`activity_second.xml



“`

こうすることで読み込み時にフォーカスを

元記事を表示

文字列の日付を整えて文字列で表示する実例(android kotlin)

文字列を日付型に変換したり、日付型を文字列に変換するやり方はたくさん出てきます。

が、実例が出てこなかったのでまとめておきます。

流れとしては
①string型をparseしてdate型に変換
②date型を、整えたい形のstring型に変換

実例を見た方がわかりやすいかと思います

“`kotlin
val dateStr = “2020-01-02 03:04:05”
// dateStrの形式に””ぴったり””合わせてください↓
val sdf = SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”)
val convertedDate = sdf.parse(dateStr)

val sdf2 = SimpleDateFormat(“年はyyyyで、月はMMで、日はddのHH時mm分、ss秒”)
val resultStr = sdf2.format(convertedDate)
“`

resultStrには
「年は2020で、月は01で、日は02の03時04分、05秒」と出力されます。

あと、sdf.parseをするときに注意なのが、

元記事を表示

自動でAndroidのライブラリアップデートのプルリクエストを送る紹介 (Releases Hub Gradle Plugin + GitHub Actions + buildSrc Kotlin)

# 概要

Releases Hub Gradle PluginでKotlin DSLで依存関係を管理していれば自動でライブラリアップデートのプルリクエストを送る事ができます。

https://github.com/DroidKaigi/conference-app-2020/compare/1f02da06718f3281a1665c2430c1afcec943593f…cf13547
この変更だけでGitHub Actionsがこういう感じのプルリクエストを送ってくれるようになります。かなり手軽に導入できます!
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27388/71194d22-cadd-01bb-4190-c6cf41512f8e.png)

https://plugin.releaseshub.com/ にPrivacy Policyなどありますのので、一読してください。

## Tips

* ./gradlew listDependenciesで事前にバージョン

元記事を表示

OTHERカテゴリの最新記事