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

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

【Android Studio4.1】ベクターアセットが表示されない問題

# Android Studio4.1に更新したら…
ベクターアセットのマテリアルアイコンが表示されなくなりました。
![android_studio.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/827233/58bc84fc-284f-431f-a7e3-1412c1eb55dc.png)

# 解決方法
“`
C:\Users\ユーザー名\AppData\Local\Android\Sdk\icons\material\materialicons
“`
↑ここにマテリアルアイコンがすべて保存されているので、
使いたいアイコンのxmlを、プロジェクトのdrawableフォルダへ手動でコピーすることで解決しました。

## スタックオーバーフローでも…
スタックオーバーフローでも同じことが起きて困っている人がいた。
https://stackoverflow.com/questions/64382564/how-i-fix-nothing-to-show-in-my-vector-asset-in

元記事を表示

CleanArchitecture要素のMVVMサンプル作った

## サンプル

[出来上がったサンプル(GitHub)](https://github.com/kiyoshisaito/MvvmMultiModuleArchitecture)

## アーキテクチャ図

![アーキテクチャ](https://storage.googleapis.com/zenn-user-upload/rth1ntq0cta76fxt834vzvw68dm6)

## 動機

現場のプロダクトで、内部品質を高めるために定期的なリファクタリング習慣を取り入れて行きたく、リファクタリング計画を作るにあたり、目標とするアーキテクチャをはっきりさせたかった。

## アーキテクチャサンプルの概要

CleanArchitecture の考え方を一部取り入れた MVVM です。
構成は以下のようなレイヤーのマルチモジュール構成になっています。
マルチモジュールにしている理由は依存性をシステム的に制御して人為的なミスによる間違った依存関係を生むのを減らすためです。

### モジュール構成と主要ライブラリ
– app
– UI、バックグラウンド系のAndroidコンポー

元記事を表示

flutter android FAILURE: Build failed with an exception. エラーの対処方法

##背景
iOSでのビルドを確認できたので、Androidでも確認しようと、Android Studioを使用してAndroidエミュレータでデバッグしようとして、起きたエラーの原因と解決法を忘却録として残します

##開発環境
PC:macOS Catalina
エディター:Android Studio 4.0.1
エミュレータ:Pixel 3 Android 10.0+ x86

##内容
とりあえず、エミュレータ を起動して、Android Studioのデバッグボタン(Shift + F9)を押して、ビルドをしようとすると以下のようなエラーが発生

“`
userName@MacBook-Pro flutterProject % flutter run
Using hardware rendering with device sdk gphone x86. If you notice graphics
artifacts, consider enabling software rendering with “–enable-software-rendering”.
Laun

元記事を表示

ScrollViewのぐにゃんと動くものの制御

この言葉では表現しにくい、スクロール出来るコンテンツに出てくる**ぐにゃん**と動くものの制御方法についてです。

## it’s ぐにゃん

– ぐにゃんでもうにょんでもいいんですが、スクロール出来るコンポーネントをスライドしたときに出てくるこいつです。
– 正式な名称は**EdgeEffect**ですね。(まずこの名称にたどり着かないと:frowning2:)

![gynyan.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/495289/0584d4bc-70cb-9048-8db8-8a61f2093605.png)

## EdgeEffect について
– APIバージョン `16` から存在している機能
– 何も設定しなければ、`Theme`の`colorPrimary`に設定されている色に20%(0x33)のアルファ値を設定した値が反映されている?(バージョンによって違うかも)

[Code](https://cs.android.com/android/platform/superpr

元記事を表示

#20 Kotlin Koans Collections/Introduction 解説

#1 はじめに

Kotlin公式リファレンスのKotlin Koans Collections/Introductionの解説記事です。

Kotlin Koansを通してKotlinを学習される人の参考になれば幸いです。

ただし、リファレンスを自力で読む力を養いたい方は、
**すぐにこの記事に目を通さないで下さい!**

一度各自で挑戦してから、お目通し頂ければと思います:fist:

#2-1 collection

[colletion](https://kotlinlang.org/docs/reference/collections-overview.html#collection)に関するクラスは多岐に渡ります。
コレクションには以下の3種類がある。

– **List**:順番が決まっている要素の集合
– **Set**:順番が決まっていない要素の集合
– **Map**:キー(key)と値(value)がペアとして入った集合

それぞれ**Mutable**とすると、コレクション生成後に要素を追加・削除することができる。

継承関係がわかっていると、コードの理解が

元記事を表示

【Android】新しいGooglePlayConsoleでアプリを任意のタイミングで手動公開する方法

#はじめに
現時点でまだ従来のバージョンを使用している方には、以下の注意文が表示されていると思いますが
2020/11/01から、GooglePlayConsoleが新しいバージョンへと変更されます。

![注意.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106030/55a2fdc9-c8bb-8a20-4985-b4573ea0f6ba.png)

タイトルの通り、アプリを手動公開する方法を記載しておきます。
※従来のバージョンでの手動公開方法は[**こちら**](https://support.google.com/googleplay/android-developer/answer/9543912?hl=ja)

##手順
1.対象のアプリを選んでいる状態で、画面の左側の**[公開の概要]**を選択。

2.**[管理対象の公開ステータス]** -> **[管理]**を選択。

![1.png](https://qiita-image-store.s3.ap-northeast-1.ama

元記事を表示

Redmi Note 9SにAPKがインストールできない

## はじめに
XiaomiのAndroid端末 `Redmi Note 9S` を入手したので開発に使ってみようと思ったところ
APKのインストールができない現象に遭遇しました。色々と調べたら解決方法がわかったのでメモっておきます。

## Android Studioからデバッグ実行すると…
このようなエラーが出て、APKがインストールされません。

![スクリーンショット 2020-10-21 17.48.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102273/30bf02cb-a4ee-76bb-d818-8c2a270b123b.png)

USBからのAPKインストールが無効になっているようです :thinking:

ADBコマンドでインストールしても同じ結果です 😥

“`
Installation did not succeed.
The application could not be installed: INSTALL_FAILED_USER_RE

元記事を表示

iOS/Androidアプリのセキュリティ関連の参考リンク

ちょっとしたきっかけがあって、iOS/Androidアプリのセキュリティに関して情報を収集する必要がありました。

せっかくなので私が出会った良記事をシェアしたいと思います。

## [OWASP Mobile Top 10](https://owasp.org/www-project-mobile-top-10/)

– OWASPは「Open Web Application Security Project」の略で、「オワスプ」と読むようです。
– ソフトウェアのセキュリティ環境や、セキュリティを高めるための技術を共有・普及することを目的として活動しているボランティア組織だそうです。
– Webアプリの[OWASP Top 10](https://owasp.org/www-project-top-ten/)が有名ですが、OWASP Mobile Top 10はそのモバイルアプリ版です。
– ソフトウェアを開発する上で、セキュリティとして警戒をしなければいけない項目のTOP10をレポートしています。
– 何しろ有名どころなので、まずはこれを押さえる必要があると思います。顧客や上席に

元記事を表示

中華アクションカメラのWiFi遠隔操作機能の中身を知る(しなさい)

#前置き
お酒飲みながらだらだら書いた。いつかちゃんとまとめる。
###背景
単刀直入に言うとカメラの録画と他の測定装置の記録を同期して行いたいという事情が出てきた!要するに、何らかの実験等で計測開始時に「測定器の操作もして…録画ボタンも一緒に押して…」だと手順が多すぎて時間が勿体ないしミスしやすいので、ボタン一発で時系列をそろえて動画と一緒に計測値も記録できる仕組みが必要というわけである。
###昨今多機能高品質になった廉価版アクションカメラ
GoProのような高級品を~~買えない~~荒い使い方できないし、ある程度の品質で目的を達成できれば十分というユーザーは一定数存在する。最近は4K画質や60FPSの動画に対応した機種も1万円以内で購入できるようになった。ここで特筆すべきはWiFi接続によりスマートフォンから録画ボタンの操作や、ファインダー越しの映像を確認できる機種が登場してきたことである。従来のようにカメラの筐体に触れることなく遠隔で操作できるようになったことで、危険が及ぶ場所や人の存在が介入することのない自然な環境においての録画が安価で可能となった。

調べてみても、案外中華ア

元記事を表示

【超初心者向け】Android入門 LinearLayout編

#はじめに
今回はLinearLayoutについて解説していきたいと思います。
前回まではTextViewやButton、EditTextなどパーツについての説明をしてきましたが、今回のLinearLayoutはその複数パーツを表示するためのものになります。

前回まではTextViewなどのコードをコピペして貼り付けるだけで表示できましたが、今回のLinearLayoutを学ぶと思うままにパーツを設定できて自分好みのUIが出来るようになるでしょう!

# 記事の対象
– Androidアプリ開発初心者
– 前回の記事を読んだ方
– Androidをこよなく愛する方

#LinearLayoutとは
はじめに書きましたが前回までのパーツとは違い、今回のLinearLayoutとはパーツを並べていくためのViewになります。
パーツを並べるためのViewはいくつかあります。

– LinearLayout
– RelativeLayout
– FrameLayout
– ConstraintLayout
– etc…

今回はその中でも最も多く使うLinearLayoutについての解

元記事を表示

【Android/Java】超シンプルなOptionMenuの作成(API非実装)

## はじめに
Android開発歴1週間の超ビギナーです。
アウトプットとして簡単なOptionMenuを作成してみました。
これを実装するだけでも、かなり時間かかったので同じビギナーの方の参考になれば幸いです。
※記載量を省略すべく、stringsファイルは使用しておりません。

## アプリの概要
画面右上に設置した保存ボタンを押すと、表示されているメッセージが変更するという超シンプルなアプリ
 

## 各ファイルのコード
### オプションメニューの表示レイアウト設定

元記事を表示

【Android】【OpenCV】OCRの前処理のための画像処理(二値化・角度補正)

# はじめに
Androidネイティブアプリで、カード状のものを写真で撮影してOCRを実行したかったのですが、
OCRの前処理として角度補正などの画像処理を行う必要がありました。

画像処理といえばOpenCV、ということで情報を探してみると、ちょうどやりたいこととぴったりな記事を発見しました。
[OpenCVを使って免許証を角度補正(射影変換)する-二値化の閾値も自動で決定-](https://qiita.com/nrnrk/items/7aecba89ffb02f0b8d12)

こちらの記事はPythonで書かれていたので、Android(Kotlin)向けに書き換えてみました。
※ PythonもOpenCVもほぼ初心者のため、誤りがあったらすみません。

# 環境

– Android Studio 3.6.2
– Kotlin 1.3.61
– OpenCV 4.5.0

Android StudioにOpenCVを導入する手順については、以下の記事を参考にさせていただきました。
[Android StudioでOpenCVを使う](https://qiita.com/ti

元記事を表示

[memo]ActivityResultContractでActivity間通信を行う

#準備
“`build.gradle(app)
implementation(“androidx.activity:activity-ktx:1.2.0-alpha06”)
implementation(“androidx.fragment:fragment-ktx:1.3.0-alpha06”)
“`

#結果を受けとるActivity or Fragment側
“`xxx.kt
private val launcher: ActivityResultLauncher = registerForActivityResult(
ActivityResultContracts.StartActivityForResult()
) {
if (it.resultCode == Activity.RESULT_OK) {
doSomething()
}
}
“`
※公式ドキュメントではprepareCallとあるが、ライブラリバージョンアップ時にregist

元記事を表示

#19 Kotlin Koans Conventions/Invoke 解説

#1 はじめに

Kotlin公式リファレンスのKotlin Koans/Invokeの解説記事です。

Kotlin Koansを通してKotlinを学習される人の参考になれば幸いです。

ただし、リファレンスを自力で読む力を養いたい方は、
**すぐにこの記事に目を通さないで下さい!**

一度各自で挑戦してから、お目通し頂ければと思います:fist:

#2 Invoke関数

[Invoke関数](https://kotlinlang.org/docs/reference/operator-overloading.html#invoke)は、関数の呼び出しが通常の呼び出しより簡易になるという特徴を持ち、**()**だけで参照することができます。

つまり、

通常の関数呼び出しならば`a.invoke()`のようになるところが、

`a()`で呼び出すことができます。

ただし、本文のほうにも注意喚起がありますが、

あまり使いすぎるとコードの可読性が低下してしまうので注意が必要です。

#3 Conventions/Invokeの解説

[Kotlin Koans Conve

元記事を表示

#18 Kotlin Koans Conventions/Destructuring declarations 解説

#1 はじめに

Kotlin公式リファレンスのKotlin Koans/Destructuring declarationsの解説記事です。

Kotlin Koansを通してKotlinを学習される人の参考になれば幸いです。

ただし、リファレンスを自力で読む力を養いたい方は、
**すぐにこの記事に目を通さないで下さい!**

一度各自で挑戦してから、お目通し頂ければと思います:fist:

#2 Destructuring Declarations

[Destructuring Declarations](https://kotlinlang.org/docs/reference/multi-declarations.html)

Destructuring Declarationsとは、複数の変数を同時に宣言できる仕組みです。

以下では、`name`と`age`という2つの変数が同時に宣言されています。

“`
val (name, age) = person
“`

各要素は別々に利用することが可能です。

“`
println(name)
println(age

元記事を表示

Flutter系の記事のまとめ

# まとめ
* 自分のFlutter関連の記事を整理しました
* 自分が一番の読者なのでw

## Bitfinexアプリ系

実際のアプリを通して1通りの機能を整理

* [Flutter/DartでBitfinexのレンディングアプリを作る(Part1 インストールと画面作成/画面遷移)](https://qiita.com/kazutxt/items/e4f3bbb4d8b301f4141c)
* [Flutter/DartでBitfinexのレンディングアプリを作る(Part2 stateful/データの永続化)]
(https://qiita.com/kazutxt/items/c114bb6f6bf6969cfa58)
* [Flutterの”Widget of the Week”がめっちゃ勉強になったので、まとめてみた](https://qiita.com/kazutxt/items/10355961ee2fa3a65023)
* [Flutter/DartでBitfinexのレンディングアプリを作る(Part3 グラフ描画/ファイル分割/設計書/アイコン)](

元記事を表示

#17 Kotlin Koans Conventions/Operators overloading 解説

#1 はじめに

Kotlin公式リファレンスのKotlin Koans/Operators overloadingの解説記事です。

Kotlin Koansを通してKotlinを学習される人の参考になれば幸いです。

ただし、リファレンスを自力で読む力を養いたい方は、
**すぐにこの記事に目を通さないで下さい!**

一度各自で挑戦してから、お目通し頂ければと思います:fist:

#2 plus()関数/times()関数

いずれの関数も**operator修飾子**がついており、

`a + b` が`a.plus(b)`

`a * b` が`a.times(b)`

を表現します。

([Operator overloading](https://kotlinlang.org/docs/reference/operator-overloading.html))

#3 Conventions/Operators overloadingの解説

[Kotlin Koans Conventions/Operators overloading](https://play.ko

元記事を表示

#16 Kotlin Koans Conventions/For loop 解説

#1 はじめに

Kotlin公式リファレンスのKotlin Koans/For loopの解説記事です。

Kotlin Koansを通してKotlinを学習される人の参考になれば幸いです。

ただし、リファレンスを自力で読む力を養いたい方は、
**すぐにこの記事に目を通さないで下さい!**

一度各自で挑戦してから、お目通し頂ければと思います:fist:

#2-1 for構文

[for loop](https://kotlinlang.org/docs/reference/control-flow.html#for-loops)
forを用いることで繰り返し処理を記述することができます。

forを用いた構文にはいくつか種類があります。

“`
(例1)
for(i in 1..10){
print(i)
}

実行結果は、12345678910

(例2)
val collecion = listOf(1, 2, 3)
for (i in collection) {
print(i)
}

実行結果は、123

“`
(例1)の構文は

“`
for

元記事を表示

Ionic+Angular 環境構築からアプリビルドまで

## 環境
– macOS v10.15.5
– npm v6.13.4
– Ionic v6.10.1
– Xcode v12.0.1
– Android Studio v4.0.1

## Ionic環境構築
Nodeを以下からインストールします
https://nodejs.org/ja/

Ionic CLIをインストールします

“`
% sudo npm install ionic -g
“`
## Ionic+Angularプロジェクトを作成
以下コマンドでIonic+Angularプロジェクトを作成します

“`
% ionic start –type=angular
“`

以下のように聞かれるので`? Project name:`の後に任意のプロジェクト名を入力します

“`
Every great app needs a name! ?

Please enter the full name of your app. You can change this at any time. To
bypass this prompt next time, su

元記事を表示

AndroidにおけるJSR-310実装

ちょっとツイッターに流れてきた情報を見て気になったので改めて調べてみました。

[https://twitter.com/red_fat_daruma/status/1268177028915716102:embed]

## TL;DL
– ThreeTenABPでJSR-310を利用する場合は環境によらず同じtz databaseを参照する(はず
– desugaringでJSR-310を利用する場合は実行環境により異なるtz databaseを参照する(はず

## java.util.Date と JSR-310
java.util.Dateが使い勝手が悪いことは良く知られており、Java SE 8ではjava.util.Dateを置き換える`Date and Time API`が追加された。このAPIはJSR-310として標準化されており、インターフェースがデベロッパーフレンドリーであるだけでなくインスタンスがイミュータブル、スレッドセーフといった機能的な優位性を持つ。[1]

## AndroidでのJSR-310実装方法の変遷
前述の通りJSR-310はJava SE

元記事を表示

OTHERカテゴリの最新記事