Android関連のことを調べてみた2021年01月27日

Android関連のことを調べてみた2021年01月27日

[Android]ConstraintLayoutを使って、画面内からはみ出さずにTextViewを改行させる

## はじめに
この記事では[ConstraintLayout](https://developer.android.com/training/constraint-layout)とそのヘルパーウィジェットである[flow](https://developer.android.com/reference/androidx/constraintlayout/helper/widget/Flow)を使って、下記の図のようなタイトルの長さに合わせて、画面から右端のコンポーネントがはみ出さないように中央のTextViewを改行させるレイアウトを作成するのに色々てこずったので紹介します
![簡易説明.001.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82263/d613ecdd-542b-0de5-1dc7-08afffbab1c2.jpeg)

## flowを使って並べる
### flowとは
ConstraintLayoutのflowとはConstraintLayout内のViewの整列に便利なヘル

元記事を表示

【Android】Intentリンクを作成する

## はじめに
前回はターミナルからadbコマンドでアプリを開いてみた。[前回記事](https://qiita.com/kilalabu/items/7b84694d542250259e78)
今回はリンクをタップするとアプリが開く実装をする。
![book.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670405/fed0f58f-6ca0-5492-6c79-49cf6b79aef5.gif)

## インテントリンクについて
Androidではインテントリンクを使うとWebページから直接アプリを起動できる。
また、タップした時点でアプリがインストールされてなければPlayStoreに遷移することも可能。

### 構文
インテントリンクを作成するには以下の構文に沿って作成する必要がある。
※ 全て設定する必要はない。

“`
intent:
HOST/URI-path
#Intent;
package=\[string\];
action=\

元記事を表示

Unity2020でGradleビルドエラー

# ことの発端
ずっとUnity2019(1.5f1)でアプリを開発していたので、新規のアプリでUnity2020(2.1f1)を使ってみたくなった。Android向けにビルドしたところ、`CommandInvokationFailure: Gradle build failed.`とやらが出てビルドが成功しない。

ビルド時に複数エラーが出ていたが、主なのは下の2つ。

“`
FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ‘:launcher:processReleaseResources’.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
> Android resource linking failed
“`

“`
CommandInvokationFailure: Gradle build f

元記事を表示

BitriseにContributeをする

# BitriseにContribute
「[Get Info on Android App Bundle](https://www.bitrise.io/integrations/steps/get-info-on-android-app-bundle)」というIntegrationをBitriseにContributeしました。Android App Bundle(.aab)から情報を抽出できます。
![Get Info on Android App Bundle](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125724/eb4e429f-52e8-4ac9-2f6a-69a06c583716.png)

# 背景
Bitriseでは、APKから情報を抽出するステップはいくつか公開されているものの、Android App Bundle(.aab)からパッケージ名やバージョンを抽出するワークフローステップが見当たらなかったため、自作のスクリプトを作成して抽出していました。
主にFirebase App Di

元記事を表示

AndroidStudio[Material Design]を導入

<記録用>
AndroidStudioへMaterialDesignを入れてみる。

参考サイト
https://material.io/develop/android/docs/getting-started

元記事を表示

【Android】EditTextのソフトウェアキーボードのボタンを変更する方法

# 想定読者
Android開発経験1年未満でUI作成を担当することになった方

# ソフトウェアキーボードのボタンを変更する

“`
android:imeOptions=”actionSearch”
“`
とする虫眼鏡になります!

では他にはどのようなボタンに変更されるでしょうか?
答えはここにあります!

[TextView  |  Android デベロッパー  |  Android Developers](https://developer.android.com/reference/android/widget/TextView?hl=ja#attr_android:imeOptions)

# まとめ
公式ドキュメント最高!
ただ、そこまでたどり着くのが難しいと思うのでこの記事を道しるべとしてください!

元記事を表示

Android開発基礎

## 1. はじめに
Android Studioで書籍管理アプリを作成しましたので、
その際に学んだ技術を備忘録として、残しておきます。
*正しくない内容も含まれているかもしれませんので、その際はご指摘頂きたく、お願いします。

## 2.環境
MacOS Catalina 10.15.7
Android Studio 4.1.1

## 3. 学んだこと一覧
1. 画面遷移(Activity, Fragment)
2. Action Bar関連
3.

***
### 1. 画面遷移
画面の遷移と言うより、画面の呼び出しが正しい表現。

– Activity呼び出し

“`kotlin:LoginActivity.kt

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

// signUpBtnをclickしてSignUpActivityを呼び出し。
// 呼び出し後、finish()することで、LoginActivityを終了さ

元記事を表示

MSAL(Microsoft Authentication Library)を使用したSSOにおけるアクセストークンの有効期限について

# 背景
上司いわく、MSALを使用してSSOを行うと、アクセストークンの有効期限が1時間だから
1時間毎に再認証が必要で、スマホ使っている人がアカウントを再選択する必要があるらしい。

個人的には、それマジ?その仕様だと実際使いづらいと思うしなんかいい感じに更新してくれるんじゃないの?
って思ったんですけど、ちゃんと調べた事は無かったので調査しました。

# 結論
1時間毎に再認証する必要はない。
ドキュメントから、デフォルト90日間連続して操作しなかった場合には再選択が必要になる。

# ドキュメント調査
以下のリファレンスには期限切れが近いトークンを更新できると記載がある。
https://docs.microsoft.com/ja-jp/azure/active-directory/develop/msal-acquire-cache-tokens#acquiring-tokens-silently-from-the-cache
> また、期限切れが近いトークンを更新することもできます (トークン キャッシュには更新トークンも含まれるため)。

また、以下のページではトークンの

元記事を表示

【ionic】面倒臭がりでもできる、アラーム機能

時計やスケジュール張のアプリはもちろんですが、漫画アプリやコミュニケーションツールなどなど。通知機能はいろんなスマホアプリで活用されています。

今回はその中のアラーム通知をスマホアプリで実装する方法を「[ionic](https://ionicframework.com/jp/docs/intro)」というフレームワークを用いて紹介させていただきたいと思います。

# アラーム設定方法
基本的にはアラームの方法は2種類あります。

* プッシュ通知(リモート通知)
オンラインでの通知をすることができます。例えば、アプリ提供側から新着情報をユーザに提供したい場合はこれを使って通知を送ることができます。

* ローカル通知
プッシュ通知とは逆にオフラインの機能になります。ユーザが自分で時間を設定して、その時間に通知を受け取りたい場合に使えます。

一般的にアラームとなるとローカル通知をイメージされる方が多いと思います。今回はそのローカルでの通知を使ったアラーム機能を紹介します。

# ionic公式より
ionicの公式ページに[Local Notification](https://

元記事を表示

LinuxからAndroid(その逆も)へバックアップ

Alpineでも日本語入力Mozcが利用可能であることは確認できました。
現在は、Arch Linuxベースの[Manjaro Linux](https://manjaro.org/)(xfce)に落ち着いています。
グラフィカルなインストーラー)(Calamares?)でインストール先のパーティションも手動で選べます。
日本語環境も整えやすいです。

個人的にはブラウザのfirefoxがあれば、Webは一通り見れるし、動画も再生できる。Webメールのgmailも見れる。
Yahooのニュースのライブ動画もUser Agent Switcherのアドオン入れて、Windowsと同じですよ宣言しておけば、再生できます。

バックアップに使うアプリ(ソフトウェア)は、
syncthing
を選択しました。P2Pらしい。

無料のクラウドストレージには限度がある。クラウドまでは必要ない。アクセスするのは重たいし。
バックアップも無意識にLinuxとAndroidで同期(Sync)してくれたら、助かる。そういったニーズのアプリです。
私の場合には、スマホに取り付けたSDカードにバックアップでき

元記事を表示

RxJavaをAndroidのLifecycleを考慮していい感じに使いたい

RxJavaをAndroid上で扱うに当たって、LifecycleとかLiveDataとかと併せて使うと便利そうだよね。という何番煎じだか分からないネタです。

# Disposableをライフサイクルに合わせて自動的にdisposeしたい

AndroidでRxJava/RxKotlinを使う場合、以下のようにonDestoryなどでDisposableのdispose処理をしないといけないのが面倒ですね。

“`kotlin
hogeObserver
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe({}, {})
.addTo(compositeDisposable)

override fun onDestroy() {
compositeDisposable.dispose()
}
“`

しかし、Lifecycle系の機能を使えば自動化できそうだよねーと誰もが考えるでしょう。
安直にはこんなところでしょうか?

元記事を表示

100均防犯ブザー+Atom lite+androidで着信通知デバイスを作る

# ご注意
本記事にはハードウェアの改造が含まれています。またソフトウェアの実装においてセキュリティーへの考慮はほとんどしていません。なので真似して作る際のリスクは各人の判断でお願いします。
ソースコードのライセンスはMITとします。

![PXL_20210122_072239759.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58150/b319e0c8-999e-0266-e5d2-2ff6e707afaa.jpeg)

# 動機
実家の父親いわく、母の耳が弱くなってスマホの着信に気づかないことが多くなって困っているとのこと。着信がわかりやすくなる機械ってないの?
# 調べてみた
有線電話なら
https://www.yodobashi.com/product/100000001002096313/
みたいな「リンガー」というものが割と昔からある。
しかしスマホでは1つしか見つけられなかった。

# ざっくり

元記事を表示

【Android / Kotlin】双方向 DataBinding + Clickイベント / サンプルアプリ実装

# はじめに
[こちら](https://qiita.com/tkmd35/items/ed2ae410e875aba165f7)の記事にて Java で同様のサンプルアプリを作成している。
今回はその Kotlin バージョンである。

## 双方向データバインディングとは(一方向との違い)

– 一方行データバインディング
– ViewModel などの中でデータを変更 → View に反映
– 双方向データバインディング
– ViewModel などの中でデータを変更 → View に反映
– ユーザが View でデータを変更 → ViewModel にデータの変更が反映(通知)

一方向が ViewModel などのロジックファイルから View 側への通知だけであるのに対し、
双方向ではユーザがアプリのフォームなどに値を入力したときなどに、ロジックファイルの方にも値の入力(変更)が通知される。と言うものである。

なお一方向データバインディングについては 言語はJavaですが[こちら](https://qiita.com/tkmd35/items/f5cc228

元記事を表示

Kotlin Multiplatform Mobileで作ったプロジェクトで実機ビルドができない場合の対応

# 概要
プラグイン`Kotlin Multiplatform Mobile`を利用してプロジェクトを作った際、実機ビルドができないとなった時の対応。

– [Kotlin Multiplatform Mobile](https://plugins.jetbrains.com/plugin/14936-kotlin-multiplatform-mobile)

エラー内容としては下記。

“`
${Path}/iosApp.xcodeproj Building for iOS Simulator, but the linked and embedded framework ‘shared.framework’ was built for iOS.
“`

# 原因
AndroidとiOS側で共有されている’shared.framework’がiOS Simulator用にビルドされていて、実機では使えないという話。

FWは以下のような処理を経て生成される。
具体的にはConfigurationを基に各ターゲット向けに生成されたFWをコピーし、`xcode-frameworks`

元記事を表示

【iOS/Android】ネイティブアプリ開発をしたい人への上達マップ【初心者】

## 想定読者:これからネイティブアプリを開発したい人
想定読者に向けて、上達の全体像をお伝えします。
新人や駆け出しエンジニアの方が自分がどのあたりにいるか把握でき
モチベーションアップになれば幸いです。

## まずは入門書の前半くらい
画面のレイアウトを作れるようになる
数字や文字列を表示できるようになる
ボタンを作る
ボタンを押したら、数字が増えたり減ったりするカウンターを作れるようになる
画面遷移ができるようになる
画面遷移の時に値を渡せるようになる

## 入門書の後半くらい
値を保存できるようになる。
値を呼び出せるようになる。
データベースにデータを保存できるようになる。
データベースからデータを読み出せるようになる。

色や動きなどを実装できるようになる

## 結構大変になってくる
通信処理ができるようになる
エラーハンドリングができるようになる

## お、そろそろ実務の駆け出しくらいには行けるか?
綺麗にレイアウトを組めるようになる
(AutoLayoutなど)
デザインガイドラインを理解する
非同期通信ができるようになる

アプリの審査に提出できる
権限周りが

元記事を表示

DIライブラリ「Hilt」のセットアップ&使い方(Kotlin)

## はじめに

本記事は [Swift/Kotlin愛好会 Advent Calendar 2020](https://qiita.com/advent-calendar/2020/love_swift_kotlin) の21日目の記事です。
空いているので埋めました。

Hiltのセットアップ方法と使い方を紹介します。

## 「Hilt」とは?

Android向けのDIライブラリです。

Daggerの上に構築されており、DaggerコンポーネントやAndroidクラスを自動的に注入するコードを生成するため、Daggerを使うよりボイラープレートが減ります。

## 環境

– OS:macOS Big Sur 11.1
– Android Studio:4.1.2
– Kotlin:1.4.10
– Gradle:6.8
– Gradle plugin:4.1.2
– Hilt:2.31-alpha

## セットアップ

### kaptのセットアップ

Hiltはアノテーションを使ってコードを生成するため、kaptが必要です。
以下の記事を参考にセットアップしてください。

元記事を表示

【Android / Kotlin】プロジェクトでアノテーション(@)を使えるようにする

# はじめに
Kotlin でデータバインディングを使うために、**kapt** の導入が必要であることを知った。
具体的に言うと自分の場合は
“@get:Bindable ~“と言う記述をしても“BRクラス“に監視変数が生成されずにつまずきました。調べた結果 **kapt** の導入に行き着きました。

# なぜ必要なのか
**kapt** とは kotlin-annotation-processing-tools の略であり、Kotlin プロジェクトでもアノテーション(@)を使い自動コード生成ができるようにするもの。
つまり、Dagger や DataBinding などを利用する際に導入が必要となるようである。

# 環境
– Android Studio: 4.1.1
– Build #AI-201.8743.12.41.6953283, built on November 5, 2020
– Runtime version: 1.8.0_242-release-1644-b3-6915495 x86_64
– VM: OpenJDK 64-Bit Server VM

元記事を表示

DialogFragmentの背景色を透明 or 指定する

## やりたい事

マテリアルデザイン化したDialogFragmentの背景のグレー(スクリム)を透明 or 色を指定したい

スクリムとは何か?はMaterial Designガイドラインで説明されている
https://material.io/components/dialogs#anatomy

## 完成形

## 実装コード

やり方は style.xml or コードの2通りがある。

### style パターン

“`xml:style.xml

<

元記事を表示

Gradleプラグインを適用するスマートな書き方

`app/build.gradle`

“`groovy:before
apply plugin: ‘com.android.application’
apply plugin: ‘kotlin-android’
apply plugin: ‘kotlin-android-extensions’
“`

“`groovy:after
plugins {
id ‘com.android.application’
id ‘kotlin-android’
id ‘kotlin-android-extensions’
}
“`

## 参考リンク

– [Using Gradle Plugins](https://docs.gradle.org/current/userguide/plugins.html)

元記事を表示

Googleマップのナビ音声を茜ちゃんに変える

## デモ

アカネチャンカワイイヤッター

そんな高度なことはしてないですが、
ブログとか持ってなくて、他に書く場所もないのでここに書かせてください。

## ひつようなもの

* Android端末
* Andorid Google Map アプリ
* Andoroid ナビボイスチェンジャー アプリ
* https://play.google.com/store/apps/details?id=jp.nekoteki.android.navivoicechanger&hl=ja&gl=US
* PC (Windows)
* PC ZIP圧縮ソフト(WinRARなど)
* Android PC データ転送用ケーブル
* **【重要】茜ちゃんのめっちゃかわいい音声ファイル一式**
* (ナビボイスチェンジャーでDLします)

OPPO Reno 10X Zoom (Android 10)
Google Map Ver.10.58.2 で動作確認済です
iPhoneとかでも同じ方法でできると思いますが、動作未確認です

#

元記事を表示

OTHERカテゴリの最新記事