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

Android関連のことを調べてみた2021年02月08日
目次

【Flutter】iOS/Android/WebでGoogleMapを表示する

# はじめに
昨年後半よりFlutter入門して社内用アプリを作っていたけど、Webで地図表示したい!って思い、トライしてみた。

ぶっちゃけ、パッケージのReadmeをそのままやっただけですが….

# 更新履歴
2021.2.8 初回投稿

# 環境
– macOS Big Sur(11.2)
– Flutter (Channel beta, 1.26.0-17.2.pre, on macOS 11.2 20D64 darwin-x64,
locale ja-JP)
– Android toolchain – develop for Android devices (Android SDK version 30.0.3)
– Xcode – develop for iOS and macOS
– Chrome – develop for the web
– Android Studio (version 4.1)
– VS Code (version 1.53.0)

# 準備
– FlutterのChannelをbetaにしておくこと
– GoogleMa

元記事を表示

【Flutter】エラー対応 assets_audio_player

#エラー内容

下記Gitでイシューに上がっていますが、根本的な解決策はまだ挙がってなさそうです。
https://github.com/florent37/Flutter-AssetsAudioPlayer/issues/399

“`
e: /Users/yo4hi6o/flutter/.pub-cache/hosted/pub.dartlang.org/assets_audio_player-2.0.13+1/android/src/main/kotlin/com/github/florent37/assets_audio_player/Player.kt: (542, 5): ‘handleMessage’ overrides nothing
e: /Users/yo4hi6o/flutter/.pub-cache/hosted/pub.dartlang.org/assets_audio_player-2.0.13+1/android/src/main/kotlin/com/github/florent37/assets_audio_player/Player.kt: (54

元記事を表示

[Android]Realmってなんか名前かっこいいから、良く分からないけども使ってみる

#Realmってかっこ良さそう!なんそれ?編
普通、クラスで宣言された文字や数値はアプリ(画面)を開く度に初期化されます。
なので、アプリで特定のデータを保存しようと思ったら、データベースを使う必要があります。
データベースは、アプリを利用している時だけでなく、消した後も保存されるのです。

そのデータベースの一種が、Realmというわけです。

ちなみに、今回使うRealmはローカルデータといってアプリ内でデータを保存することができるのですが、アプリ自体をアンインストールしてしまったら、保存されたデータを使うことはできないのでそこだけは注意です。
#Realm使っちゃう編
早速使ってみます。今回は、本当にシンプルに文字を保存して、それを取り出すだけのシンプルな実装でいきます。データベースと言っても、箱みたいなもんですね。それと、正確さに欠けている部分アリの自信があるので、優しく指摘してくれると幸いです。それと、Fragmentでの実装すまぬ。

######使うための準備
“`gradle
//appの方ね
plugins {
id “kotlin-android”

元記事を表示

WebViewの値をAndroid側で取得する

WebViewで表示されているHTMLの内容から、特定の値をAndroid側で取得します。

考え方としてはHTMLページ内にAndroidからJavaScriptを注入して、JavaScriptからAndroidのコードを実行することで値のやり取りをします。

まずメインとなるコードから。

“`kotlin
val webView: WebView = requireActivity().findViewById(R.id.web_view)
webView.webChromeClient = WebChromeClient()
webView.webViewClient = CustomWebViewClient()
webView.settings.javaScriptEnabled = true
webView.addJavascriptInterface(WebAppInterface(requireContext()), “Android”)
webView.loadUrl(url)
“`
– webChromeClientをセットしないとJavaScriptが実行で

元記事を表示

jCenterで公開していたKotlinライブラリをMaven Centralで公開する

**[Into the Sunset on May 1st: Bintray, JCenter, GoCenter, and ChartCenter](https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/)**

jCenterが閉鎖するってことなので、jCenterで公開していたKotlinのライブラリをMaven Centralに登録することにしました。やり方はわかりやすく解説している記事がたくさんありますが、Kotlin特有のところで詰まったりしたので自分なりにまとめてみようかと思います。

やり方はいくつかあるらしいのですが、Sonatype経由で登録するのが簡単らしいです。

作業に当たり以下の記事を参考にさせていただきました。 :pray:

– [Maven Central Repository への公開手順(Gradle版)](https://blog1.mammb.com/entry/2020/02/19/090000)

ほとんど同じ内容なのとこっちの方が丁寧

元記事を表示

GitHub ActionsでAABファイル生成のCDを構築する方法

## はじめに

GitHub Actionsを使い、AABファイルを生成するCDを構築します。

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

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

## 事前準備: ローカルでAABファイルを生成できるようにする

私が以前書いた記事を参考にして、ローカルでAABファイルを生成できるようにします。
https://qiita.com/uhooi/items/3bee37d763642c703738

## キーストアのエンコード

2021/02/06現在、GitHubではファイルを安全に管理する方法がないため、機密ファイルは文字列に変換する必要があります。

キーストアをBase64形式でエンコードします。
ローカルで以下のコマンドを実行します。

“`shell-session
$ base64 ./app/release.keystore
“`

標準出力された内容から __改行を

元記事を表示

jCenterが閉鎖されるらしいので一旦Github Pagesを野良mavenリポジトリにして待避した話

**[Into the Sunset on May 1st: Bintray, JCenter, GoCenter, and ChartCenter](https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/)**

jCenterが閉鎖するってことでもう大変ですね。自分が使っているOSSの作者さんは期日までに移行してくれるのかとか戦々恐々としているところでしょう。
一方、ライブラリを公開している人間としては、早く移行先探さなきゃ!そもそも今まで公開してたのどうするよ!という状態じゃないでしょうか。というか私だ。

旧バージョンは移行できない可能性があるし、そもそも新バージョンも期日までに全部対応しきれるのか?状態なので、一旦bintrayに全くアクセスできなくなっても大丈夫なようにお手軽にできるバックアッププランを実行しておくことにしました。

# 今までアップロードしたファイル群を全部落とす

bitrayにアップロードした過去のファイル群を一旦手元に落とします。
といっても一括

元記事を表示

Tokenを用いて、AndroidStudioとGitHubを連携させる

AndroidStudioとGitHubを連携させようとした際、GitHubのユーザーIDとパスワードを用いた連携が出来なかったため、代わりとして行った処置をメモしておきます。
なお、Gitがインストール済みであり、GitHubのアカウントを所持していることが前提となります。
##AndroidStudioでログインフォームを開く
上のメニューから、
VCS → Import into Version Control → Share Project on GitHub
と進んでいきます。
![Qi1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1086769/8b9df131-5114-5470-d7b5-bb32c036735c.png)

すると下のような画面が現れ、GitHubのIDとパスワードを求められます。![Qi2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1086769/bfa220fc-5822-a

元記事を表示

M1 Mac Book AirにしたらAndroidStudioのビルド時間が37%になった話

## 概要
Qiitaで**「M1 Mac AndroidStudio」**と検索したところ、意外にもM1 Macでのビルド速度比較結果に関する記事がなかったので、実際に**M1 Mac Book Air**で**Gradle**を**AppleSilicon対応**させた手順の忘備録も兼ねて、**ビルド時間を比較**しました。
当然プロジェクトの内容によって実際のビルド時間は差が出ると思いますが、一つの参考になれば幸いです。
## 使用した各種バージョン
### Android Studio – Android Studio Arctic Fox 2020.3.1 Canary 4
https://developer.android.com/studio/archive よりDL
これ自体はIntel版。Gradle7を使うためにInteliJのAndroidパッケージが4.3以上必要なので利用
![スクリーンショット 2021-02-06 14.47.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.

元記事を表示

Kotlin 生体認証(指紋認証、顔認証)

こんにちはmessiです。
Androidエンジニアしてたり、Flutter触ったりしてます。
Twitterはこちら -> https://twitter.com/175Atsu175

今回はAndroidの生体認証の実装について紹介します。

## はじめに
AndroidXの生体認証コンポネントBiometricPromptが正式リリースされた。
サポート対象はAndroid6.0以上
これまで使われていたFingerPrintManagerは非推奨になりました。
指紋認証を事前に端末登録しておかないと動作しません。(端末の設定でアプリに指紋認証の使用の許可してないといけないこともあるそうです。)

今回顔認証も試してみたかったのですが、自分の所有端末が顔認証非対応だったので試すことができなかったのですが、このコードで顔認証も出来るようなので試してみてください。
pixel4なら出来るっぽいです。
[引用]
https://stackoverflow.com/questions/63629458/face-authentication-using-androidx-biomet

元記事を表示

[Android]RoomでInsert時にOnConflictStrategy.REPLACEを使う際の注意点

Android のプロジェクトで Room を使用してハマったことがあったので共有したいと思います。

結論から言うと、`ForeignKey` で指定される Entity があった場合、その Entity を Insert する際に `OnConflictStrategy.REPLACE` を使用してはいけません。

## 理由

Dao で `@Insert` アノテーションに `OnConflictStrategy.REPLACE` を指定すると、SQL 的には `INSERT OR REPLACE` 文が実行されます。

SQLite の仕様では `INSERT OR REPLACE` 文では既存の行を削除した上で、行を追加、更新するようになっています。

参考: https://sqlite.org/lang_conflict.html

>When a UNIQUE or PRIMARY KEY constraint violation occurs, the REPLACE algorithm deletes pre-existing rows that are caus

元記事を表示

Firebaseに保存した際に、そのTimestampを取得する方法(Android)

使用環境
ソフト Android Studio
言語 Java

Firebaseにデーターを保存するときに、タイムスタンプを取得する方法について解説します。

ちなみに、タイムスタンプというのは画像でいうと以下の-MSから始まるもののことで、保存先が重複しないようにFirebaseが発行しているサーバー時間のようなものです。
![キャプチャ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/315874/4ea79df0-8da7-6cfb-79b5-538fbbaa1955.png)

タイムスタンプは、保存時に.push()を入れることによって、発行できます。
そのため、
“`refMag.push().setValue(“保存する内容”)
“`
ではなく
“`refMag.child(“タイムスタンプに変わる文字列”).setValue(post)
“`
にすることで、タイムスタンプの部分を好きな文字列に変えることが出来ます。ただし、タイムスタンプは重複を防ぐためには欠かせないものなので、.

元記事を表示

ConstraintLayoutとwrap_contentを両立させる

# 制限をつけて左右に寄せたい
左右の場合はlayout_constraintLeft_~とlayout_constraintRight_~で制限をつけた上でlayout_constrainedHorizontal_biasを設定します。0.0~1.0の間でbiasを設定でき、0.0だと左、1.0だと右に寄ります。

![スクリーンショット 2021-02-05 0.44.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/133311/70ced2c0-7a9f-46bb-88e3-d59d869cd35b.png)

“`xml

元記事を表示

【Android】特定のリンクをアプリ内で開く(WebView)

## はじめに
アプリ内でWebページ(Qiita)を開き、
なおかつ、自分の記事をタップしたときはアプリ内でページ遷移、
それ以外(Homeボタン)をタップしたときはデフォルトブラウザを起動して開く実装をしてみた。

|アプリ内(WebView)で開いたとき|デフォルトブラウザ(Chrome)で開いたとき|
| —- | —- |
|![webView.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670405/b88f7523-5c1b-efb6-c655-d9e9bc3d230b.gif)|![default.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670405/713cd96f-3eb5-8f61-ca06-1bb4f72e035d.gif)|

## WebViewについて
WebViewクラスは、Viewクラスの拡張。
WebViewを使うことで自分のアプリ内でウェブページまたは他アプリを開くこ

元記事を表示

Android : Firebase Authenticationを用いたGoogleアカウント認証をKotlinで実装

#この記事で紹介すること
FirebaseのAuthenticationを用いてGoogleログイン/ユーザー登録を実現する方法を紹介します。

プロジェクト(アプリ)をFirebaseに登録していることが前提です。
まだできていない方は[公式ドキュメント|AndroidプロジェクトにFirebaseを追加する](https://firebase.google.com/docs/android/setup?hl=ja)を参考に、まずはアプリの登録から行ってください。

またこの記事は私がアプリを作る中でドキュメントを参考にしてコードを書き、ドキュメント通りにいかなかった部分もあったため、あえて記事としてまとめています。参考にした公式ドキュメントは以下です。[Android で Firebase Authentication を使ってみる](https://firebase.google.com/docs/auth/android/start?hl=ja)

#Firebase Authenticationを使ってGoogleアカウントでログイン/ユーザー登録ができるようにしよう!

元記事を表示

Androidアプリを開発した話

##概要
去年の夏頃、このようなAndroidアプリを開発しました。
>○ MessengerApp TELL
>[アプリケーション紹介HP](https://lit-oasis-15875.herokuapp.com/)
>[Github](https://github.com/matsuokanao/MessengerApp)

ちなみにアプリケーション紹介HPも自分で作成してみました。
【Android】adbのデモモードを使って、ステータスバーをキレイにする方法

Android端末では、ステータスバーからアプリの通知などが一目で確認でき、便利ですよね。

ただ、画面のスクリーンショットを見た際に、ステータスバーがゴチャゴチャしていると、微妙な気持ちになることもあります。

例えばこんなスクリーンショットがあった場合…

↑ 「なんかいっぱい通知来ているし、充電33%だからそろそろ充電したほうが良さそう」など…

そこでこの記事では、adbのデモモードを使って、ステータスバーをキレイにする方法をご紹介したいと思います。

[Demo Mode for the Android System UI](https://android.googlesource.com/platform/frameworks/base/+/master/packages/SystemUI/docs/demo_mode

元記事を表示

[UE4] Androidパッケージ作成失敗時に “Run with –stacktrace option to get the stack trace…” というエラーログが出力された時にすること

# はじめに
UE4でAndroidパッケージを作成すると、以下のようなエラーログが出力されてパッケージングに失敗することがあります。

“`cpp
UATHelper: Packaging (Android (ASTC)): FAILURE: Build failed with an exception.
UATHelper: Packaging (Android (ASTC)):
UATHelper: Packaging (Android (ASTC)): * What went wrong:
UATHelper: Packaging (Android (ASTC)): Execution failed for task ‘:app:linkDebugManifestForAssetPacks’.
UATHelper: Packaging (Android (ASTC)): > A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFa

元記事を表示

【Flutter + microCMS】ランダムストレス解消アプリ作ってみた

## 0. はじめに

– [**【Windows編】FlutterとCodemagicを使ってAndroid/iOSアプリを生成するまで**](https://qiita.com/i-tanaka730/items/a00b82701ccdf13883b3)

↑を書いたとき、Flutterアプリ作るよーと言っておきながら、全然手を付けていませんでした:cold_sweat:w
いや、言い訳すると、アプリは作ってあったんですけど、記事を書いていなかったんです!w

ということで、以前使ってみたmicroCMSが面白かったので、今度はFlutterと連携したアプリを作ってみました。
以下は過去に投稿したmicroCMS関連の記事になります。

– [**【Nuxt.js + COTOHA API + microCMS】COTOHAチックなフラッシュカード作ってみた**](https://qiita.com/i-tanaka730/items/3f97a9d1d668f424fc50)

## 1. どんなアプリ?
ストレス解消法をランダムに表示するアプリです。
※現状は10件しかデータ

元記事を表示

【2021年最新】アプリ開発者・運営会社向けセキュリティ商品ランキング

アプリケーションの増加に伴い、セキュリティにおける脅威も日々増加し続けています。高い開発技術を保有していたとしても、セキュリティ上の観点から課金・送金の限度額やアプリの各種機能を制限するケースなどが多く見られます。

アプリを運営する上で付きまとうこれらの脅威に対し、“脆弱性の診断”や、“堅牢化”などの対抗サービスも充実してきており、それぞれの特色により機能も大きく異なってくるため、あなたのアプリに合ったサービスを利用することが重要です。

そこで今回はアプリを開発・運営する上でのセキュリティ7商品を、ランキング形式でご紹介します。アプリのセキュリティを考えられている方はぜひ参考にしてみてください!

7位 [株式会社IERAE SECURITY](https://ierae.co.jp/)
![図7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1078265/82b0554a-f79d-242a-6f17-d17ce952bee3.png)
参考サービスページ:https://ierae.c

元記事を表示

OTHERカテゴリの最新記事