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

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

1. Android Studioインストール(Kotlin)

#はじめに
DreamHanksのMOONです。

今回からKotlin言語を使用してAndroidプログラミングについて見てみます。

本来AndroidはJava言語を使って開発されていましたけど、最近はKotlinを使って開発することが多くなっています。
今回はKotlinを使用してみます。

#開発ツールをインストール
 Androidを開発するためのAndroid Studioをインストールしてみます。
       https://developer.android.com/studio?hl=jp
 この公式サイトのリンクでアンドロイドスタジオインストールをします。

#Android Studioプロジェクト生成 
  インストール後、最初にアンドロイドスタジオを実行すると以下の画面が表示されます。
  一番上の「Start a new Android Studio project」を押してプロジェクトを作成します。
  ![1.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/708649

元記事を表示

Jetpack Compose (アルファ版) ハンズオン

Jetpack Compose がアルファリリースされたので遅まきながら触ってみました。

色々と新しいワードやコーディングばかりで学習コストがかかりそうかも…?
でも Kotlin で書けるのは嬉しかったりします?

ひとまず簡単に ViewModel なんかを使いながら、リストやツールバーの表示を実装してみます。

## Environment

今回使用した環境は以下になります。

| Tools | version |
|:—————:|:————-:|
| Android Studio | 4.2 Canary 9 |
| Kotlin | 1.4.0 |
| Jetpack Compose | 1.0.0-alpha02 |

## Get Started

まずはプロジェクトを作成します。
Canary 版には `Empty Compose Activity` のテンプレートがあるので開いてみましょう。

![empty_compose_activity.pn

元記事を表示

セキュリティの尻隠して頭隠さず…?Androidに実装されている「プライベートDNS」を利用しよう

自宅用DNSサーバーを構築してからDNSがマイブームな今日この頃、[プライベートDNSについての記事](https://qiita.com/Usamimi_Latias/items/8e3df25e461963a88716)に出会いました。
以前から有効にはしていましたが、どんな動作をしているのか気になって調査してみました。

# プライベートDNSとは?

`Android 9 (Pie)`以降のスマートフォンに実装されている機能で、以下のような感じでアクセスできると思います。

– `設定`→`その他の接続`→`プライベートDNS`
– `設定`→`ネットワークとインターネット`→`プライベートDNS`
– `設定`→`ネットワークとインターネット`→`詳細設定`→`プライベートDNS`

取り敢えずは`プライベートDNSを設定`を選択して`dns.google`や`one.one.one.one`などと打ち込むと設定が完了します。
ほぼ同様の内容ですが、[Google Public DNS](https://developers.google.com/speed/public-d

元記事を表示

【React Native】TextInputにselectionColorを設定するとAndroidで文字が見えなくなる

# 前提
– React Native 0.62.2

# 問題
– カーソルの色をカスタマイズしようと、TextInputにselectionColorプロパティを設定すると、Androidでは透過が起きず、文字が見えなくなる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224815/c1240799-570c-f1d8-1ed4-57e087a4b0a8.png)

# 解決方法
– 以下のように半透明の色を直接指定する

“`js
selectionColor=’rgba(0, 0, 0, 0.5)’
“`

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224815/58b4f315-3aaa-007e-8b54-cc73d159df3f.png)

# 参考文献
– https://stackoverflow.com/questions/54368090/how-to-ma

元記事を表示

Android, Kotlin: CSVの読み書き

– Minimum SDK: API 23
– Android Studio 4.0.1
– Kotlin 1.4.0
– opencsv Version: 5.2

Android, KotlinでCSVの読み書きを、opencsvを使って実装します。
CSVの操作を説明するために、StringReader, StringWriterを使って実装していますので、必要に応じてFileReader, FileWriter, InputStreamReader, OutputStreamWriterに置き換えて実装してください。

SDカードへのファイル読み書きはこちらを参照ください。→ [Android: SDカード上のファイルへの読み書き](https://qiita.com/nozaki-sankosc/items/686ac932420dcc82b063)

## 準備

### opencsvライブラリ取り込み

“`gradle:build.gradle(app)
dependencies {
implementation ‘com.opencsv:opencsv:

元記事を表示

【Android/Kotlin】同じWidgetを複数作成した際に,別々のものとして動作させる方法

#はじめに

この記事は[【Android/Kotlin】Widgetを作ってクリック時の動作を設定する
](https://qiita.com/hac-chi/items/3c4a72818b9bc69d10aa)の続きとなっていますすが,ウィジェットの基本が分かっている方はこの記事だけ見れば大丈夫です。

また,執筆者は趣味レベルのAndroidアプリ開発者である為,説明間違いが含まれている可能性があります。お気づきの点がありましたら,是非コメントお願いいたします。また,アップデートにより,機能やコードが記事執筆時点と異なる場合があります

#本記事の内容
本記事では,[【Android/Kotlin】Widgetを作ってクリック時の動作を設定する
](https://qiita.com/hac-chi/items/3c4a72818b9bc69d10aa)で作成した,ボタンを押すとカウンターが1ずつ増えていくウィジェットについて,複数が同じものとして動作してしまう問題を解消します。
![ウィジェットボタン問題.gif](https://qiita-image-store.s3.

元記事を表示

【Kotlin】AndroidでiOSライクな画面遷移アニメーションを実装する

簡単に言えばiOSで`UINavigationController`で`show`するような画面遷移を、
Androidで簡単に実装出来ます。

###手順1:res/animを作成する

![スクリーンショット 2020-09-10 11.39.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/551622/fc077c27-3830-43a7-fa1e-c1d6405c8931.png)

###手順2:画像のようにxmlファイルを4件追加する

##close_enter.xml
“`kotlin


元記事を表示

[備忘録] MacBook Pro を使って Android 10 を Raspberry Pi 4 に焼く

Linux を使える環境だったら全く問題ないんですが、 macOS を搭載した MacBook Pro で Android 10 を Raspberry Pi に焼く時にいくつかハマるポイントがあったので備忘録がてら残しておく。

macOS で、とありますが Docker や VirtualBox で Linux は使いますので Linux を使わずに Android を焼く。という縛りプレイとかではないです。 Linux系OS の起動ディスク作ったりが面倒だったのでそれをやらずに焼く方法。という感じです。

主に以下で公開されている内容に沿って進めていきます。
https://github.com/android-rpi/device_arpi_rpi4

この記事もわかりやすくまとめられています。 Linux が使える環境であればこちらを読んでその通りに進めていければいいと思います。
https://medium.com/@jpnurmi/android-10-on-raspberry-pi-4-5078901698dd

Android のソースは以下のサイトからダウンロード

元記事を表示

【Android開発】Notification Channelごとに通知をグループ化する方法

## 概要
下記画像のように、プッシュ通知をチャンネルごとにグループ化する方法を紹介します。
チャンネルごとに、プッシュ通知をグループ化して受信トレイに表示させたいという方には参考になると思います。

![スクリーンショット 2020-09-09 23.55.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/199988/14243bf8-8ade-951c-5f56-def30068eebd.png)

また、Githubにソースコードをあげているので、参考にしてみてください。
https://github.com/YusukeSuzuki1213/notification-channel-group

注意点としては、OS8以上でなければ通知チャンネルを使用することができないことと、OS7以上でなければ通知のグループ化を実装することができないことです。

## 実装方法
### 1. チャンネルの作成
まず下記のようにチャンネルを作成するメソッドを作成します。

“`kotlin
fun cre

元記事を表示

【React Native】TextInputでAndoirdのみ縦方向の中央寄せができない

# 前提
– React Native 0.62.2

# 問題
– TextInputコンポーネントでカスタムフォントを適用した際、Androidのみ入力したテキストの下方に謎のpaddingが出現する

↓左がiOS、右がAndroid
※わかりやすくするため、TextInputの背景をグレーにしている。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224815/ba90d089-5777-a3d2-0fab-4f1410179294.png)

# 解決方法
– TextInputのstyleに `includeFontPadding: false` を追加する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224815/7397548a-f876-2add-4d3f-beef34835090.png)

– ちなみに、色々調べると、多かったのは以下のパターンのいずれかの組み合わ

元記事を表示

Cannot fit requested classes in a single dex file (# methods: 115337 > 65536)

メソッド数が65536を超えた場合のビルドエラー

[Android]Android 64k問題を回避するための設定方法(Cannot fit requested classes in a single dex file / Too many field references)

要求されたクラスを単一のdexファイルに収めることはできません

#解決法
最初から複数のdexファイルが使えるように設定。

“`xml:build.gradle(app)
defaultConfig {

multiDexEnabled true
}
dependencies {
implementation ‘com.android.support:multidex:1.0.3’
}
“`

元記事を表示

Essential Phone (PH-1) with twrp.2020【Evolution X】

Essential PhoneにEvolution Xを焼くためにTWRPについて色々と模索する必要があったためここに記しておく。現時点/現環境でTWRPを起動させることができない場合にこの記事は参考になるのではないかと思う。

この記事によって発生した損害について私は一切の責任を持たないので自己責任でよろしくお願いしたい。素人の備忘録なので手順が何のための手順なのかを理解していない節もある。あくまでここに示すのは自分が実際に行って成功した例である。

Essentialは倒産してWebページも削除されたため、この記事に書いてある必要なデーターは各自で探してくる必要がある。

# 環境構築
OSはWindows
– Essential-PH1-WindowsDrivers.exeの導入をしておく。
– ADB/FASTBOOTが使えるか確認しておく。
– ブートローダーアンロック済み。

# 準備
– PH1-Images-QQ1A.200105.007.zip
– twrp-3.2.3-0-mata.img
– EvolitionXのOTAのROM

# 手順
Essential P

元記事を表示

*Android*【HTTP通信_2】FlaskとHTTP通信をする(WebAPIを叩く[GET, POST])

# はじめに
[前回の記事](https://qiita.com/f-paico/items/f03f48d3ecacba7dcc13)では,httpbinをWebAPIとして使用し,HttpURLConnectionの使い方について解説しました.今回は,FlaskをWebAPIとして使用し,AndroidとFlask間でHTTP通信(GET/POST)を行ってみます.HttpURLConnectionやcurlコマンドの詳しい解説は,[前回の記事](https://qiita.com/f-paico/items/f03f48d3ecacba7dcc13)を参考にしてください.

# 前提
*Android Studio 4.0.1
*targetSdkVersion 28
*Google Nexus 5x

curlコマンド, Python
*Ubuntu 20.04 LTS (WSL 2)
*Python 3.7.3

# GETメソッド
GETメソッドを使ったHTTP通信は簡単に実現できます.Android側は[前回の記事](https://qiita.com/f-paico/

元記事を表示

【Android/Kotlin】ウィジェットの作成とクリック時動作の設定方法

#はじめに
執筆者は趣味レベルのAndroidアプリ開発者である為,説明間違いが含まれている可能性があります。お気づきの点がありましたら,是非コメントお願いいたします。また,アップデートにより,機能やコードが記事執筆時点と異なる場合があります。

#本記事の内容
ボタンを押すとカウンターが1ずつ増えていくウィジェットを作成し,基本的なウィジェットの作成方法とクリック自動動作の設定方法について解説します。

#ウィジェットのクリック時の動作の実装について
ウィジェット上のボタンにクリック時動作を付加したい場合,
Activityと同様に「findViewByIdからのsetOnClickListenerで….」とは出来ません(泣)

ウィジェットの場合,ブロードキャストという仕組みを使用します。
これは,アラームの実装等にも使われる仕組みで,ブロードキャストの為のトリガーを設定し,トリガーが起動したら情報(Intent)を全体に通知し,それをBroadcastReceiverによって受信して処理を行うという流れになります。ちょっと面倒ですが・・・

#アプリにウィジェットを追加す

元記事を表示

お爺さまにAndroid持たせて失敗した話

# 始まりはおよそ1年前
### 携帯(スマートフォン)を持たせたいなと思いました
理由はなんと…
**事故りやがった!!** ← 言い方

単独事故だったんですけどね、
それでも十分こっちには心配するお話しです…

で、その時何が困ったかっていうと、
電話がかかってきた時、向こうもテンパってたとは思うんですけど、
**場所を言わない!!**

「◯◯号線沿いのなんちゃら〜」

正直こちらからすると
免許取得したてな上に
元から地理には弱かったおかげでさっぱりでした。

その時は親の協力もありなんとかなったんですが、
これを期に運転の制限やスマホを持たせる事で

– 頭を働かせる事(多少小難しくてもなんとかやっていけるだろうと思ってました)
– 居場所を追跡できる事

この辺が改善してくれるかなと思い、
**Android購入しました**

で、まぁ追跡アプリはLife360を使いました
無料で、家族グループができるので!

> 事故を期に、運転を近所にするだとか、ドライブレコーダーをつけるだとか、安全装置のついた車に乗るとか決めておきました。

> 本人がまだ乗る気でいた

元記事を表示

[Android]RecyclerView のアニメーションの時間を調整する

# はじめに

RecyclerView では ItemAnimator をセットすることでアニメーションを表示できるようになります。ItemAnimator は次のようなライブラリがあって好みのアニメーションに簡単に切り替えられるようになってます。

* [recyclerview-animators](https://github.com/wasabeef/recyclerview-animators)
* [ItemAnimators](https://github.com/mikepenz/ItemAnimators)

例えば [ItemAnimators](https://github.com/mikepenz/ItemAnimators) の ScaleUpAnimator を使ってアニメーションを実装すると次のような感じで表示されます。

“`kotlin
val scaleUpAnimator = ScaleUpAnimator()
recycler_view.also { view ->
// 省略 : Adapter や Layo

元記事を表示

その動画、Androidプラットフォームでサポートされてる?

Androidで`VideoView`や`ExoPlayer`を使って動画再生機能を作ったはいいものの、なぜか動画がうまく再生されない。。
あのバージョンや端末だと問題なく再生できるのに、なぜかこのバージョンや端末だと再生がうまくいかない。
何故か黒みが出たり、表示が崩れたり、再生に失敗して何も表示されない。
そんなとき、ログを見て実装が怪しくないか疑うのもいいですが、もう一つ別のアプローチを紹介したいと思います。

# その動画、Androidプラットフォームでサポートされてる?

Androidでは全ての動画形式がサポートされているわけではありません。
例えばmovファイルなど、再生できない動画も存在します。
公式サイトでは以下のようなガイドラインが用意されています。

[サポートされているメディア形式  |  Android デベロッパー  |  Android Developers](https://developer.android.com/guide/topics/media/media-formats?hl=ja)

ガイドラインを確認して、そもそもその動画形式がちゃんと

元記事を表示

【Flutter×Firebse】非エンジニアがパワーリフター向けアプリをリリースした話【個人開発】

# はじめに

最近、パワーリフター向けBIG3記録アプリ「LifterLog」をリリースしました。

[iOS版はこちら](https://t.co/AOEoEIMyEy?amp=1)
[android版はこちら](https://play.google.com/store/apps/details?id=jp.co.freadteam.lifterlog)

以前、Swiftで開発したアプリをFlutterで完全リニューアルしたのですが、
今回の開発→リリースまでの過程や得られた知見を共有したいと思います。

特にこれからアプリ開発やFlutterを始めようとしている人の参考になれば幸いです。
![lifterlog_screenshot_アートボード 1-01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/200520/7459183b-28bb-ad45-48a4-50a10ee6fe88.png)
※因みにパワリフターとは
[パワーリフティング](https://ja.wikipedia.or

元記事を表示

[Android]Retrofit + OkHttp + MoshiでGithub APIを使う

AndroidでAPIを実装する時の手法をまとめました。

## ざっくり説明

– アーキテクチャはシンプルなAndroid MVVM
– API実装には`Retrofit` `OkHttp` `Moshi`を使用
– 言語はKotlin
– Github Search APIでリポジトリを検索

## ソースコード
こちらに置きました。
https://github.com/usk-lab/AndroidGithubApiSample

## 実装画面


![Screenshot_20200908-144710.png]()

単純に検索文字を打ち込み、検索結果を表示します。

## API部分の実装

– GithubInterface:APIの定義
– GithubRepository:API処理の実行
– Git

元記事を表示

【Flutter/コード自動生成】FlutterGenを使ってみる。

こんにちは。最近はニホンザルにハマっている[minako-ph](https://twitter.com/minako__ph)です。
_※おすすめの猿山があったら教えてください_

昨日、[@wasabeef_jp](https://twitter.com/wasabeef_jp) さんが このようなTweetをされてらっしゃいました。

元記事を表示

OTHERカテゴリの最新記事