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

Android関連のことを調べてみた2019年12月04日
目次

Android StudioでAndroidの画面をキャプチャ/録画しよう

# はじめに
アプリ開発の際、端末のキャプチャや録画したい時、
Android Studioで簡単にできる方法があったので紹介します。

## キャプチャの方法
まず、USBデバックを有効にし、
端末のキャプチャしたい画面を表示しておきます。
そして、下記に画像に表示されいている、
Android StudioのLogcatにあるカメラのアイコンをクリックします。
はい、キャプチャできました!
めっちゃ簡単ですね!
![スクリーンショット 2019-11-28 17.56.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/472891/2cd6c391-0797-8619-a1e6-7630ca0186aa.png)

## 録画方法
次に、録画の方法を紹介します。
録画はMP4形式で最大3分間録画できます。
先ほどの画像のカメラアイコンの下にある、動画アイコンをクリックします。
クリックすると、録画オプションが設定できます。
![スクリーンショット 2019-12-03 18.09.54.png](

元記事を表示

zxing-android-embedded を使ってみる (Kotlinで)

## はじめに
この前、授業成果物として簡易的なQRコード読み取りアプリケーションを制作したときに使ったライブラリについてメモを残しておきます。

## 今回使用したライブラリ
* ZXing Android Embedded
https://github.com/journeyapps/zxing-android-embedded

## できること
簡単に QR 読み込み機能のアプリケーションが作成できます。
![デモのキャプチャ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276546/d7232f58-b0f1-9f49-0f65-98a7701a2d82.gif)

## 使ってみる
公式ドキュメントもあり書かれている通りに進めれば、動作できると思います。
あまり面倒な作業は必要なく、インポートするだけで実行可能です。

#### Gradle ファイルにライブラリを記載する
`build.gradle (app)` に以下の内容を追記します。

“`
repositories {

元記事を表示

Androidアプリのデバッグ中に “Source code does not match the bytecode”というエラーが出る

# エラー内容

Android Studioでアプリをデバッグ中に、以下の画像に示す
`Source code does not match the bytecode`
というエラーが出て正常にデバッグができない際の対処法です。

ZLHg5.png

# 原因
Gradleで参照しているコードが最新版でない。

# 解決方法
## その1
以下のコマンドを実行して、Gradleの依存関係をリフレッシュする。

“`
./gradlew build –refresh-dependencies
“`

# 参考
https://stackoverflow.com/questions/39990752/source-code-does-not-match-the-bytecode-when-debugging-

元記事を表示

Android 2.xなどで基本認証が通らないときのTIPS

# 話題:ベーシック認証のトラブル
Android 4.x以降では発生する頻度が下がったが、Android 2.x時代に頻発したトラブル。
> **基本認証で保護したページを、他の端末からは閲覧できるのに、
Android 2.xの端末からだけは閲覧できない**

何回id/pwを入力しても、幾度でも尋ね直してくる無間地獄。

#解決方法
##前提
| URI | ユーザ名 | パスワード |
| :– | :– | :– |
| https://foo.net | user | password |
の場合
##解決方法
“`
https://user:password@foo.net
“`
これだけ。
もしSSL未対応なら

“`
http://user:password@foo.net
“`
でも全然OK。

いったんこのURIでアクセスした後は既に認証が通っている状態になるらしく

“`
https://foo.net
http://foo.net
“`

とアドレス欄の内容を修正してから再アクセスしてもid/pwを尋ね直されることは、もう、ない。

#注意点

元記事を表示

Android Data Binding(Codelabs for the 2019 Android Dev Summit: Mountain View, October 23-24, 2019.)

[Android Dev Summit 2019
Codelabs for the 2019 Android Dev Summit: Mountain View, October 23-24, 2019.](https://codelabs.developers.google.com/ads19/)

[Android Data Binding](https://codelabs.developers.google.com/codelabs/android-databinding/index.html?index=..%2F..ads19)の日本語訳

# 1.はじめに
## Data Binding Library
Data Binding LibraryはAndroid Jetpack libraryの一つであり、プログラムではなく宣言形式を使用して、XMLレイアウト内のUIコンポーネントをアプリのデータソースにバインドできます。
これにより、定型コードを削減できます。 このコードラボでは、次の方法を学習します。

– 既存のアプリでデータバインディングを設定する
– レイアウト式

元記事を表示

[Android] 加速度センサのサンプリング周波数が知りたいとき

端末依存で最大・最低・間隔が決まるので,確認用のコードを書いた。
メモです。

**Logcatに周期が[ns]で出力される**

“`kotlin
package com.example.getrotationtest

import android.content.Context
import android.hardware.Sensor
import android.hardware.SensorEvent
import android.hardware.SensorEventListener
import android.hardware.SensorManager
import android.opengl.Matrix
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import kotlinx.android.synthetic.main.activity_main.*
import java.io.BufferedRead

元記事を表示

[ Android ] 戻るボタン無効化

Androidで端末の戻るボタンを無効にする方法について述べる。

##方法
とても簡単でActivityクラスの**onBackPressed()**をオーバライドし、処理を書かなければ完了である。

~~~java
@Override
public void onBackPressed() {
}
~~~

##参考サイト
以下のサイトがとても参考になった。

[Android]端末の戻るボタンを使えなくする方法(onBackPressed)

元記事を表示

【Android/Kotlin】円を拡大するアニメーションの実装方法

## 基本画面
 2019-12-03 12.20.32.png

– FrameLayoutをmatch/matchで設定しています。
– 円のカスタムビューをvisible=GONEで設定しています。
– 星のImageViewを2種類おいています。
– 星をクリックすると、円が拡大描画されていきます。

“`activity_main.xml

Material Components時代のAndroid Themeを改めて理解する

AndroidのMaterial Componentsを利用する場合、

“`theme.xml

“`

上記のように、`Theme.MaterialComponents.Light`などを継承させてthemeを定義しているかと思います。
Dark Themeに対応する場合は`Theme.MaterialComponents.DayNight`などを継承させているでしょう。

世はまさにDark Theme時代と言っても過言ではなくなってきています。
今一度、Androidにおけるtheme/styleとは何かを簡単に整理していこうという記事になります。

# Material ComponentsのTheming

## デフォルトのThemeはどうなっているのか

Android Studioからプロジェクトを作ると、`colorPrimary`などのThemeが既に定義されています。
いきなりカス

元記事を表示

AndroidStudioのProject Viewで、パッケージをまとめずに全階層表示する

#環境
Android Studio 3.5

#連結されたパッケージ表示
プロジェクト内にファイルやパッケージを追加する時、AndroidStudioのProject Viewから直接追加している人も多いかと思います。
この時、設定によっては以下のようにパッケージが連結されて表示されています。

![スクリーンショット 2019-12-03 9.51.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235269/a9434c05-44e8-d8c8-3aa5-7dcf2df5761a.png)

model直下にrequestしかないため、個別に表示する必要がないと判断されていますね。

#パッケージを全階層表示
これだと、modelの下に`response`というpackageを追加したい時に少し面倒です。
そんな時はこのようにして全ての階層を表示させましょう。

Projectから
![スクリーンショット 2019-12-03 9.51.22.png](https://qiita-image-

元記事を表示

Firebaseのサーバーレスアプリ開発について(Android編)

## Firebaseサーバーレスアプリのニーズ
2~3年前からサーバーレスのアプリ開発(Android/iOS)が増えています。
特にFirebaseを使っているスタートアップをよく見かけます。

アプリの競争が激しい中、今はいいアプリを作るだけで売れる時代は終わっているかも知りません。
特に資金力の弱いスタトアップだと限られた資金で短期間に成果をあげることは難しいでしょう
資金調達の為にもより早くアプリを見せないといけないです。
そういったニーズの答えがFirebaseのサービスだと思います。

## Firebaseサーバーレスのメリット&デメリット

メリット&デメリットはあくまで私の個人意見です。
以下の内容以外にもいっぱいあると思います。

### メリット
– サーバー開発期間がゼロ
– サーバー管理が不要で開発に集中できる
– 無料枠でも結構使える
– Firestoreだとほぼリアルタイムで更新するのでチャット機能も簡単に実現できる

### デメリット
– 無料枠を超えると料金がちょっと高めになること
– Firebaseの詳細料金表:https://fireb

元記事を表示

GitリポジトリのライブラリをAndroidアプリから参照する

#Gitのリポジトリのライブラリを参照する方法

色々調べてトライしたけれど、ブランチ指定した場合にうまく動作するのがこの方法だったのでメモ
他の方法はmaster指定しかうまく動かなかった・・・

詳細は以下のソースコードをみてください。

[ライブラリのリポジトリ]
https://github.com/tokuyama-san/MyLibrary

“`ruby:build.gradle(Module)
apply plugin: ‘com.android.library’
apply plugin: ‘kotlin-android’
apply plugin: ‘kotlin-android-extensions’
apply from: ‘maven.gradle’ ←ここを追加

android {
compileSdkVersion 29

defaultConfig {
minSdkVersion 28
targetSdkVersion 29
versionCode 1
version

元記事を表示

【Android】license-tools-pluginで出力したlicenses.htmlで、URLが長いと改行位置がずれてしまう

#はじめに
アプリでライセンス表示を埋め込む際、色々な方法があるかと思います。
今回クックパッドさんが開発された[license-tools-plugin](https://qiita.com/nissiy/items/b0c98cf210b7fe8833a7)を使わせていただくこととなり、
実際に表示まで行なった際に表題の問題が発生してしまいました。
その原因と対応方法を自分用のメモとして残しておきたいと思います。

license-tools-pluginの詳細な使い方については、
他の方がわかりやすくまとめられている為、本記事では割愛させていただきます。
※[あの素晴らしいlicense-tools-pluginをもう一度](https://qiita.com/toranoko0518/items/dff1d1ad0afa9f5a733f#%E5%BF%85%E8%A6%81%E3%81%AA%E9%A0%85%E7%9B%AE%E3%81%8C%E4%B8%8D%E8%B6%B3%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B

元記事を表示

MotionLayoutのサンプルコードから学ぶMotion Editor

この記事は[コネヒト Advent Calendar 2019](https://qiita.com/advent-calendar/2019/connehito) 3日目の記事になります。

## はじめに
[Android Studio 4.0 Canary 4](https://androidstudio.googleblog.com/2019/11/android-studio-40-canary-4-available.html)に新機能として導入されたMotion Editorについて調べてみたので、公開されているMotionLayoutのサンプルコードをベースに、どのように利用されているのか紹介します。

## MotionLayoutとは?
– ConstraintLayout 2.0に含まれている機能
– 始まりと終わりのレイアウトをXMLで定義することによって簡単にアニメーションを実装することができる

## Motion Editorとは?
– Android Studio 4.0 CanaryからMotion Editor導入された
– IDE内でViewの関係

元記事を表示

Coroutines私的メモ2~Dispatchers, withContext, async/await~

[私的メモ1](https://qiita.com/sudo5in5k/items/90b92eb5b7f43ce4ecf5)の続きです

# 前提
前回同様、現在のスレッドがわかるようにloggerメソッドを仕込むことにします

“`kotlin
fun logger(msg: String) = println(“${Thread.currentThread().name} : $msg”)
“`

# dispatchers
コルーチンを使う際に、どのスレッドもしくはスレッドプールにて実行・制御したいということがあります

その際にdispatcherを指定することで解決できます Dispatcherにもいくつか種類があるので使い分けたいところです

## Dispatchers.Main
UIに関する処理をするメインスレッドのためのコルーチン

## Dispatchers.Main.immediate
UI更新を即時行いたい際に使用される (e.g. textviewのtext更新とか)

## Dispatchers.Default
共有スレッドプールを使用し、CPUの

元記事を表示

【Android】世界一わかりやすいRecyclerViewの実装

この記事は[FUN Advent Calender 2019](https://adventar.org/calendars/4058)の3日目の記事です。

昨日の記事は、[【ガチ比較】登校ルートをチャリで往く](https://front-hair.hatenablog.com/entry/2019/12/02/000021)でした。


# 前置き
Androidアプリ開発で、長ーいリストや逐次中身のデータ更新があるリストを扱いたいこと、結構あります。
そこでよく使われるのがRecyclerViewというものです。

この記事を書こうとしたきっかけとしては、大抵の人がRecyclerViewについて検索してたどり着く記事は大抵RecyclerViewを単体で扱ってくれていないというところからです。
~~RxJava….? DataBind….? 記事を読む人の学習コストをわざわざ上げていることがよくわかりません。分かっているなら話は別ですが。~~

ということで、今回はRecyclerViewをとりあえず動かせる最低限のコードをかんたんに解説していきます。プロジェク

元記事を表示

[Android / Kotlin / OkHttp] JSONをPOSTする話と拡張関数を触った話。

どうもこんばんわ

# 本題
インターネットで何か情報をとってくるアプリを作るのは楽しいものです。
そこでWebAPIをよくたたきますが、その時に便利なライブラリが「OkHttp」です。
HttpURLConnectionよりわかりやすく書くことができます。

# なんのAPIを叩くのか
調べるの面倒なので身近な**Mastodon**の投稿するAPIを叩こうと思います。
青い鳥と違いアクセストークンは何もしなくても設定画面の開発から生成することができます。すごい。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/409918/03e990bc-6109-d8f0-ef18-657bd4aa9ace.png)

# OkHttp導入

“`gradle
implementation(“com.squareup.okhttp3:okhttp:4.2.2”)
“`

# POSTまで書く。

**これ書く前にAndroidManifestにインターネットのパーミッション書き足して

元記事を表示

android開発で実機デバイスからAPIを叩けないときのトラブルシューティング

こんにちは

最近ノリでdjangoAPIを作り始めた雰囲気エンジニアです。

ラズパイでサーバー構築したのですが、djangorestframeworkをうまくインストールできず、まずはローカルで環境構築してdockerでデプロイしたいななんて思ってます

…情弱の僕には厳し(ry

とまあそんなこんなで、ローカルにてAPIを作り始めたのですが、お決まりの
python3 manage.py runserver
で、サーバーを動かすじゃないですか
WEBからならAPIを叩けるのに実機ANDROIDからは叩けません

①python3 manage.py runserver 0.0.0.0:80でサーバーを起動すること
~~理由はよくわかりません~~
android側では192.168.x.xなどのパソコンのプライベートIPを叩きます

Error: That port is already in use.
ポートがすでに使われていますというエラーが出たら(①のあとによく出てきます)

sudo lsof -i:80

これで起動中

元記事を表示

ViewPager2 + TabLayout + DataBinding

# はじめに
[DMMグループ Advent Calendar 2019](https://qiita.com/advent-calendar/2019/dmm)3日目を担当します!@mii-chang です!

2018年新卒入社でDMMにJOINし、今は **AQUIZ** というクイズアプリのAndroidアプリを開発しています:muscle::fire:
https://aquiz.jp/

クイズに答えてお金がもらえる!:moneybag:面白いアプリなのでぜひ皆さん遊んでくださいね〜〜!:raising_hand:?

さて、今回はJetpackに新しく追加された`ViewPager2`について書いていきたいと思います!:rocket::rocket::rocket:

# ViewPager2 とは
従来の`ViewPager`の進化版の`ViewPager2`。
今までは、各Fragmentを`PagerAdapter`を使って表示切り替えをしていました。
`ViewPager2`では、`PagerAdapter`の代わりに`RecyclerView.Adapter

元記事を表示

初めてのConstraintLayoutでChainStyleを利用してみた

# はじめに
新卒で初めてAndroidアプリの実装を行いました。
その際、ConstraintLayoutの利用方法について調べてみたので、
アウトプットとして同じ初心者の方の参考になれば良いと思い記事にしました。

# 目次
* ConstraintLayoutとは
* Chainの設定方法
* ChainStyleの種類
* Weightの制約

# ConstraintLayoutとは
ConstraintLayoutは、ウィジェットを柔軟な方法で配置およびサイズ設定できるようにするものです。以下のように様々な制約をつけることができます。

* 相対位置決め
* マージン
* センタリング位置決め
* 円形位置決め
* 可視性の動作
* 寸法拘束
* チェーン
* 仮想ヘルパーオブジェクト
* オプティマイザ

# Chainの設定方法
![output.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542499/46d529ad-36f9-5ac2-cf33-2cf524905fd7.gif)

元記事を表示

OTHERカテゴリの最新記事