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

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

【Android】時間を表示するView『AnalogClock』

# はじめに
前回は デジタル時計を表示する『TextClock』を記事にしました。
よければそちらも見てください →[【Android】時間を表示するView『TextClock』
](https://qiita.com/Tsubasa12/items/443db0ce5d89667a25bf)

今回は アナログ時計を表示する『AnalogClock』を紹介します。

# AnalogClock
使い方としては 先述したTextClockの記事に書いてあるのと同じで
AnalogClockクラスか LayoutにAnalogClockタグを追加して用います。

AnalogClockではデジタル時計のように時計の型式を変えることはできませんが、
AnalogClockでは時計の見た目を変更することができます。

xml側で
android:dial属性で, 時計の文字盤の画像
android:hand_minute属性で, 時計の長針の画像
android:hand_hour属性で, 時計の短針の画像
をそれぞれ指定することができます。

また、AnalogClockはAPI le

元記事を表示

AndroidStidioファイル内のコード置換方法(Mac)

今回はxmlなのでViewのidの名前を変更するときなど、ConstraintLayoutを使用しているとViewのidを複数箇所に記載している事などがあるので、その場合に便利だったりします。

# ファイル内のコード置換方法
`command + F`でまず、検索を表示させます。
ここにリネーム前文字を入力します。

`command + R`でリネーム後の文字を入力します。

Replaceを押すと置換されます。
Replace Allはファイル内全て置換されます。

![スクリーンショット 2022-08-21 19.24.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274615/c97cdd19-3266-b2de-afc8-fb7b077f0bd1.png)
このスクリーンショットの場合androidがappに置換されます

以上です。

元記事を表示

Room等で作成したDBの配置先とDB内を参照する方法

# はじめに
Room等でデータベース絡みの実装を行う際に、DB内のデータを参照したり、DB消してみたり等色々検証が必要ですよね。
その際に必要不可欠なDBの配置先とDB内を参照する手順を備忘録的にまとめておこうと思います。

# DB配置先確認方法

画面右下のDevice File Exprorerから、[data] > [data] > [パッケージ名] > [databases]の中にroom等で作成したdbが配置されています。
こちらから対象のdbを消したりできるので、検証時に便利です。

# DB内参照方法

Jetpack ComposeでViewModelを使わずに、Composable関数を使って状態とロジックを切り出す!

## はじめに
最近、Androidアプリ開発においてJetpack Composeを使用する機会が増えたことを嬉しく感じています。

この記事では、**Jetpack Compose** で、 **ViewModelを使わないで** に **Composable関数(Factory Function)** を使って、**状態とロジック** をViewの外に切り出す方法 について、説明しています。

**Composable関数(Factory Function)** を使えば **「状態やロジック」** を簡単にViewの外に切り出すことができます。
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f39333730332f65613365366164372d306130302d323436342d323935392d3737386566313365363232372e706e67.png](

元記事を表示

AndroidのAPN Type一覧

# 前提
Androidのモバイルネットワークの設定においてAPNを登録することがあります。その中でもAPN Typeに関してまとまった記事がなかったため、メモがてらに作成します。

## Android コード
https://android.googlesource.com/platform/frameworks/base/+/a79bad63a3a813d0c38babd8d74c4076a43d47d/telephony/java/android/telephony/data/ApnSetting.java

# Type 一覧
| 内容 | 文字列 | 概要 |
| —- | —- | —- |
| TYPE_ALL_STRING | “*” | データ接続用のAPNタイプ |
| TYPE_DEFAULT_STRING | “default” | デフォルトのデータトラフィックのAPNタイプ |
| TYPE_MMS_STRING | “mms” | MMS(Multimedia Messaging Service)トラフィックのためのAPNタイプ |
| T

元記事を表示

Jetpack Composeで画面幅を取得して4分割する方法

## はじめに
今回はまず画面の幅を取得して、その上で最小値を設定して4分割した値を取得し、Jetpack ComposeのRowの中でそれぞれ要素に横幅を設定して呼び出していこうと思います。

## 画面の幅を取得
まず、画面の横幅を取得するところからやっていこうと思います。

“`Kotlin

@Composable
fun Root() {
DetailSection(
modifier = Modifier
.fillMaxWidth()
)
}

@Composable
fun DetailSection(
modifier: Modifier = Modifier
) {
val configuration = LocalConfiguration.current.screenWidthDp.dp

Row(
modifier = modifier,
horizontalArrangement = Arrangement.Start,
verticalAlignment = Alignment.

元記事を表示

Unity で Google Mobile Ads (AdMob) を使うコード

## 前提
– Unity 2021.3.8f1
– Google Mobile Ads Unity Plugin v7.1.0
– Apple App Store、Google Play Store
– この記事では、Google Mobile Adsの一部機能を限定的に使用し、汎用性のない部分があります。
– この記事では、以下の内容を扱いません。
– Google Mobile Adsのルールやコンソールの使い方など
– Unityエディタの使い方やモバイル向けのビルド方法など
– この記事のソースは、実機でテストしていますが、本番広告でのテストはしていません。
– プロジェクトで使用したIDはテスト用のもので、ストアで公開する製品に使用できるものではありません。

## できること
– AndroidまたはiOSで、AdMobを利用します。
– 複数のバナー、インタースティシャル、リワードビデオ広告の表示を制御し、シーンに応じて広告を切り替えます。
– 報酬の獲得を検出します。

## リソース
### このプロジェクト
– [ソース (GitHub)](https

元記事を表示

【Flutter】percent_indicator の使い方

## 初めに
percent_indicator とは、以下の画像のように何らかの達成状況を示すための Widget です。
家計簿のアプリや習慣化のアプリに多く使用される印象です。

## 準備
まずは、[percent_indicator パッケージ](https://pub.dev/packages/percent_indicator) を「 pubspeck.yaml 」に記述します。
パッケージのバージョンは、特に制約がなければ最新のバージョンで問題ありません。

“`yaml: pubspeck.yaml
dependencies:
flutter:
sdk: flutter

percent_indicator: ^4.2.2
“`
Pub get をして準備は完了です。

## 実装
まず

元記事を表示

UIの状態管理方法とViewModelイベントの実装例

## はじめに
2021年12月に公式の[アーキテクチャガイド](https://developer.android.com/jetpack/guide?hl=ja)が大幅に更新されました。

この記事では、[UI層](https://developer.android.com/jetpack/guide/ui-layer?hl=ja)の大まかな解説と、[ViewModelイベント](https://developer.android.com/jetpack/guide/ui-layer/events)について、LiveDataとFlowの2パターンでの実装例を示しながら解説を行います。

## UI層の大まかな解説
公式のアーキテクチャガイドをおさらいしてみると、 `UI層、Domain層、Data層`の3つに分かれており、それぞれ`一方向に依存している`ことが分かります。

この一方向に依存しているというのが、後から重要になってくるので覚えておいてください。
![mad-arch-overview.png](https://qiita-image-store.s3.ap-nort

元記事を表示

JetpackCompose BottomNavigation の基本的な構成

![Reflector Recording.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/588914/2d744d55-4699-e0c5-c0ae-216c5210948e.gif)

# 構成

シンプルに構成します。

![スクリーンショット 2022-08-18 19.14.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/588914/59a48ebe-9e3f-b6a0-f24b-fb8f0a4ff13f.png)

メイン画面を表示する部分は

「NavHost」

それを表示切り替えする下側に並んだ操作部分は

「BottomNavigation」

です。

コードは以下のように構成できます。

“`kotlin
@Composable
fun MainScreen() {

val navController = rememberNa

元記事を表示

【Flutter】アプリアイコンを変更する

## 初めに
Apple Store や Google Play Store にアプリを表示させる場合、当然のことながら、自分独自のアイコンを作成して表示させる必要があります。
今回は作成したアイコンをアプリアイコンとしてホーム画面に表示させる方法を紹介します。

## flutter_launcher_icons
今回は [flutter_launcher_icons](https://pub.dev/packages/flutter_launcher_icons) というパッケージを使用します。
このパッケージはアプリのアイコンを変更する際に使用されるパッケージです。

## 準備
まずは、パッケージのバージョンを「 pubspeck.yaml 」に記述します。
このパッケージを使用するのは開発段階であるため、`dependencies` ではなく、 `dev_dependencies` に追加します。

パッケージのバージョンは、特に制約がなければ最新のバージョンで問題ありません。
“`yaml: pubspeck.yaml
dev_dependencies:
flutt

元記事を表示

各ProductFlavorsによって使用するAPIエンドポイントを変えたい

# 初めに
前回の記事で書くBuildTypeによって要素を変更する処理を紹介したので、今回はProductFlavorsによって変更する処理を書いていこうと思います。
### 本文
前回同様`build.gradle`に書いていきます

“`gradle
productFlavors {
register(“stg”) {
buildConfigField(
“String”,
“API_ENDPOINT”,
“\”api_end_point/\””
)
}
register(“prd”) {
buildConfigField(
“String”,
“API_ENDPOINT”,
“\”api_end_point\””
)
}

元記事を表示

インストール済みのアプリを一覧表示させる

# 動作画面

# 解説
デフォルトで[PackageManager](https://developer.android.com/reference/android/content/pm/PackageManager)というアプリを管理するマネージャが用意されているみたいなので、こちらを使用して実装します。今回のView側はJetpackComposeで実装しているので難しいロジックを考える必要は無いですね。

“`MainActivity.kt
class MainActivity : ComponentActivity() {
@SuppressLint(“QueryPermissionsNeeded”)
override fun onCreate(savedInstanceState: Bundle

元記事を表示

Kotlin Nativeってandroid向けにも書けるんですよ

# Kotlin Nativeってandroid向けにも書けるんですよ

この記事は2022年7月20日に開催された[Qiita Night〜2022年、Androidアプリはどう作る?〜](https://increments.connpass.com/event/251564/)でLTした内容の記事版です。
Qiiita様にまとめていただいたイベントレポートは[こちら](https://qiita.com/Qiita/items/0d9bb3d523e36319f1a5)です。
検証に使ったプログラムは[GitHub](https://github.com/RyuNen344/KotlinNativeForAndroid)にて公開しています。

# Android NDK使ってますか?

– androidエンジニアは普段kotlinもしくはJavaを用いてアプリを作成します。
– Android NDKは処理を高速化したいときやメモリ管理を手動で行いたい場合に使用します。
– linkerの設定やCmakeList.txtの準備などいくつか超えなければならないハードルがあります

元記事を表示

Flutter 3.0.x 環境をmacOS上に構築する(XcodeとFlutterの複数バージョン対応版)

# なぜこの記事を書いているか

以前、[Flutter 2.5.x 環境をmacOS上に構築する(XcodeとFlutterの複数バージョン対応版)](https://qiita.com/uehatsu/items/bdd652464a81c9c71ff7)と題した記事を投稿したのですが、この記事では3.0.x環境でも同様の手順で構築できるのかを検証する意味も含めてトレースします。

# 環境(2022/08/17現在)

– MacBook Pro (Intel Mac)
– macOS Monterey (12.5)
– Flutter (3.0.5)
– Android Studio (Chipmunk | 2021.2.1 Patch 2)
– Xcode (13.4.1)

# インストール

## Homebrew

今回もHomebrew経由で色々なものをインストールします。

“`bash:terminal
/bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HE

元記事を表示

Android13で追加されたMaterial YouのThemed app iconsに対応する

Android13では、ユーザーのテーマに合わせてランチャーアイコンのtintを設定する機能が新たに追加されました。
これにアプリ側で対応する方法を紹介します。
https://developer.android.com/about/versions/13/features#themed-app-icons
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/53293/77f049d5-70a2-ba59-efb8-77bc1a6b8a59.png)

## 対応
Adaptive iconに``を一行追加すればOKです。
“`xml



JavaからKotlinの拡張関数を呼び出す

## やること               
タイトルの通りです。
JavaからKotlinの拡張関数を呼び出し方を書いていきます。

## どうやるか?
JavaからKotlinの拡張関数を呼び出すときは、`ソースファイル+Kt`という名前のクラスのstatic関数としてコンパイルされる。
Javaから呼び出す場合は、`this`となるオブジェクトが第一引数となります。 
実際には下記のような感じ。

Kotlinの拡張関数
“`Kotlin:Extension
fun fromJava?.toMapping(): Qiita {
return Qiita(
account = this.account,
username = this.username,
twitter = this.twitter
)
}
“`

Java
“`Java
qiita = ExtensionKt.toMapping(fromJava);
“`

以上です。

元記事を表示

AndroidのLogとTimberについて

### AndroidのLogとTimberについて
Android開発をしている際にLogを用いてデバックや値の確認をする人が多いと思います。今回、普段使っているLogについてもっと使いやすい方法はないのだろうかと思い調査をしてまとめました。そこでTimberというライブラリを知ったのでTimberについてもまとめました。

### Logについて
まずLogはClassとして定義されていてLogを出力するAPIを提供しています。その中にも様々なmethodが存在しています。そしてLogには優先度というものが存在しています。優先度の高い順番に記載をすると以下のようになります。

| Log Type | 意味 |
|:———|——|
|e|error エラー|
|w|warn 警告 
|i|info 情報
|d|debug デバック|
|v|Verbose*1 詳細|

*1 verbose : 口数が多いなど意味があり詳細を表しています。

#### コードでの利用方法
実際のコード上では以下のような形式で記載されます。

“`kotlin
Log.e(“Ma

元記事を表示

【Android】時間を表示するView『TextClock』

# 初めに
今回はデジタル時計で時間を表示させるためのView 『TextClock』というものうを見つけたので、それをご紹介します

# TextClock
デジタル時計を表示させるには **TextClockクラス**か Layoutに**TextClockタグ**を追加して用います。
TextClockはTextViewの子ViewなのでTextViewのメソッドを使用することができます。

TextClockのデジタル時計の表示形式は24時間表示か12時間表示のどちらかを定義することができます。
**setFormat24Hour**メソッドを使用すると24時間表示内容を定義することができます。
XML側で定義する場合は
“`
 android:format24Hour=”HH:mm:ss”
“`
といった感じで定義することができます。

# タイムゾーンを指定
TextClockではデジタル時計のタイムゾーンを指定することができます。
setTimeZoneメソッドを使用するとタイムゾーンの指定が可能になります。
XML側で定義する場合は
“`
android:time

元記事を表示

Android Studioのメモリーサイズを変更する方法

# はじめに
たまにAllroidStudioのメモリーサイズが足りなくなり、警告が出たりしますよね。
その場合の対応方法としてメモリーサイズの変更方法を残しておこうと思います。

# 変更方法
Android Studioのメモリーサイズを変更するためには、VMオプションから設定する必要があります。
VMオプションは、`help→Edit Custom VM Options`という項目から設定可能です。

上記からVMオプションを開くと、以下設定の記載があると思いますので、サイズを上下させることでメモリーサイズを変更可能です。

“`
-Xmx3072m
“`

上記を変更したら、Android Studioを再起動すれば反映されるはずです。
設定は以上になります。

# さいごに
こういった設定は設定を変更する頻度

元記事を表示

OTHERカテゴリの最新記事