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

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

[Android] Google Map APIキーのセキュリティ設定

# Google Map APIキーのセキュリティ設定
Android StudioからSHA-1キー(フィンガープリント)を作成する。
その後、Google Cloud PlatformにAPI キーの制限にこのSHA-1キー(フィンガープリント)を設定する。
# Android Studio
### Android StudioからSHA-1キーを作成する
**1. Modules で Signing Config 設定する**

– Project Structureをクリックする 1-1
ss_1.1.1.png

– Signing Configを設定する 1-2
ss_1.1.2.pngAndroidアプリのアプリ名

#アイコンと一緒に表示されるアプリ名
/res/vales/string.xml の,
下記の名称(●●)がアプリ名として表示される。

●●

このタグ自体がない場合は、package名が表示される。

多言語対応のときはどうするんだろう?

元記事を表示

ViewBinding導入後binding経由で Button等にアクセスできない方へ

# 対象
ViewBindingを導入後にonCreateViewを弄らないまま、
binding.fab.setOnClickListnerのようなことをして、動かない方

# 解決方法
“`kotlin:HogeFragment.kt
private lateinit var binding: HogeFragmentBinding

override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = HogeFragmentBinding.inflate(inflater,container,false)
return binding.root
“`
とすることで解決すると思います。

# 考えられる原因

