Android関連のことを調べてみた

Android関連のことを調べてみた

【Android】Retrofit2使用時の戻り値の比較 – Call vs Response

# Retrofit2の戻り値
戻り値の型として、以下の2つを想定し比較する
– Call\
– Response\

## APIの実行
### Call\を使用する場合
APIの実行はCall\クラスの以下のメソッドを使用することになる
– Call#execute()
– 非同期処理
– Call#enqueue()
– 同期処理

### Response\を使用する場合
APIの実行は、APIの実行メソッドを呼び出すだけ
– APIの実行メソッドをsuspendメソッドにすることで非同期処理になる

## APIの結果の受け取り
– Call#excecute()を使用
– Call#excecute()の戻り値であるResponseから行う
– Call#enqueue()を使用
– #enqueue()の引数Callbackのcallbackメソッドから行う
– Response\を使用
– 戻り値であるResponseから行う

## 結論
– Response\を使用す

元記事を表示

【AndroidStudio】AndroidGradlePluginのバージョンアップにはアシスタント機能を使うと便利

# はじめに
以前ご紹介した[SDKアップデート時に利用できるアシスタント機能](https://qiita.com/YuukiYoshida/items/bf3e9cd20b658c24fb6e)など、最近AndroidStudioがどんどん便利になっていますが、今回はAndroidGradlePluginのバージョンをアップデート時に利用すると便利なアシスタント機能をまとめてみようと思います。

# AGP Upgrade Assistant
正式名称はタイトルの通りになりますが、こちらはAndroid Studio 4.2から追加された機能になります。
これまでは【AGPとGradleのバージョンを変更】→【Sync Gradle Files】→【エラーやワーニングの指摘箇所を修正】→【Sync Gradle Files】→と何度も確認する必要があり大変でしたが、アシスタント機能を利用することで簡単にバージョンアップが行えるようになりました。

![スクリーンショット 2024-05-12 11.59.58.png](https://qiita-image-store.s3.ap

元記事を表示

Jetpack composeで拡大鏡を実装する

# 初めに
今回はJetpackComposeを使って拡大鏡を実装していきます
### 本文
やること自体は至極単純で下記をModifierに設定するのみです
“`kotlin
var offset by remember {
mutableStateOf(Offset.Zero)
}
Modifier.magnifier(sourceCenter = {
offset
}
“`
ただし、`@OptIn(ExperimentalFoundationApi::class)`アノテーションを付けないといけないので注意してください

### さいごに
今回はJetpackComposeでの拡大鏡実装方法を紹介しました
どなたかのお役に立てれば幸いです

元記事を表示

簡単にお金を稼げるウェブサイトを作成する NONGKI303

Nongki303 は韓国発のオンライン ゲームで、このゲームはアジアのほぼすべての地域でよくプレイされています。Nongki303 は他のサイトの中で最もオンライン ゲームを提供しているサイトとして知られており、さらにこのサイトは非常に人気があり、プレイされています。なぜなら、このサイトには非常に洗練された機能がたくさんあり、このサイトでプレイしてみたいゲーマー向けのボーナス サポートもたくさんあるからです。 Nongki303 は、アジアの多くのオンライン ゲーム愛好家に推奨されています。

なぜnongki303でプレイする必要があるのですか?
ゲーム開発者として、nongki303 は技術的な観点からテストされており、このテストは国際標準に合格しており、ここでプレイするゲーマー向けに nongki303 が提供するイベントが多数あり、ゲーマーが好きなだけプレイできるようになります。

ゲーム開発者として、nongki303 は技術的な観点からテストされており、このテストは国際標準に合格しており、ここでプレイするゲーマー向けに nongki303 が提供するイベントが多数あり、ゲ

元記事を表示

JetpackComposeのPreviewで知っておくといいことがあるかもしれないTips

## はじめに
2023年3月からAndroidアプリエンジニアをしている KSND([GitHub](https://github.com/kosenda)、[X](https://twitter.com/ksnd_dev) )といいます。

最近LTしてみたいな〜と漠然に思っていて、PreviewについてLTしたら面白いのではと考えちょっとだけPreviewについて調べましたが大して話せそうなことがなかったのでLTを断念しました。
すぐに忘れてしまいそうだったので思い出せるようにこの記事を書きました。

今後、Preview関連でTipsを知ったらこの記事に追記しようと思ってます。

## Previewでダミーのテキストを使いたい時

Composeのライブラリ(`androidx.compose.ui:ui-tooling-preview`)で用意されている`LoremIpsum`(ロレムイプサム)というクラスを利用すれば自前でダミーテキストを用意しなくても良くなります。

– Android developers – LoremIpsum

https://develope

元記事を表示

Android Studio JellyfishのGeminiを触ってみる

Android Studio Jellyfishの安定版がリリースされ、Geminiが標準搭載されたようなので触ってみました。
どんなことができるのか把握するためのただの自分用メモです。

## 使ってみる

[こちら](https://developer.android.com/studio/preview/gemini?hl=ja)を参考にセットアップできます。

使用する際には、自分のプロジェクトを参照するか選べるようになっています。プロダクトに使う場合は参照させないようにした方が良いでしょう。

![スクリーンショット 2024-05-11 12.25.44(2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2724617/9c20133a-cda8-8b0a-5477-d62c9daae8c5.png)

コードを書かせたら、コードブロックの下にそのコードに関するオプションが出てきます。

![スクリーンショット 2024-05-11 12.42.18(2).png](https://qii

元記事を表示

[Flutter, VSCode]ワイヤレスデバッグでADB return null value

# 環境
VSCodeの拡張機能”ADB Interface for VSCode”(v0.22.4)を使用してAndroidに接続しワイヤレスデバッグをしています。
# 問題
deviceのIP addressとPortを入力すると”ADB return null value”というメッセージがVSCodeの通知欄に出力され、デバッグができるdevice listに追加されない問題がおこりました。
![ADB_return_null.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1655458/24f656a3-8e80-cc18-227a-558888b4d258.png)
# 対処法
VSCodeで“`Cmd + Shift + p“`を押して“`Kill ADB server“`を選択します。
![スクリーンショット 2024-05-10 18.37.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1

元記事を表示

a-5-1-1.Realm DBのライブラリの選定と適用(Gradle)

### a-5-1-1.Realm DBのライブラリの選定と適用(Gradle)

#### 目標設定
[一覧に戻る](https://qiita.com/ryouta33/items/57f5e51a26086151a0da)

#### Github

https://github.com/wakizaka24/AndroidTest

#### テスト実装

“`gradle:build.gradle
buildscript {
repositories {
google()
}
dependencies {
def nav_version = “2.5.3”
classpath “androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version”
}
}

plugins {
id ‘com.android.application’ version ‘8.0.2’ apply false
id ‘com.andr

元記事を表示

a-5-1-2(3).Realm DBのデータ保存と更新、削除(配列以外、配列)

### a-5-1-2(3).Realm DBのデータ保存と更新、削除(配列以外、配列)

#### 目標設定
[一覧に戻る](https://qiita.com/ryouta33/items/57f5e51a26086151a0da)

#### Github

https://github.com/wakizaka24/AndroidTest

#### テスト実装

“`kotlin:RealmTestActivity.kt
package com.example.androidtest

import android.os.Bundle
import android.util.Log
import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatActivity
import com.example.androidtest.databinding.ActivityRealmTestBinding
import io.realm.kotlin.ext.query
import k

元記事を表示

[Android] RecyclerView スクロール時にビViewPagerを非活性化

![](https://velog.velcdn.com/images/rmsxo5678/post/a5707960-d1d6-4e34-b65a-1c4c72610b53/image.gif)
# *ViewPager非活性化*

ViewPagerに 特定のRecyclerViewがある部分で他のタブに移動しないように、ViewPagerの動きを無効にする必要がありました。

そのサンプルコードは“`メインアクティビティ内でリサイクラービューをフラグメントに実装したが“`
“`フラグメント内のフラグメントはIncludeで表現されている “`

ViewPagerがタッチされると、そのタッチイベントのx、y座標を取得し、その座標が特定のRecyclerViewの領域内にあるかを確認して、ViewPagerの機能を無効にし、タッチが終了したらスワイプ機能を再度有効にするようにGitHubにコメントで記載していましたが、

サンプルではアクティビティでViewPagerのインターフェイスを設定し、onScrollメソッドが呼ばれるかどうかを決定し、リサイクラービューがスクロー

元記事を表示

Compose Multiplatformで利用できるようになったNavigationを使ってみた

## はじめに

[Compose Multiplatform](https://www.jetbrains.com/ja-jp/lp/compose-multiplatform/)は、[Jetpack Compose](https://developer.android.com/develop/ui/compose/) をベースにKMP(Kotlin Multiplatform)プロジェクトでUIを構築するためのフレームワークです。
ここ最近は、目まぐるしいスピードで進化をしており、Resource周りも共通で実装できるようになっています!
そして、alpha版ではありますが、ついに `Navigation` も利用できるようになりました🎉

実際に `Navigation` を利用したところ体験が良かったため、本記事で紹介します!

## Navigationとは?

[Navigation](https://developer.android.com/guide/navigation)は、アプリ内の様々なコンテンツ間を遷移するためのAndroidでのライブラリです。
このライブラ

元記事を表示

[Android]Build Variant(ビルドバリアント)のあれこれ

今までビルドバリアントについて知らなかったので色々調べたまとめ。
個人的備忘録として記事にします。
この記事はGroovyではなくKotlinでの設定方法を書く。

# ビルドバリアントって?
> ビルド可能なさまざまなバージョンのアプリを表しています。たとえば、コンテンツが限定された無料版と、より多くのコンテンツを含む有料版の両方を作成できます。API レベルまたは他のデバイスのバリエーションに基づいて、異なるデバイスをターゲットとするアプリの異なるバージョンをビルドすることもできます。

とあるように、これを設定しておくと1つのアプリで複数のバージョンを作ることができる。

AndroidStudioでは以下の場所で現在のビルドバリアントを確認できる

* 現在のビルドバリアントの確認。この画像だとdebugが選択されている
packaging.resources.excludesに複数セットする

# 目的
備忘です。packaging.resources.excludesで複数セットするやり方がわからなかったので。

# 環境
– Android Studio Hedgehog | 2023.1.1 Patch 2
– Windows11 Pro

# コード
Android Studioのテンプレートからポチポチしていき、Kotlin DSLを選ぶとデフォルトで次のように記載されています。
“`kotlin
packaging {
resources {
excludes += “/META-INF/{AL2.0,LGPL2.1}”
}
}
“`

javamailを使う関係で、JavaMailライセンスファイルをピックしろって書いてあるので、なんとかぶち込まなきゃいけないのですが、色々調べてもpackaging.resources.excludesに複数セットする方法が見つかりませんでした。合ってるかわかないけど、次のとおりやってみたら、大丈夫そうでした。(ちゃんと理解できてないけど、エラー吐かないから良しとします・・・。)

“`ko

元記事を表示

Android Studioをアップグレードするときのkeymapなどの設定を保持する方法

Android StuidoのJellyfishがstableになりました🎉
iguanaのstable releaseから2ヶ月くらいしか経っていないような気がします。早いですね。

新しい環境は非常にありがたいですが、前回もなんとなくアップデートしてkeymapが移行できず、またダウングレードしてからやり直していたので、簡単ですがメモとして残します。

まずアップデートする前に、設定ファイルをエクスポートしておきましょう。

File -> Manage IDE Settings -> Export Settingsとします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1165483/9c06fea3-d540-14c1-3ac1-20584d0733cd.png)

次にアップデートすると、keymapが変わってしまうことがあるようです。自分はカスタムのkeymapを作っているのですが、強制的にmacOSというテンプレートに戻ってしまっていました。

エクスポートしたのと同じ

元記事を表示

Android Studioの設定を修復する

Android Studio Jellyfishにアップデートしたところ、設定が吹き飛んでしまった。その時のメモ。
– Mac、JetBrains Toolboxでの環境を想定しています

## 手順

1. Android Studioを起動する
2. File → Manage IDE Settings → Import Settings
3. 復元したいAndroid Studioのバージョンのフォルダを選択

`~/Library/Application Support/Google/`以下に設定ファイルが保存されているようです。

元記事を表示

detekt の特定の Issue がプルリク差分から検出されたら、CI を失敗にする(シェル芸)

# 経緯

Kotlin 言語で作られた大規模なプロジェクトがあり、その中に不適切な実装(該当 Issue)が1種類ですが多くの箇所にありました。それらを修正したいですが、すべてを修正する工数は取れなそうです。よって新機能開発や機能改修のついでに、そこも修正できるチーム開発体制を作ろうと思います。Kotlin の静的解析ツール [detekt](https://github.com/detekt/detekt) に該当 Issue を検出させて、[reviewdog](https://github.com/reviewdog/reviewdog) や [Danger](https://github.com/danger/danger) でプルリク差分にそれがあればコメントで指摘する [GitHub Actions](https://docs.github.com/ja/actions) の設定を行いました。しかしコメントも見落とされる可能性があるので、プルリク差分の中に該当 Issue があれば CI を失敗にして、強制力を持たせてみようと思います。

## 注意点

– 言うまでも無

元記事を表示

【Flutter】Patrolでテストを書く(導入まで)

## はじめに
Flutterの[Finder](https://api.flutter.dev/flutter/flutter_test/Finder-class.html)や[WidgetTester](https://api.flutter.dev/flutter/flutter_test/WidgetTester-class.html)ではネイティブビュー(OSの権限許可ダイアログ等)を見つけたり操作することができません。
そこで、[patrol](https://patrol.leancode.co/)を使用して操作できるようにしたいと思います。

本記事では`patrol`を導入し、iOSとAndroidのセットアップまで進めます。

## 環境
・flutter: 3.19.6
・dart: 3.3.4
・patrol: 3.6.1
・patrol_cli: 2.7.0

## `patrol`、`patrol_cli`のインストール

### `patrol`を追加

“`
flutter pub add patrol –dev
“`

※Android SDK

元記事を表示

WSL2でAOSPをビルドしてみた

はじめに
ドキュメントがあるので、基本的にはこちらを見たほうがいいと思います
この記事は忘備録です…

https://source.android.com/docs/setup/start/initializing?hl=ja
https://source.android.com/docs/setup/build/building?hl=ja

0.環境
ビルドした環境は以下になります
“`
$cat /etc/os-release
NAME=”Ubuntu”
VERSION=”20.04.6 LTS (Focal Fossa)”

$ uname -m
x86_64
“`

1.wslのメモリの割り当てを変更する

aospは非常に巨大なプロジェクトのため、できるだけ多くのメモリを割り当てることをお勧めします
“`.wslconfig
[wsl2]
memory=32GB
“`

2.必要なパッケージをインストールする

“`sh
sudo apt update
sudo apt-get install git-core gnupg flex bison

元記事を表示

Androidプロジェクトでbuild-logicの整理をしたときのメモ

Androidでマルチモジュールを作ると、build.gradle.ktsの記述を共通化したくなる。業務のプロジェクトでbuild-logicを使って共通化していたものの、はっきり理解できていないところがあったので、[now in android](https://github.com/android/nowinandroid)や[Droidkaigi 2023](https://github.com/DroidKaigi/conference-app-2023)のリポジトリを眺めたりしながら、[個人のリポジトリ](https://github.com/hiroaki404/PublicPlayground/tree/main)を作って探索した。(publicリポジトリなので自由にみていってください)

基本的な使い方はここでは言及せず、気付きについてメモを残す。

## buildSrcのやり方と、convention plugin(build-logic)を使うやり方
convention pluginは、特定プロジェクト用途のpluginのこと。

[どの方法で柔軟にAndro

元記事を表示

WebViewでUserAgentを設定する

# はじめに
今回はWebView内の通信でUserAgentをカスタマイズする方法を紹介していきます
### 本文
`webViewClient.settings.userAgentString`で取得と上書きをすることができます。
そのため、下記のようにするとhogeのみが登録されてしまうので、上書きをしたくないのであれば、取得したものを追加で入れる必要があります
“`kotlin
webViewClient.settings.userAgentString = “hoge”
“`
### 最後に
今回はretrofitではなく、WebViewでの設定方法を紹介しました
どなたかのお役に立てればさいわいです

元記事を表示

OTHERカテゴリの最新記事