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

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

Android 日付を取得する方法

Androidで日付を取得する方法を記録します。
思ったよりも簡単に書けました。

fun getToday(): String {

//表示させたい型を決める。 yは年、Mは月、dは日。
//単位は自由に決められる。例えば、”yyyy/MM/dd”でもOK。
val sdf = android.icu.text.SimpleDateFormat(“yyyy年MM月dd日”, Locale.JAPAN)

//date型のインスタンスを作る。
val date = Date()

return sdf.format(date)
}

以上です。

元記事を表示

Androidでmoduleを作りアプリ側から読み込む方法

# はじめに
共通で使えるライブラリやSDKとして他の人に使ってもらうためにmoduleを作る方法を簡単にメモします。
基本的にcommon的なapiの公開やよくあるview系のライブラリ化もこの手順でできます。
今回は簡単なメソッドを一つ作りアプリ側から読み込む方法を残します。

# ライブラリの組み込み公式ページ
https://developer.android.com/studio/projects/android-library?hl=ja

# moduleの作り方

AndroidStudioでこうして
![スクリーンショット 2020-11-07 23.06.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109862/3aac94e1-edb4-7926-b9b9-711d7b798939.png)

こうして
![スクリーンショット 2020-11-07 23.06.32.png](https://qiita-image-store.s3.ap-northeast-1.amazo

元記事を表示

#36 Kotlin Koans Builders/Function literals with reciever 解説

#1 はじめに

Kotlin公式リファレンスのKotlin Koans Builders/Function literals with recieverの解説記事です。

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

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

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

#2 レシーバー

まず実際の例を見てみましょう。

“`kotlin:Example
val sum: Int.(Int) -> Int = { other -> plus(other) }
“`

上の例の1番左側の`Int`を**レシーバー**とよびます。
(左から2番目の`Int`は**引数の型**、左から3番目の`Int`は**戻り値の型**を表します。)

つまり、

レシーバーは**関数型(function types)の呼び出しもとのインスタンスの型を指定します。**

#3 Builders/Function literals with re

元記事を表示

【Android】【初心者】画像ロードライブラリ Coil 使ってみた

# 【Android】【初心者向け】画像ロードライブラリ Coil 使ってみた

## Coilとは
Androidの画像ロードライブラリです。
GlideやPicassoなどがよく使われているのかなと思いますが、CoilはKotlin firstであるのと、Kotlin Coroutineを利用したものであるというのが特徴かなと思います。

## 実装手順
### 依存関係の追加

“` build.gradle(app)
dependencies {
implementation(“io.coil-kt:coil:1.0.0”)
}
“`

* 詰まったこと
coilは、java8でないといけないみたいで、以下のようなエラーが出ました。

“`
Cannot inline bytecode built with JVM target 1.8 into bytecode that is being built with JVM target 1.6. Please specify proper ‘-jvm-target’ option
“`

* 対処法

jvm tar

元記事を表示

AndroidでJNetHackをプレイしたいのです!!

#はじめに
Qiitaに投稿してよいのかどうか迷いましたが、
毎回お世話になっておりますので、投稿することにしました。
初めての投稿になりますので、色々と見づらいとかおかしな所があったりするかもしれませんが指摘くだされば訂正していきたいと思います。

今回、手持ちのスマートフォンを新しい機種へ変更したので、
内部ストレージに余裕が出来ました。
で、度々訪れるJNetHackをプレイしたい欲求が湧いてきました。
5年位前にもアンドロイドにインストールしましたが、その時よりすごく簡単に
インストールする事が出来て幸せです。
##準備

[Termux](https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=2ahUKEwiE2tre-O_sAhXa62EKHSj5AnwQFjAAegQIBxAC&url=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.termux%26hl%3Dja%26gl%3D

元記事を表示

制限対象の非SDKインターフェースの使用をLogcatで調査する

## はじめに
2020年11月2日以降、 AndroidアプリのアップデートはAndroid10(APIレベル29)以上を対象にしなければなりません。
Android10にはアプリに影響を与える可能性のある動作変更点あると[公式ドキュメント](https://developer.android.com/about/versions/10/behavior-changes-10?hl=ja#non-sdk-restrictions)に書かれています。
その動作変更点のひとつに、**非SDKインターフェースに対する制限の更新**があります。
開発しているアプリが、制限されている非SDKインターフェースを使用していないか調査する必要があります。
そこで、この記事では制限対象の非SDKインターフェースの使用をLogcatで調査する方法について紹介します。

## 前提
### 開発環境
– Language:React Native
– PC OS:Mac OS Catarina 10.15.7
– Android OS:9, 10
– Java:Oracle Java 12

### 非S

元記事を表示

SDLデバイスシミュレータを触ってみた

アスキーのラズパイによる疑似SDL車載機に、地図を表示してみよう!の記事を読んでみて実際に動かすための機器がそろっていたのと、
実際にデバイスシミュレータに触ってみての開発時になんかの役に立ちそうなことを一応書いておく

#実際に必要な機器、ソフト
理由は後述
PC[windows,MacどちらでもOK]×2
Raspberry Pi 3
SDLBOOTCAMPのイメージファイル
マイクロSDカード
Android6以降の実機端末A
Raspberry Pi純正7インチタッチディスプレイ
USBケーブルmicroBと使用するandroid端末用のUSBケーブル
Andoroid Studio

###要る物の説明

PCに関しては、ログファイルをSDLBOOTCAMPをインストールしたラズパイから取得する際にもう一台あると楽だと思う。
あと、ラズパイ側のLANポートは動作していない模様

“`
root@raspberrypi3:~# ip addr
1: lo: mtu 65536 qdisc noqueue qlen 1000

元記事を表示

Fragmentでのイベント取得方法【Kotlin】

今回は、KotlinでFragmentでのイベント取得の方法についてまとめていきたいと思います。

私自身、AndroidについてJavaから始めたので、Javaと同じように実装したらエラーが発生してしまい、とても悩んでしまいました。

## Javaでの実装について
Fragment上にボタンを配置し、それがタップされたときのイベントを取得するコードを例とします。

“`Fragment.java
@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {

/**
* Viewの処理とかある想定
*/
view.findViewById(R.id.button).setOnClickListener(new View.OnClickList

元記事を表示

【Android / Kotlin】Toolbar と戻るボタンを実装

# はじめに
Kotlin で開発をしていてツールバーを実装したい場面があった。
難しいことはほとんどないのだが、地味につまずいた箇所があったので備忘録としても記事として残す。

※ Support Libraryは AndroidX を採用

# 学習のために作成したサンプルアプリ概要
アクティビティにツールバーと戻るボタンを設置して、戻るボタンを押すとアクティビティを終了するという、全く実用性のないツールバーを学ぶためだけに実装したアプリ。

# 実装

念のためbuild.gradleの内容も載せておく

### build.gradle

“`build.gradle
apply plugin: ‘com.android.application’
apply plugin: ‘kotlin-android

元記事を表示

HMS Map Kit Android SDKの導入方法について

#1. 概要
HMS Map KitはHMSの地図サービスであり、現時点では以下の5つのサービスを提供しています。

1. [Android SDK](https://developer.huawei.com/consumer/en/doc/development/HMS-Guides/hms-map-v4-abouttheservice)
2. [JavaScript API](https://developer.huawei.com/consumer/en/doc/development/HMS-Guides/hms-map-js-about-the-service)
3. [Web API](https://developer.huawei.com/consumer/en/doc/development/HMS-Guides/hms-map-directions-api)
4. [React Native SDK](https://developer.huawei.com/consumer/en/doc/development/HMS-Guides/hms-map-v4-abou

元記事を表示

[Android]Androidアプリ側で何かしらのライブラリを読み込むとコンフリクトバージョンエラーが発生する理由

# はじめに

Androidで開発をしていて、よくある問題として何かしらのライブラリをgradleで読み込み実行すると、kotlinのバージョンンコンフリクト系のエラーが発生する場合がある。ので見解

ちょっと調べたのでメモ程度に残しておきます

# 原因

いろいろな理由があるのかも知れないが、まずライブラリのkotlinのバージョンとコンフリクトを起こしている場合に起きえます。
その場合は、そもそもライブラリを使うのを諦めるか、ライブラリのバージョンを古いものを使ってみるか、ライブラリを組み込むアプリのkotlinバージョンをアップしてみるかなどよくわからずに適当に試行錯誤して解決することが多いです。

## kotlinライブラリのコンフリクト
kotlinのライブラリを読み込むとkotlinのライブラリがアプリ側に読み込まれます。
その分apkのサイズとメソッド数は増加します。multi dexが必要かも。

アプリ側に読み込まれたkotlinライブラリとアプリ側のkotlinのバージョンでコンフリクトが起きる場合があるようです。
gradleの使用は下記を参考ください。ko

元記事を表示

OracleのJava Development Kitが有償化したが、引き続きAndroid Studioは無料で使えるのか?

Android Studioはデフォルトで無料のOpenJDKを使用しているため、無料で使用可能。
有償化したのはOracleJDK。
非商用、非本番利用であれば、OracleJDKも無料使用可能。

元記事を表示

[Android]GsonからMoshiに移行しようとした時、ビルドができなくなった

## 状況
GsonからMoshiに移行した時にビルド時にエラーが出てしまった。

## Mohsiをプロジェクトに追加する
以下をgraldeに追加しMoshiを既存プロジェクトに入れる。

“`Kotlin:gradle.app
def moshi_version = ‘1.5.0’
implementation “com.squareup.moshi:moshi:$moshi_version”
implementation “com.squareup.moshi:moshi-kotlin:$moshi_version”
“`

ビルドすると、下記エラーが出た。

## エラー内容
`Duplicate class kotlin.reflect.KClasses found in modules jetified-kotlin-reflect-1.1.1.jar (org.jetbrains.kotlin:kotlin-reflect:1.1.1) and jetified-kotlin-stdlib-1.3.72.jar (org.jetbrains.

元記事を表示

[Material Design] Icons のvisibility / visibility_off をパスワード入力のTextFormField で利用する場合、テキストが見えているときにvisibiltyを表示するべきなのか、見えないようにしますよという意味合いでvisibility_off を表示するべきなのか考えた結果

visibility
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132323/f99f9f5c-d65e-69bd-3a24-a9a2638fbd89.png)

visibility_off
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132323/b02e52e7-4362-0af1-07ba-22fd36a964f3.png)

#結論
以下の理由により、テキストが見えているときに「visibility」、隠しているときに「visibility_off」を使う方がMaterial Designに沿っているように感じました。

・公式のページにテキストが見えているときに「visibility」を表示している図がある
MATERIAL DIS

元記事を表示

【翻訳】Android Developers ガイド:アプリの権限の概要

デベロッパーガイドの**アプリの基本**を順に読んでいったのですが、最後の[アプリの権限の概要](https://developer.android.com/training/basics/permissions)が英語だったので読みながら翻訳しました。

このQiitaでは現公式ドキュメンツに即し基本的に「権限」としてますが、漢字が並んだりして気になった際には適宜「パーミッション」表記にしましたが、同じものと思ってください。
(化石がまだナマモノだった時代の日本語のブログとかだとpermissionは「権限」より「パーミッション」と書いている人が多かったような記憶が朧げにあります。)

# アプリの権限(パーミッション)の概容
[App permissions overview](https://developer.android.com/training/basics/permissions)
> Android builds upon [system security features](https://source.android.com/security/features)

元記事を表示

今やってるAndroidプロジェクトにgitlabciを導入してみた

# 前回やったことと今回やること
前回は今回の事前準備として、手動でDockerコンテナからAndroidアプリのビルドを行いました

今回は

– gitlabciを使ってCommit時に自動ビルドを実行する
– ブランチごとにビルドタイプとフレーバーを指定する
– VersionCodeにgitlabciのJobIDを割り当てる

ここまでやっていきたいと思います

# .gitlab-ci.yml作成
まずはgitlabciのCI/CDの設定ファイルである**.gitlab-ci.yml** を作ります

作り方はとてもかんたんで、

– リポジトリのファイル一覧のページから,「+」→「New File」を選択
– Templateで「.gitlab-ci.yml」「Android」を選択

すると、下記のファイルが作成されます

“`yml:.gitlab-ci.yml
# This file is a template, and might need editing before it works on your project.
# Read more about thi

元記事を表示

[Flutter] floatingActionButton を複数表示する方法(※Material Design非推奨)

floatingAnctionButton(以下FAB)を1画面に複数設置したい場合のサンプルです。
ただし、Material Design では、FABは画面内の主要、または最も一般的な操作を表現するためのものとされているため**「原則1画面に1つ」**が推奨されています。
特別な理由がない場合は大事なアクションをFAB、他方は通常のボタンにした方がMaterial Design に沿ったものになります。
参考※1のMaterial Design公式ではFAB2つで「Caution」、3つで「Don’t」とされていますね。。

以下にサンプルを記載します。
参考※2のflutter.devの通り、Scaffoldの中でappBar, bodyと一緒に記述します。

“`dart
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(centerTitle: true, title: Text(‘Title’)),
body: // (省略)
floatingActionB

元記事を表示

Android: kotlinx.serialization 1.0.1

– kotlin: 1.4.10
– kotlinx.serialization: 1.0.1

Jsonのパースをkotlinx.serializationの0.2.0で行っていましたが、Kotlinが1.4になったことにより、いろいろ変わったみたいなのでやり直し。

https://kotlinlang.org/docs/reference/serialization.html

## 導入

build.gradle(app)の記述だけでよくなったようです。

“`gradle:build.gradle(app)
plugins {
id ‘org.jetbrains.kotlin.plugin.serialization’ version ‘1.4.10’
}

dependencies {
implementation “org.jetbrains.kotlinx:kotlinx-serialization-json:1.0.1”
}
“`

## 実装

テストコードで実行。ドキュメントのサンプルそのままです。

“`kotlin
package jp

元記事を表示

[Android] [Material Design] テーマの参考になったページまとめ 2020

Android アプリ開発時のテーマを決める際に参考になったページをご紹介したいと思います。

## 1. Material Design > Color > The color system
Material Design > Color > The color system
Material Design の公式ページです。基本的にAndroid はMaterial Design に準拠したものにしたいため、まずはこちらを眺めてみることをオススメします。

## 2. COLOR TOOL
COLOR TOOL
カラーパレットから色を選択すると、アプリがどのようになるのかわかるツールです。
色はMaterial Design color pa

元記事を表示

KotlinでAndroidアプリ開発時、ローカルのDBに保存処理を行った際に起こったエラーと対策

## はじめに

Kotlinで、バーコード読み取り機能を使用したAndroidアプリ開発時、
読み込んだ値をローカルのDBに保存する際に起こったエラーと、解決方法を共有したいと思います。

## エラー内容
`Cannot access database on the main thread since it may potentially lock the UI for a long period of time.`

UIスレッドを長時間ロックしてしまう可能性があるため、メインスレッド上でDBへのアクセスはできないようです。

## 解決方法

### 依存の追加
まずは、build.gradle に下記を追加します。

“`app/build.gradle
dependencies {
implementation ‘io.reactivex.rxjava2:rxjava:2.1.12’
implementation ‘io.reactivex.rxjava2:rxandroid:2.0.2’
implementation ‘io.reactivex

元記事を表示

OTHERカテゴリの最新記事