“`kotlin:HogeFragment.kt
private lateinit var bind

元記事を表示

Android Roomリレーション(初学者向け)

# はじめに
チーム開発でRoomに触れる機会があったため、初学からリレーションを組めるまでの導入を備忘録ついでに書こうと思います。
より良い書き方を見つけ次第随時更新かけていきます!
説明から書いているので、実装だけ見たい方は実装に飛ぶことをお勧めします!

# 導入
まず、Roomとはどのようなものかをざっと説明すると
[“`Room 永続ライブラリは SQLite 全体に抽象化レイヤを提供することで、データベースへのより安定したアクセスを可能にし、SQLite を最大限に活用できるようにします。
“`](https://developer.android.com/topic/libraries/architecture/room?gclsrc=aw.ds&&gclid=Cj0KCQjwm9D0BRCMARIsAIfvfIbpUmUXS-374njJ-sfwZw54fFzUW1k9vFS_rFGVr2OtkueTG8Y-crQaAjvxEALw_wcB)
(AndroidDevelopersより引用)
Roomは[AndroidJetpack](https://develope

元記事を表示

Kotlinの静的解析ツール「detekt」のセットアップ&操作方法

## 「detekt」とは?

Kotlin用の静的解析ツールです。

## 環境

– OS:macOS Mojave 10.14.6
– Kotlin:1.3.61
– Gradle:5.6.4
– Gradle plugin:3.6.2
– detekt:1.7.4

## セットアップ

### インストール

appフォルダ配下の「build.gradle」にdetektのプラグインと設定を追加します。

“`diff:/app/build.gradle
+ apply plugin: ‘io.gitlab.arturbosch.detekt’
+
+ detekt {
+ failFast = true
+ buildUponDefaultConfig = true
+ config = files(“$projectDir/config/detekt/detekt.yml”)
+ baseline = file(“$projectDir/config/detekt/baseline.xml”)
+
+ reports {
+

元記事を表示

【ReactNative】run-androidでINSTALL_FAILED_VERSION_DOWNGRADEエラーが出る

# 概要
`react-native`で開発をしていると割と遭遇する事象なので備忘として。

# 何が起きたか
例えば、製品に何らかのバグが発生したとの報告を受けたので、とりあえず`Git`から製品版のソース(以下`product`)を取得してきて再現させた場合を想定。

“`
git checkout product
react-native run-android
“`

バグが再現されることを確認したので、ブランチ(以下`xx-hogehoge`)を切ってそちらで作業することにした。

“`
git checkout xx-hogehoge
react-native run-android
“`

ここで下記のエラーが発生。

“`
* What went wrong:
Execution failed for task ‘:app:installDebug’.
> com.android.builder.testing.api.DeviceException: com.android.ddmlib.InstallException: INSTALL_FAILED_VE

元記事を表示

眺めて覚える C# Xamarin Button(4) Toast Image Sound

# Buttonに画像を表示する。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274715/9c85a13f-5453-91a4-5d80-ec54675f1857.png)
**Xamarin Formsを選択する。**
**Windows APPを作成するような感覚で開発できる。**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274715/cdb68f92-45df-67f7-712a-7fcca2aadff6.png)
**空白のプロジェクトを作成する。**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274715/01aa9f5d-ea92-b95f-8161-d896291cae12.png)
**MainPage.xamlは、そのまま使います。**

“`MainP

元記事を表示

Qiitaのユーザページから消えたタグの円グラフを取り戻す

# 初めに
Qiitaのユーザーページが改変され、以前はユーザページに表示されていた、タグの円グラフが表示されなくなりました.

参考:
[Qiitaユーザページリニューアルで無くなった機能とその代替手段](https://qiita.com/suin/items/ec9a04c17d7bdd199960)

そこで、僕が以前趣味で作ったQiitaのクライアントアプリ上で、タグの円グラフの機能を再現してみようと思います.
ちなみに、前回作ったときに書いた記事はこちら↓
[モバイル初心者がQiitaのスマホアプリを個人開発した話【React Native】](https://qiita.com/kazu914/items/ac9881565ed5cdfe86b1)
アプリ自体はこんな感じ↓

|![eyecatch.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/475291/febd75fe-038a-4d86-75ea-4277fcc9f829.png)|
|:-:|

完成図はこんな感じ↓

|!

元記事を表示

ActivityResultContractを使ってonActivityResultに別れを告げよう

## はじめに
皆さんは`onActivityResult`はお好きですか?
`requestCode`と`resultCode`の字面が似ていて間違えやすかったり、`if`や`when`によってコードの見通しが悪くなりやすいので個人的にはあまり好きではありません。
そんな悩みを解決してくれる`ActivityResultContract`が最近発表されたktxのアップデート(2020/04/12時点ではα版)に来たようなので纏めておきます。

## 検証
検証用に2画面だけの雑なアプリを作りました。
![activities.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68671/5e217272-5c20-232e-be58-44ec617dc89a.png)

### Before
`MainActivity`はボタンを押すと`startActivityForResult`で`SecondActivity`を起動し、`SecondActivity`が終了されると`onActivityResul

元記事を表示

眺めて覚える C# Xamarin Button(3)

#たくさんボタンを配置する。
#Visual Studio 2019でプロジェクトを作成する。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274715/9c85a13f-5453-91a4-5d80-ec54675f1857.png)
**Xamarin Formsを選択する。**
**Windows APPを作成するような感覚で開発できる。**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274715/cdb68f92-45df-67f7-712a-7fcca2aadff6.png)
**空白のプロジェクトを作成する。**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274715/01aa9f5d-ea92-b95f-8161-d896291cae12.png)
**MainPa

元記事を表示

Github ActionsでマルチモジュールAndroidプロジェクトのCI環境を整えよう(ビルド/Slack通知/Danger/ktlint)

# はじめに

2019年ごろにBeta版が出たGithub Actions、気になってはいたもののまだ触ったことがなかったので今回Androidリポジトリで動くCIをGithub Actionsで構築してみました。

これまでCIはBitriseしか使ったことがなかったのですが、無料版だと1回のビルド時間が10分までだったり、チームメンバーが合計3人までしか使用できないので、これを機にGithub Actionsに乗り換えることにしました。

マルチモジュールで気をつけるところはDanger周りくらいで、基本的にはシングルモジュールと変わらないかと思います。

まだまだ改善できそうなところは多いので、是非教えていただければ幸いです。

※こちらは趣味で一緒に開発しているメンバー向けの解説記事でもあります。

# Github Actions基礎知識
## サービス概要

– 20jobまで並列実行できる
– 1度のビルド時間のリミットは6時間(Bitriseの36倍ですねw)

この時点でもうBitriseから乗り移ろうと決めたのですが、開発をする上で欠かせないGithub上で完

元記事を表示

【2020年版】Android Studio Javamailを使ってメールを送信する方法

[Android ゼロからJavamailを使ってメールを送る方法](https://qiita.com/usatie/items/e71b9bb34963b74a8b57)を参考にAndroid Studioでアプリから直接メールを送信するプログラムを書いてみましたが、エラー続出でビルドできませんでした。
検索しても大体の記事が2017年以前に書かれたもので(私のやり方が悪かったのか、もう時代遅れなのか)どれもうまくいかないので、最新の導入方法を探ってみました。

###結論:jarファイルをダウンロードしてライブラリにインポートするやり方はもう古い!
調べて見つかった記事によく書かれている方法は、javamail-androidから3つのjarファイルをダウンロードしてきて、手動でAndroid Studioのlibsフォルダーにコピーして導入するものでした。
しかし、そんな面倒なことをしなくてもbuild.gradleに記述するだけで導入できることが分かったので、やり方を書いておきます。

##:one: AndroidManifest.xmlに記述(インターネットアクセス許可)

元記事を表示

眺めて覚える C# Xamarin Button(2)

#ボタンをタッチして表示するプログラム。
#Visual Studio 2019でプロジェクトを作成する。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274715/9c85a13f-5453-91a4-5d80-ec54675f1857.png)
**Xamarin Formsを選択する。**
**Windows APPを作成するような感覚で開発できる。**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274715/cdb68f92-45df-67f7-712a-7fcca2aadff6.png)
**空白のプロジェクトを作成する。**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274715/01aa9f5d-ea92-b95f-8161-d896291cae12.png)

#

元記事を表示

Androidアプリのビルド環境Dockerイメージ制作

# Androidアプリのビルド環境Dockerイメージ制作

gitlab-ciで、Androidアプリのビルドを行う際に、openjdkのイメージを元に、毎回環境を作っていてパイプラインの時間が長いので、ビルド環境Dockerイメージを制作した際にあったいろいろな事を記録しておきます。

# ビルド環境として必要なもの

Androidアプリのビルドを行うために必要なものは、基本的には以下のものが必要となります。

– Java Development Kit(以下、JDK)
– Javaの開発キットです。コンパイラなど開発に必要なツールを含みます。
– openjdkを使います。
– [Android command line tools](https://developer.android.com/studio)(以下、CLT)
– AndroidSDKや必要となるパッケージをインストールするsdkmanagerが含まれます。
– sdk-toolsとcommandlinetoolsがあります。以前は、sdk-toolsでしたが、現在comman

元記事を表示

Fused Location ProviderでKotlin FlowとLiveDataを再入門してみた(続き)

本記事は[Fused Location ProviderでKotlin FlowとLiveDataを再入門してみた](https://qiita.com/ibara1454/items/cd2322fdfcfc709538e9)の続きです。

このCodeLabのサンプル[Building a Kotlin extensions library](https://codelabs.developers.google.com/codelabs/building-kotlin-extensions-library/index.html)はおそらく初心者でも読めるようにするため、あえてViewModelとかを使っていませんが、そんなのこっちの知ったこっちゃない、本気を出していい感じに改造しました。ただの自己満足ですのであしからず。

# 何をやったの?

やってることはすごく簡単です。

– Locationの値は`awaitLastLocation()`と`locationFlow()`で別々だったが、**まとめて一本のflowにした**
– Flowを構築するコードをUIから排除するため

元記事を表示

【Flutter】キーボード外タップで、キーボードを閉じる

## キーボードを閉じるには?

主に以下の2つの方法があります。
今回は、1の方法を紹介いたします。

1. キーボード外の画面タップでキーボードを閉じる
2. キーボード上に閉じるボタンを配置する

## キーボード外の画面タップでキーボードを閉じる

キーボードを閉じる処理は以下のコードです。

“`Dart
FocusScope.of(context).unfocus()
“`

画面タップ時に上記の処理を発火させるには、`GestureDetector`を使用して、以下のように記載いたします。

“`Dart
GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
child: HomePage(),
),
“`

だいたいこんな感じです

“`Dart
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@ove

元記事を表示

RecyclerViewとCardViewを使ってリスト表示(Kotlin)

# 概要
今年から社会人になり、Androidエンジニアとして働かせていただくことになりました。Android開発の経験は全くなく、会社の先輩方に丁寧に教えてもらったことを忘れないうちにまとめていきたいと思います。今回はTodoアプリのようなものを作りたいと思い、そのためにRecyclerViewを使い実装していきます。

# 目標
[TodoMVC](http://todomvc.com/examples/kotlin-react/#?route=any)のようなTodoアプリを目標に作っていきます。今回は以下の画像の様に任意のリストを表示させてみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/289190/cc913e75-b539-459f-1447-5be8f51a2b95.png)

# 環境
– Android Studio 3.6.2
– Kotlin 1.3.71

# 作成手順
## 前準備
RecyclerViewとCardViewを使うために**build.g

元記事を表示

[Flutter]Android端末の戻るボタンを無効にする

# 対応方法
`WillPopScope` で囲い `onWillPop` で falseを返す

“` dart
WillPopScope(
onWillPop: () async => false,
child: Scaffold(
body: _buildBody()
),
);
“`

元記事を表示

【Android】 MaterialAlertDialogで色々実装する

MaterialDialogに関してこういうレイアウトを作りたいと思った時に
どうしたらいいのか忘れることがあったのでレシピブック的な感じでまとめてみました.

## Dialogの導入
### 依存の追加
まずは作成したプロジェクトの`build.gradle`にMaterialDesignの依存を追加します.

“`build.gradle
dependencies {
// …
implementation ‘com.google.android.material:material:
// …
}
“`

``には現在のバージョンを記載します.
執筆時点(4月10日)では安定版が`1.1.0`となります.
最新版についてはGithubの[リリースページ]([Releases · material-components/material-components-android · GitHub](https://github.com/material-components/material-components-android/

元記事を表示

【AndroidStudio】TextClock使用時にデザインビューが表示されない件について

# 概要
先日、AndroidStudioの最新版(3.6.2)をインストールしたのですが、前環境で作成していたアプリのデザインビューが表示されなくなってしまいました。
エラーを確認してみると、「Render problem」と示されています。

いろいろ調べたところ、原因はTextClockの使用にあるみたいです。
stackOverflowの情報ですが、これはAndroidStudioのバグだと思われます。

英語のソースがあるのでわざわざ書くことでもないと思いましたが、私がそれで時間を食ってしまったので、共有させてください。
また、初投稿ですので至らぬ点がございましたらご指導のほどよろしくお願いいたします。
<参考文献>
“TextClock render problem in layout preview”
https://stackoverflow.com/questions/60565227/textclock-render-problem-in-layout-preview

# 解決策
これは根本的な解決ではなく、あくまでも対処であります。
[stackOverflow

元記事を表示

OTHERカテゴリの最新記事