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

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

【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を再起動すれば反映されるはずです。
設定は以上になります。

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

元記事を表示

Unity2021の2D Mobile[プログラミング]

# はじめに
 この記事は一つ前の**初期設定**を済ましていることを前提としています。それから、そこそこのプログラミング経験がある方でなければ分かり辛い表現が多いと思います。
 ご注意ください。

 Unityを初めてたったの二日目ですがUnityの仕様がだんだん掴めてきた現状です。
 備忘録として記事を書いている形ではありますが、あまりに基礎的なことなので自分でも見返すかはよく分かりません。まぁ誰かの役に立ったらいいや程度の認識で進めましょう。
 一日目に「一日あったら簡単なゲームくらい作れるやろwww」という甘い見通しが残念ながら達成されなかったのに続いて二日目も無事終わりそうですが、全容が掴めてきましたのでその先駆けとしてプログラミングについて書き留めておきたいことを書いていきます。
 特にTMPを使用していた場合、古いTextに関するプログラムは軒並み使えなかったので、TMPを使用していてボタンやテキストのUIのスクリプトアタッチが出来ないよ~!という方に参考にしていただければ幸いです。

https://qiita.com/king_dog_fun/items/60dcdf

元記事を表示

Unity2021の2D Mobile[初期設定]

# はじめに
 スマホのゲーム開発を始めようと思い至ったのは夏休みが暇すぎたからです。
 幸い僕にはあまりある時間と大量のプログラミングの経験とコンピュータに関する知識がありました。一日で簡単なゲームくらいは作れるだろうと思い適当なサイトを参照しながら開発を進めようとしたところ、参照しているサイトより進んだUnityのバージョンが存在していることに気が付きました。それがUnity2021です。正確にはUnity2021.3.8f1です。
 まぁ大丈夫だろうと最新の安定バージョンらしいそれをインストールして進めていたのですが、どうにも文字化けがあったり、エラーが起きたりで進められない。こうして僕の簡単な目論見をした一日は消費されていきました。
 この記事を書いているのは、その次の日です。
 この記事では僕が忘れてもいいように、Unityの2021において行うべきだと判断した初期設定の数々を書いていきたいと思います。

# Unity Hub

 Unityをインストールするため、あるいはバージョン管理をするためのソフトです。Unityを扱うにはこれを入れるのが最も賢いらしく、僕もそれには

元記事を表示

【Android】PCとBluetooth接続し、PCに文字列を送信する

# はじめに

AndroidスマホをPCとBluetooth接続し、PCに文字列を送信するアプリをBluetooth接続のサンプルコード[「android-BluetoothChat」](https://github.com/googlesamples/android-BluetoothChat)を基に作成しました。[「Android開発日記 AndroidのBluetooth通信(SPP)【初心者向け】」](https://mikulogi-tomo.hatenablog.com/entry/2018/01/04/033458)などにも同様の記事がありますが、将来の使い勝手を考慮し、接続先の選択を[android-BluetoothChat](https://github.com/googlesamples/android-BluetoothChat)と同様に別アクティビティでペア設定済みのデバイスから選択できたり、接続処理はUIスレッドとは別のスレッドでの処理としています。さらに、Android 12で動作させるために必要な変更を追加しています。

# 検証環境

この記事の内容

元記事を表示

AppiumでAndroid/iOSアプリのテストコードを書いてみた

# これは何?

所属しているチームのお隣のQAチームがテスト自動化ツールであるAppiumを使う機会があり、そこにちょっとだけ参加することになったので、お盆休みの勉強がてら環境構築とテストコードを書いてみました。
この記事は、そのときの手順を示しています。

# Appiumについて

https://appium.io/

Appiumは、モバイルアプリ向けのUIテスト自動化ツール。

サーバクライアントモデルを採用しており、テストコード側からクライアントライブラリ等を介してWebDriver API(の拡張)を叩くと、APIサーバ側でそれを解釈して、プラットフォームごとにあるUIテスト自動化ツール(UIAutomatorやXCUITestなど)の命令に変換し、アプリ操作の自動化を実現している。
クライアントの部分をAppium Client、APIサーバをAppium Server、命令を変換する部分をDriverと呼んでいる。

誤解を恐れずに言えば、Seleniumのモバイルアプリ版。

アーキテクチャについては、下記記事内の図が非常にわかりやすいのでお借りします(2022/

元記事を表示

3Dに縦回転するアニメーションを実装した話

現在作成している自作アプリに、3D方向にviewが回転するアニメーションを取り入れたかったので作成したときの備忘録です。

## やりたかったこと
– viewをタップすると、メンコみたいに縦方向に3D回転にする
– 表面と裏面があり、それぞれでレイアウトが違う
– タップするたびに表面⇄裏面で交互に表示される
– RecyclerViewに表示するViewとして扱いたい

## やったこと
### レイアウト

“`xml

元記事を表示

Google AdMobにアプリを登録する方法

### アプリ登録の手順メモ

1. AdMobのホーム画面を開く
1. 画面左側の[アプリ]-[アプリ追加]をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1719666/6af7f5ad-8f05-1819-ad7a-1086dd3cd657.png)
1. プラットフォームとストアにリリースされているかを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1719666/9fa1f34c-9ba0-1aa3-38a7-7236099c48d0.png)
1. アプリ名を入力(リリースして場合は後から変更されるので適当で良い)
1. ユーザ指標を選択し、アプリ追加をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1719666/9d224a77-5dfc-cc87

元記事を表示

adMobの審査が通らない

# 初めに
今回、Flutterでアプリを制作し、アプリの下部にGoogle adMobで広告配信することにした。
通常、adMobの審査は24~48時間とドキュメントに書かれているが、今回、自分のアプリでは約8日間時間を要した。時間がかかった原因について記録を残しておく。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663093/dfc92bef-0366-d63c-2d3d-2f98c41dceb6.png)
# 結論
結論としては下記の画面のお支払いの設定が必要だった可能性があると考えている。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663093/03cd9441-ca30-c9ed-c725-3917a8247fcb.png)
この支払の設定を行うと約12時間後に審査が通り、広告が配信されるようになった。
キュメント上に記述はなく、完全な因果関係はわからないが、これが審査が

元記事を表示

OTHERカテゴリの最新記事