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

Android関連のことを調べてみた2022年02月23日
目次

【Flutter-Android】【GithubActions】flutterのCD環境を整備してみた

# はじめに
普段仕事ではiOSアプリを開発していますが、
昨年5月頃からFlutterに興味を持ち始め、趣味の時間でFlutterアプリの勉強を始めました。
アプリの配信は毎回手間に感じていて自動化できないか?と調査をしていた内容を共有します。

今回はAndroid編です。iOS編は[こちら](https://qiita.com/SUGYKEN/items/b654eb65478e51554936)。

# 目標
Githubにコードがpushされたときに、AndroidアプリをStoreにビルド配信する。

# Storeにビルド配信する。
では作業を開始します。

## 最終的なフォルダ構成
“`
.
├── .github
│ └── workflows
│ ├── cd_aos.yml・・・・Android用githubActionsの設定ファイル
├── android
│ └── fastlane
│ ├── Appfile・・・・Store関係の設定が書かれたファイル
│ └── Fastfile・・・・fastlaneの

元記事を表示

Mattermost スマホアプリ インストール手順

# Apple iPhone (iOS)

:::note info
【インフォメーション】
端末: Apple iPhone 7 Plus
OS: 15.4

:::

## 1. 「App Store」をタップします

![IMG_0002.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/283091/200e2ca4-8a75-e039-25d9-0a07e5a1595f.jpeg)

## 2. 右下の「検索」をタップします

![IMG_0003.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/283091/83c55587-c827-772b-d0de-01f3b25bebc6.jpeg)

## 3. 「? ゲー、App、ストーリーなど」と書かれている領域をタップします

![IMG_0004.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazona

元記事を表示

スマホからVNC / リモートデスクトップRDP

# はじめに
~ VNC/RDP connection from your Smart phone ~
スマホからサーバーやPC、またはラズパイのデスクトップにVNCやリモートデスクトップ(RDP)する、ちっちゃいけど使えるよ!しかもremote.itでインターネット越しにつないじゃおうという記事です。

# やりたいこと
AndroidまたはiPhoneを小さいながらも VNC/リモートデスクトップ のクライアントとして使ってみたいと思います。remote.itを経由すれば携帯電波網でも、しかもポートフォワーディング無しでリモートホストに接続できます。
キーボード/マウスをつなぐとなお一層使いやすいですね。Androidならテキトーなキーボード・マウスでも認識するのでハードルは低くかなり使える環境になります。

![smartphonevncrdp_overview.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309124/77fc8a2f-7184-aee0-4854-a6822db8b5c1.p

元記事を表示

Androidのスクリーンレコードによる画面録画動画をYoutubeにアップロードできない問題をffmpegのコーデック変換で解決する

# 背景

普段iOS使いの筆者が、Androidの画面録画をYoutubeにアップロードしようとしたときに起きた問題の解決方法を述べたいと思います。

# 画面録画 (スクリーンレコード)

https://kakakumag.com/pc-smartphone/?id=16199

この記事曰く、Androidスマホの画面録画は「スクリーンレコード」でできるとのこと。早速試したらすぐに録画できました。そしてYoutubeにアップロードしてみると…?

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/96970/0ff02cb5-4e09-4c55-2849-9d97a62c9a8d.png)

ずっと、保留中で終わらない…

試しに、他の動画をあげたらすぐアップロードできる。どうやら動画に問題があるようだ。

# コーデックに問題がある説を疑う

YouTubeに動画を投稿できない理由をチェック!対処方法を試してみよう

記事を調べてみると、

> ・YouTub

元記事を表示

Jetpack ComposeのRowで画面の幅に合わせてUIを折り返す(FlowRow)

# はじめに
Jetpack Composeで開発をしている際に下のようなレイアウトを再現したいと思いました。
![iamge](https://i.stack.imgur.com/172AX.png)
このUIでは、Rowを使用しているのですが、画面の幅がいっぱいになったら折り返して次の行からまたレイアウトしていくという、CSSで言うと“flex-box?“みたいなのを再現しようとした時に、あんまり記事がなかったので今回書いてみます。

# やり方
デフォルトでJetpack ComposeのRowでは、画面の幅以上に要素を並べようとした場合にこのようなUIになります。
![スクリーンショット 2022-02-21 17.58.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2397901/2d5a2fe3-9862-3a37-6a00-bad1802b661a.png)

コードはこんな感じです

“`kotlin
@Composable
fun OnBoardScreen() {

元記事を表示

京セラDIGNO端末(Android)にAPKセットを転送できない

つまらないことですが時間がかかってしまったのでメモ書きという言い訳で投稿

### 問題
[Android App Bundleを実機にインストールして試すために使うbundletoolの使い方](https://www.virment.com/how-to-use-bundletool-to-test-app-locally/) に従って

“`
$ java -jar bundletool.jar install-apks –apks=app.apks
“`

のコマンドでAPKセットを転送しようとしても許可がありませんという(Error: Authorization is not allowed のような)エラーが出て転送できないという状況です。

“`
$ adb devices
“`
のコマンドでも unauthorized と表示されます。

### 環境
windows10
android端末(スマホ) Kyocera DIGNO

### 結論
初歩的な話で、 [Kyocera DIGNO のドライバ](https://www.kyocera.co.jp/p

元記事を表示

Flutterのslider(スライダー/ゲージ/メモリバー)ライブラリならSfSliderが断然オススメすぎる

## Sliderって?
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2533351/a4fa3c07-5f10-8172-9916-02e427f1e1a9.png)
これです。
もちろん汎用的な機能はflutter純正のsliderウィジェットにも備わっているのですが、
「メモリをつけたい…」
「(文字等は反転させず)左右反転させたい…」
「選択する●に文字を表示させたい…」
などの要望を叶えてくれるのがこのSfSliderです

## ライブラリ
syncfusion_flutter_sliders
https://pub.dev/packages/syncfusion_flutter_sliders
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2533351/3d6a6a02-710c-b61c-3b23-052d2be94834.png)![image.png](

元記事を表示

独自のThemeを作るときの注意点

色とか全体にRippleの指定とかしたい時にThemeを作るけどもComposableの順で指定したRippleが消えたので注意点。

“` kotlin
@Composable
fun MyTheme(
themeType: ThemeType,
content: @Composable () -> Unit,
) {
val color = themeType.colorPalette
CompositionLocalProvider(
localMyColors provides color,
LocalRippleTheme provides MyRippleTheme
) {
MaterialTheme {
content()
}
}
}
“`

こうするとMaterialThemeのなかでLocalRippleThemeを上書きしてしまい、せっかく指定したMyRippleThemeが効かなくなる

正しくはこうする

“` kotli

元記事を表示

【Android・kotlin】バリデーションエラーを示すEditTextを作る

## はじめに
こんな感じでバリデーションエラーの時は赤く、それ以外の時は白くなるパスワードフィールドを実装したかったのですが、レイアウトを出し分けるやり方がなかなか見つからず苦労しました。
今回はその備忘録を記します。

![validation_test.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1274260/10efbbba-aff3-361c-dd4a-238a781d4dce.gif)

## 実行環境
| 項目 | 情報 |
| —— | —————————- |
| PC | MacBook Pro (14-inch,2021) |
| CPU | Apple M1 Pro 10-core |
| GPU | Apple M1 Pro 16-core |
| O

元記事を表示

XMLでViewにグラデーションの設定をする

まずはdrawableにグラデーションの設定をしていきます

“`



“`

それぞれ説明していきます

android:angle=”270″
アングル、つまりグラデーションをかける角度のことです
その角度を270度に設定することによって 上から下に向けてのグラデーションをかけることができます
グラデーションをかけたい方向を変えたいときは android:angle を調整しましょう
0(未設定)では左から右へ
90 で 下から上へ
180で 右から左へ のグラデーションになります

android:startColor=”#ffffff”
ffffff は white

an

元記事を表示

ShapeableImageViewを使用して簡単に円形表示を行う方法

# はじめに
歴史のあるプロジェクトでは特に、円形のViewを表示したい時にDrawableを作って再現しているところも結構多いですよね。
確かにDrawableを作って適用しても綺麗に円形表示が可能ですが、気がついたら同じようなDrawableばかりが増えている、、、こんなことありませんか?
最近ではかなり浸透してきているマテリアルなUIを使用する事で、無駄なDrawableを作成する必要がなくなり、リソースも必要最低限となりすっきりして良いので、簡単にご紹介します。

# ShapeableImageView
円形表示にはShapeableImageViewを使用します。
まず、ShapeableImageViewをxmlに追加します。

“`
Jetpack ComposeでCanvasを使ってカスタムグラフィックを作成してみる

最近、Android開発でJetpack ComposeでCanvasを使う機会があったので、今まで難しそうでなかなか手を出してこなかった、Canvasを勉強してみることにしました。

# Canvasの基本的な考え方
普段僕たちがみている画面は、ピクセルによって構成されています。キャンバスでは、このピクセルが色で満たされることで、その代わりに画面に画像が表示されるというものになっています。

Canvasでは、最初“x = 0, y = 0“からスタートします。つまり、画面の左上の部分ですね。そこから、xにどのくらい動くのか?yにどのくらい動くのかを記述することで、さまざまなグラフィックを再現できます。

まずは簡単な三角形を表現してみます。

“`kotlin:MainActivity.kt
Canvas(
modifier = Modifier
.width(150.dp)
.height(150.dp)
.padding(16.dp)
) {
val path = Path()
path.moveTo(size.width.toFloat(), 0F)

元記事を表示

Firestoreの特徴的な機能

最近個人開発を始めるなかで、Firestoreを使う機会があったので、今までなんとなくでしか理解できていなかった**Firebase**を勉強してみようということで[実践Firestore](https://www.amazon.co.jp/%E5%AE%9F%E8%B7%B5Firestore-%E6%8A%80%E8%A1%93%E3%81%AE%E6%B3%89%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA%EF%BC%88NextPublishing%EF%BC%89-%E7%A6%8F%E7%94%B0-%E9%9B%84%E8%B2%B4-ebook/dp/B0851BGDQG)という本を読み始めたので、簡単にFirestoreの特徴についてまとめてみたいと思います。

# セキュリティルール
Firestoreでは、クライアントから直接データベースへアクセスして読み書きを行います。
セキュリティルールとは、データの機密性と完全性を担保するための記述するものです。
セキュリティルールを記述することで、Firebase上にデプロイすると、記述されたル

元記事を表示

ネット上にあるSurfaceViewのサンプルコードおかしくない?

# 前書き
言いたいことはタイトル通りですが、
私自身そんなにAndroid開発やkotlinについて
詳しくないので定かではないのでこんなタイトルにしました。

とりあえずSurfaceViewのサンプル実装見たかったので、
Google検索で以下のようなワード群で検索しました。

“`
android SurfaceView サンプル

or

android kotlin SurfaceView
“`
引っかかるサイト全般に同じような事をしていて
意味不明だったので記事を書きました。

# 問題のサンプルコード
問題と思う所のサンプルコードはみんな以下のような状況でした。
察しのいい人はここでわかると思います。

“`kotlin:View.kt
class SampleSurfaceView: SurfaceView, SurfaceHolder.Callback { … }
“`

“`xml:activity_main.xml

元記事を表示

【Flutter】Android実機でワイヤレスデバッグする方法

# TL;DR

– Adnroid端末で [設定] > [システム] > [開発者向けオプション] > [デバッグ] > [ワイヤレス デバッグ] をON
– ペア設定コードによるデバイスのペア設定
– 「Wi-Fiペア設定コード」・「IPアドレスとポート」を確認
– 以下のコマンドに確認した内容を入力
“`bash
$ adb pair HOST[:PORT] [PAIRING CODE]
Successfully paired to HOST:PORT [guid=xxxxxxxxxxxxxxxxxx]
“`

# 実行環境
“`bash
$ adb –version
Android Debug Bridge version 1.0.41
Version 32.0.0-8006631
Installed as /$HOME/Library/Android/sdk/platform-tools/adb

$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v)

元記事を表示

androidアプリにて、AdMobで以前はテスト広告を表示できていたはずなのだけれども、なにもしていないのにできなくなったよ〜 => 解決したよ〜という話

**少にして学べば、即ち壮にして為すことあり。壮にして学べば、即ち老いて衰えず。老いて学べば、即ち死して朽ちず**

Advent Calendar 2022 48日目[^1]の記事です。
I’m looking forward to 12/25,2022 :santa::santa_tone1::santa_tone2::santa_tone3::santa_tone4::santa_tone5:
私の[Advent Calendar 2022 一覧](https://docs.google.com/spreadsheets/d/1HQvFjagQLRPjOYAjDVzWp9S4b8dKixxvvaz_TtbZWto/edit#gid=1723448955)。

[^1]: @kaizen_nagoya さんの「[「@e99h2121 アドベントカレンダーではありますまいか Advent Calendar 2020」の改訂版ではありますまいか Advent Calendar 2022 1日目 Most Breakthrough Generator](https://qiita.com

元記事を表示

MotionLayoutの例を試してみる(キーフレームの位置)

前回はImageFilterViewをやりました。
[ImageFilterView](https://qiita.com/yuta317/items/a1fe49c5b705d442d484)

今回はキーフレームの位置を試していこうと思います。

# 公式リファレンス
https://developer.android.com/training/constraint-layout/motionlayout/examples?hl=ja

https://developer.android.com/training/constraint-layout/motionlayout/ref?hl=ja

# KeyFrameSet

今回は縦横同時に移動してみようと思います。

リンク先に公式サンプルがあります。
[キーフレームの位置](https://developer.android.com/training/constraint-layout/motionlayout/examples?hl=ja#keyframe-position)

“`

元記事を表示

iOS / Android のロケールID一覧

端末の地域と言語の設定は、アプリでは Locale として観測できますが、Locale ID を網羅した最新のリストが見当たらなかったので CSV ファイルを作りました。数年前のデータは Google 検索すると見付かるのですが、広東語とかが入ってないんですよね。

# CSV ファイル

– iOS版 [ioslocaleidentifiers.csv](https://gist.github.com/okaxaki/e355b3784983edc8b357f48e92b0e69c)
– Android版 [androidlocaleidentifiers.csv](https://gist.github.com/okaxaki/fc4fa7c96812de6444cffdbeaa9d647f)

# 製法
iOS は NSLocale の availableLocaleIdentifiers と localizedStringForLocaleIdentifier を使って、次のコードをビルドし、iOS 15.1 端末実機で動かして取得しました。OSバージョンが違うと結果は変わりま

元記事を表示

MRTK2.7.3 + AzureSpatialAnchorsSDK2.12をHoloLens2、Android、iOSで動かす

# 環境
– Windows10 PC
– iPhone 12 Pro
– HoloLens2
– Android 10
– Unity 20203.4f1

# Azure
Azureポータルにログイン
Spatial Anchors Accountsにアクセス
各種値を入力して作成
下記値をメモしておく。
Account ID , Account Domain , Access Key

# Unity
Unity HubからProjectを作成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1264045/b0fce247-6776-c2e2-02d0-21017ad665cf.png)

[MixedRealityFeatureTool](https://docs.microsoft.com/ja-jp/windows/mixed-reality/develop/unity/welcome-to-mr-feature-tool)を起動しProjectPathを指定
![image

元記事を表示

【Android】画像をピンチイン・アウト

Kotlinで書かれているコードが見つからなかったのでメモ。

“`CustomImageView.kt
class CustomImageView : View {
constructor(context: Context) : super(context)
constructor(context: Context, attrs: AttributeSet?) : super(context, attrs)
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr)

private var bitmap: Bitmap? = null
private val bitmapMatrix = Matrix()
private val paint = Paint()

// ピンチイン/アウト時、画像を拡大/縮小
private val scaleGestureDetector by lazy {
ScaleG

元記事を表示

OTHERカテゴリの最新記事