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

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

【Flutter】グラデーション使用時に境界線が見える問題

# 概要
グラデーション使用時に境界線が見えてしまう場合がある。
[画面描画時のディザリング](https://api.flutter.dev/flutter/dart-ui/Paint/enableDithering.html)を有効にする事により、滑らかに表示する事ができる。

## 再現
“`dart
import ‘package:flutter/material.dart’;

class App extends StatelessWidget {
static const String _title = ‘Gradient Test’;

@override
Widget build(BuildContext context) {
return MaterialApp(
title: _title,
home: Container(
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [Color(0

元記事を表示

【Flutter】安心してレポジトリを公開するために必要なgitignoreの設定

#この記事を読んで習得できること
Flutterのフォルダを安心してgithub or gitlabに載せられるようになる

#結論
`.gitignore`に
`!*/.gitignore`を追加する

これより下は時間がある人だけでいいですよん

#安心して,とは…?
Flutter関係の記事を載せようと思っていて、その際にソースコードも公開したいなーと思っていた。

全世界に公開するのなら、自分のPC内の情報は載せたくないなー(当然)と思っていたので、フォルダ内に自分の情報が載っていないか、調べてみた。

調べたっていっても、そんなたいそうなことはしてなくて、
フォルダ内のソースを、以下の文章で検索してみるってだけ。
`/Users/<自分で付けたPCのユーザー名>/`

すると、結構な分量が出てきてしまった。

![スクリーンショット 2020-08-13 19.52.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/389553/e498988b-b9dd-d61a-510b-26da20c

元記事を表示

Androidでキーボードを非表示にする方法

## Androidでキーボードを非表示にする方法

### 背景
* 自分のメモ用です。

### 実装方法

* Kotlin

“`
// Hide the keyboard.
val inputMethodManager = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
inputMethodManager.hideSoftInputFromWindow(view.windowToken, 0)

“`

元記事を表示

【小ネタ】AndroidでCrashlyticsをFabricからFirebaseに移行する際の注意点【リモートLT】

リモートLTのYouTube(クリックで再生, 日本語/英語字幕あり)
[](https://www.youtube.com/watch?v=LAzZGSAmwx0)

# はじめに

スクリーンショット 2020-08-13 18.48.34.png

Fabric SDKがアプリのクラッシュを報告するのは 2020年11月15日 までとなります。
なぜかというと大人の事情です。
FabricはFirebaseに買収され、今年の3月にサポート終了していました。

### 大人の事情まとめ(FirebaseとCrashlyticsの歴史)

“`
2011年 James

元記事を表示

DSL element ‘android.dataBinding.enabled’ is obsolete and has been replaced with ‘android.buildFeatures.dataBinding’. の解消

## 問題
Android Studio4.0にバージョンアップしてからコンパイルした際に以下のようなwarningが出ていた。

“`
DSL element ‘android.dataBinding.enabled’ is obsolete and has been replaced with ‘android.buildFeatures.dataBinding’.
“`
## 解決
原因:データバインディングを有効にするコードブロックが新しくなったため。

“`app/build.gradle
android {

dataBinding {
enabled = true
}

}
“`
↓こちらに変更すれば良い。

“`app/build.gradle
android {

buildFeatures {
dataBinding true
}

}
“`

元記事を表示

計算ドリルアプリの開発① 1+1を答えさせるアプリ

私には小学1年生の息子がいます。勉強嫌い、ゲーム大好きな息子なので、計算アプリなんかがあると少しは勉強してくれるかなぁと思い、作ってみようと思います。

# はじめに
### 開発環境
– OS:Windows 10(1903)
– 開発ソフト:Visual Studio 2019 Community
– プラットフォーム:Xamarin.Forms
– 開発言語:C#

### 環境の準備
以下を参照ください。
[Xamarin.FormsでAndroidアプリ開発](https://qiita.com/yasu006/items/1c29af89bce513245d6a)

# 超簡単なアプリから。1=1を答えさせるアプリ
### Mainpage.xamlの修正点
以下のコードを追加します。

“`ruby

元記事を表示

Nuxt.jsでURLスキームを利用してAndroidアプリを起動

Nuxt.jsでWebページを作成した場合の、URLスキームでのAndroidアプリ起動方法をまとめておきます。

# nuxt-user-agentを導入

Android端末かの判定に [nuxt-user-agent](https://github.com/fukuiretu/nuxt-user-agent) を使用します。
下記コマンドで、Nuxt.jsのプロジェクトにインストールしてください。

“`bash
npm install -S nuxt-user-agent
“`

`nuxt.cofig.js` ファイルに、設定を追加します。

“`nuxt.config.js
modules: [
‘nuxt-user-agent’
],
“`

# middlewareの作成

ユーザーエージェントを判定して、アプリ起動やストア移動を行うmiddlewareを作成します。
`const ANDROID_SCHEME = ‘sample://app’;` の部分で、Androidアプリを起動するURLスキームを指定しています。

“`middleware/lau

元記事を表示

Xamarin.FormsでAndroidアプリ開発③ 開発したアプリをスマホで実行。躓きポイントは、共有ランライム!

アプリ開発が終わったので、あとはAPKファイルをスマホで実行するだけ!と思っていたのですが、少し躓きました…。
今回手順を追ってしっかり説明していこうと思います。

# ビルドの設定

1. まずはソリューションエクスプローラーの[ソリューション名].Androidを右クリックしてオプションを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/672017/05e30ce0-c475-4cd2-9a25-021b17d03ebb.png)

2. Androidオプションの「共有ランタイムの使用」をオフに。**ここが重要です!**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/672017/0f3858c7-9dca-db91-ec79-2a278e2ce93d.png)

これがオンになっている時は、Visual Studioインストール時に勝手にインストールしてくれた「MONO

元記事を表示

LiveData の Unit Test(UnitTest探求記2)

Unit Test 探求記は、unit test に関してまったりと実験しつつその過程を綴ってみるというものです。

# 今回のお題
LiveData の unit test を行ってみます。

# テスト対象
今回は、[Transformations#map(LiveData, Function)](https://developer.android.com/reference/kotlin/androidx/lifecycle/Transformations#map(androidx.lifecycle.LiveData,%20androidx.arch.core.util.Function)) に対して複数の [LiveData](https://developer.android.com/reference/kotlin/androidx/lifecycle/LiveData) を受けられるようにしたメソッドを作成して、それをテスト対象とします。

## ◆ TransformationsUtils
[TransformationsUtils.kt](https://githu

元記事を表示

[Android]AndroidX Preference Library で作れる設定画面をまとめる

# はじめに

AndroidX Preference Library でどのような設定画面が実装できるのかまとめが欲しかったので作成しました。基本的な使い方は[こちら](https://qiita.com/kaleidot725/items/f9ce2fbbf479d2a9f2bb)にまとめていますので参考にしてみてください。

| 要素 | 説明 | 見た目 |
| ————————- | —————————————————- | ———————————————————— |
| Preference | Fragmentへの遷移や

元記事を表示

【Android Kotlin対応】プログラミング記号文字読み方一覧【初心者向け】

##使い方
先輩が何言ってるかわからない時に新人が使います
##読み方一覧
|記号|読み方|
|:—-|:—-|
|+|プラス、プラ、プラス符号、正符号、たす|
|-|マイナス、マイナス符号、負符号、ひく|
|*|アスタリスク、スター、かけ、こめ、ほし|
|/|スラッシュ、スラ、わる|
|\\|バックスラッシュ、バック、逆斜線 ※JISコードは¥|
|%|パーセント|
|.|ピリオド、ドット、てん、小数点文字|
|,|コンマ、カンマ|
|:|コロン、ダブルドット|
|;|セミコロン、|
|’|シングルクォーテーション、シングルクォート、一重引用符、引用符|
|”|ダブルクオーテーション、ダブルクォート、二重引用符|
|`|バッククォート、グレイヴ・アクセント|
|(|左括弧、左丸括弧、パーレン|
|)|右括弧、右丸括弧|
|{|左波括弧、左中括弧、ブレイス|
|}|右波括弧、右中括弧|
|[|左角括弧、左大括弧、ブラケット|
|]|右括弧、右大括弧|
|<|小なり| |>|大なり|
|?|はてな、クエッション、クエスチョン、疑問符|
|!|びっくりマーク、びっくり、エクスクラメ

元記事を表示

FirestoreのTimestampとDateの相互変換

Android SDKでの話です。
特にDateからTimestampへの変換を忘れがちなので、備忘録として。

– https://firebase.google.com/docs/reference/android/com/google/firebase/Timestamp

“`kotlin
// Date -> Timestampの変換
val timestamp = Timestamp(Date())

// Timestamp -> Dateの変換
val date = timestamp.toDate()
“`

元記事を表示

Google Play In-App Review APIを簡単に使うためのライブラリを作成してみた

[Google Play In-App Review API](https://developer.android.com/guide/playcore/in-app-review) によって、Androidでもアプリ内からレビューの投稿ができるようになったので、レビューUIの表示をサポートするライブラリを作成しました。

[GitHub – ReviewPromptManager](https://github.com/hitting1024/ReviewPromptManager)

## 要件

Android 5.0 以上

## 使い方

### インストール

moduleのbuild.gradleに以下の依存を追加してください。

“`gradle
implementation ‘jp.hitting.review-manager:review-manager:0.0.1’
“`

### 設定

Applicationクラスにて `daysUntilPrompt` と `usesUntilPrompt` を設定してください。

– `daysUntilPrompt`

元記事を表示

Xamarin.FormsでAndroidアプリ開発② サンプルアプリ作成

[前回](https://qiita.com/yasu006/items/1c29af89bce513245d6a)インストールしたVisual Studioでサンプルアプリを作っていきます。

# Xamarin.Formsのソリューションの立ち上げ
1. まずVisualStudioを立ち上げると以下の画面が出てきます。「新しいプロジェクトの作成」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/672017/93fc27f9-bf5b-8c81-122a-d1d9b608a4d0.png)

2. 色々出てきますが、モバイルアプリ(Xamarin.Forms)を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/672017/e3f653ea-f1e8-6dbb-7719-9b35110477b4.png)

3. 適当に場所と名前を設定します。
![imag

元記事を表示

Xamarin.FormsでAndroidアプリ開発① Visual Studioのインストール

前回はAndroid Studioを使ったアプリの開発を紹介しましたが、将来的にWindowsやiOSでの開発も考えると、Xamarinでの開発がお勧めです。
まだどのようなものかあまり分かっていませんが、チャレンジしていこうと思います。

# Visual Studioでのアプリ開発

Xamarinを使う開発ソフトとして、MicrosoftのVisual Studioを使います。開発言語はC#です。
MicrosoftはWindowsというイメージですが、最近はどんどんオープンソース化されてきていて、今はいろんなOSで動くアプリが開発できます。
少し歴史を紐解くと、

.Net Framework : Windowsで動くアプリが動くフレームワーク
 ↓
.Net Core : Windowsだけでなく、Linux、Macで動くフレームワーク
 ↓
Xamarin : Android/iOSで動くフレームワーク
 ↓
(将来).Net 5 : Windows/Linux/Mac/Android/iOSすべてで動くフレームワーク
 ※現在プレビューは出ていますが、まだAndroidは

元記事を表示

Androidアプリのアップロード鍵.keystoreの作成と管理について

Androidの署名ファイル(keystore)について個人的まとめ。

# keystoreとは

今回作成するkeystoreファイルはアップロード鍵と呼ばれるもの。

> アップロード鍵: Google Play アプリ署名用にアップロードする前に、App Bundle または APK への署名に使用する鍵。アップロード鍵は非公開にする必要があります。

[公式 – アプリへの署名](https://developer.android.com/studio/publish/app-signing?hl=ja:embed:cite)

非公開にしなければならないため、Androidプロジェクトディレクトリ配下に置いてあると、うっかりGitHubにプッシュしてしまったりと危険な香りがします。

そのためローカル(`/Users/user/.gradle`)に格納し、アプリのビルド時もそこから参照するように設定します。

# 環境

* Windows 10 Pro

# 手順

## /Users/user/.gradle/gradle.propertiesにパスを記述する

あら

元記事を表示

HMSとAppGalleryについて

#背景
本番の説明の前に、まずは背景を簡単に紹介したいと思います。
去年5月以降に発売されたHuaweiのスマートフォンではGMSのサービスが使えなくなりました。
その影響で、Mate30 ProやP40シリーズなどのHuaweiのスマートフォン上でGoogle MapやChromeなどのGoogleオリジナルアプリとGMS、firebaseのSDKが使用不可になっています。(念のために説明しますが、それらのスマートフォン上で現在でもYoutube、Google Mapなどのサービスはブラウザ上であれば使用可能ですので、完全に使えないわけではありません)
その後、Huaweiは独自のHMSサービスを提供し始めました。現在、グローバルではHMSのアクティブユーザーがすでに4億人を超えていますが、日本ではまだあまり知られていないようですのでここで紹介したいと思います。

#HMSとは
HMSとはHuawei Mobile Serviceの略称で、Huaweiオリジナルアプリと開発者向けSDK群の総称です。

Huaweiオリジナルアプリとは、
- AppGallery(アプリストア)
- 

元記事を表示

【Android/Kotlin】フラグメントのライフサイクルまとめ

#フラグメントのライフサイクル
 まず、フラグメントとは「サブアクティビティ」的なポジションである。アクティビティが成り立っている上で、フラグメントは存在している。ライフサイクルについても同じような関係にあり、アクティビティのライフサイクルが破壊されれば、フラグメントのライフサイクルも破壊されてしまう。あくまでもアクティビティあってのフラグメントである、という事が重要だ。フラグメントとアクティビティのライフサイクルを表した図が以下。
![complete_android_fragment_lifecycle (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/658219/8ccf88c1-3499-98ef-28f8-fe32b01c4160.png)
参照:[lifecycle:Activty/Fragment](https://github.com/xxv/android-lifecycle)
 この図は非常に分かりやすく両者のライフサイクルを理解することが出来る。今回は、この図のメインでもある

元記事を表示

setFragmentResultListenerを使った通知をするDialogFragmentの実装提案

`androidx.fragment:fragment:1.3.0-alpha04`から新しく `setFragmentResult / setFragmentResultListener`が追加され、`setTargetFragment`がdeprecatedになりました。

おそらく多くの呼び出し元に通知を送る`DialogFragment`では、`setTargetFragment`を使ってListenerなどで実装していたのではないでしょうか。

“`従来のDialogFragment.kt
class MyDialogFragment : DialogFragment() {

companion object {
private const val REQUEST_CODE = 100

fun show(target: Fragment) =
newInstance().run {
setTargetFragment(target, REQUEST_CODE)

元記事を表示

スマホもPCの一員としてファイル同期したいじゃない?Ⅱ

# おはようございます!

[前回の続きです。](https://qiita.com/ykato/items/74642f7bfd0685f97afc)

前回の

「**Syncthing**に似てる気がするけど知ってる?参考になるかもよー見てみたら??」

にスマホアプリも追従させてみたよ!って記事です。

### やたらスマホ!

要するにHTTP(S)使ってフォルダを同期してくれる君というやつです。
Syncthing以外にもNearby Shareもあるじゃーんってご指摘あるな。
でも、これ強みとしてはバイナリいっこで動くし、マルチOS対応だし、、

あと今あるプロキシとか**HTTPエコシステム**に乗っかれるのがこのツールの推しポイント

# DE・KI・TA

  • OTHERカテゴリの最新記事