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

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

xmlのshapeタグって意外と自由度が高いっていう話 part2

# 初めに
今回からxmlの`shape`タグで使えるものをシリーズ化して紹介していこうと思います。
間は空いてしまいましたが、二個目は`corners`と同じくらい使われているであろう`stroke`です。

## 本文
こちらは枠線をつけることができ、要素として`dashGap`、`dashWidth`、`width`、`color`を指定することがきます。
`dashGap`、`dashWidth`は破線を作りたいときに使用するもので、`dashGap`は破線の幅を、`dashWidth`は破線ごとの長さを指定することができます。
通常の`width`では太さを指定することができ、`color`はその名の通り色のしてができます。
こちらを使用することでできるのが下記のものです。

“`xml


元記事を表示

Google ログインの不具合で Google Play で公開した Android アプリが急に削除されたときの対応

# はじめに
株式会社データインサイトの山元です。弊社ではポイ活アプリや開業準備支援アプリなどの複数プロダクトをいずれも Flutter で開発しており、Androidアプリを Google Play に公開しています。

https://play.google.com/store/apps/details?id=jp.datainsight.charta_quest&hl=ja_US&gl=JP

https://play.google.com/store/apps/details?id=jp.datainsight.junbapp&hl=ja_US&gl=JP

# Google Play アプリのステータス: 削除済み
ある日突然、「Google Play Support 」より以下タイトルのメールが届きました。
> ご対応のお願い: アプリ({アプリ名})のアクセス手順をご提供ください

Google Play の審査担当者が申請されたアプリを審査する際に、何かしらの理由でアプリに Google

元記事を表示

Architecture: Live Q&A – MAD Skillsメモ

これを書いている時点では正確な字幕はまだ手に入らなかったのと、かなり意訳なので直接見てみてください
結構普段の開発で論点になる部分が多いので、面白かったです。
なにか致命的な間違いなどがあれば教えて下さい :pray:
また、わかりにくければ動画を見てみてください

## LiveDataはdeprecated?

そうする必要はないので、deprecatedになっていないので、使い続けてOK。
ただ、StateFlowもFirst classでサポートしている。

## なぜBusiness logicをデータレイヤーに持っていくのか?そのモチベーションは何?

single source of truthを実現して、並行実行や再利用性の管理もできる。

## strings.xmlのようなリソースにViewModelでどのようにアクセスするべきか?

ViewでもComposableでも基本的にViewModelはアクセスすべきでない。
なぜ持つべきではないのかと言うとConfigurati

元記事を表示

エンジニア面接 質問集

私が実際に面接で聞かれた質問事項をまとめました。
エンジニアの面接ってどんなこと聞かれるんだろう?
何を準備しておけばいいんだろう?
って思ってる方の助けになれば幸いです。

## 事前情報
面接当時のエンジニア歴: 1年3ヶ月
面接企業数: 3社(自社開発)
応募職種: Androidエンジニア
経歴:
2017年4月:鉄道企業に総合事務職として新卒入社 (3年半)
2020年10月:受託アプリ開発会社に転職、エンジニアにジョブチェンジ。(1年半)
2022年5月:自社開発企業にAndroidエンジニアとして転職。

## 技術以外の質問
### 自身について
* PRも含めた自己紹介
* 前職を選んだ理由
* エンジニアを目指した理由
* 転職動機
* 志望動機
* なぜtoCではなくtoBを希望しているのか
* 人生で一番の失敗
* 将来のキャリア

### チームマネジメントについて
* チーム内での立ち位置
* メンバーにタスクを振る上で意識していること
* メンバーへ振るタスクと自分でするタスクの線引き
* メンバー間での進捗共有で意識していること
* マネジメント

元記事を表示

スコープ関数の読み方について

# はじめに
スコープ関数を使うときは以下の記事を参考にさせてもらっていますが、
[Kotlin スコープ関数 用途まとめ](https://qiita.com/ngsw_taro/items/d29e3080d9fc8a38691e)

逆に読む時になると、「どう読んだらいいんだ?」と
悩んでしまうことがあるので簡単にまとめておきます

***
それぞれオブジェクトのことをレシーバーと呼びます

# let
“`
結果 = レシーバー.let {}
“`
となった時に{}内の処理の結果を返す

# run
“`
結果 = レシーバー.run {}
“`
{}内の処理を行い、最後の処理を返す
“`
結果 = レシーバー?.run {}
“`
レシーバーがnullじゃなければ{}内の処理を行う
“`
結果 = レシーバー?:run {}
“`
レシーバーがnullなら{}内の処理を行う

# apply
“`
結果 = レシーバー.apply {}
“`
となった時にレシーバーに対して{}内の処理を行い、その後レシーバーを返す

# also
“`
結果

元記事を表示

【Android】MVVM的に2つのサンプルアプリを作ってみた 〜 Room & Retrofit2 〜

# はじめに

皆さん、ごきげんよう!れぶです!

今回の記事では、`MVVM設計`を意識して作成した2つのサンプルアプリをざっくり紹介していきます。これからMVVM的にアプリを作成したいと考えている方に特に参考になれば光栄です。

それでは、参りましょう!!

# 開発環境

* MacBook Air
* Android Studio Bumblebee | 2021.1.1 Patch 1
* Java 8
* compileSdkVersion 31
* minSdkVersion 21

# 1つ目のアプリ
## 概要
自分が行きたい国を管理できるサンプルアプリです。データの全表示・追加・削除ができます。
`Room`を使って、ローカルDBのSQLiteを操作しています。

## 動作イメージ
![MVVM.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2456250/25417b5e-aea0-4dda-f8c0-b9b2f68c646a.gif)

## アーキテクチャ図
![MVVM.p

元記事を表示

AndroidStudioのブックマーク機能

今回はAndroidStudioのブックマーク機能の使い方を説明しようと思います。

AndroidStudioでいつの間にかブックマークを使用してました。
みたことないマークでコレなんだろと、となり最近知りました。

# ブックマークの方法
ブックマークしたい場所で右クリックをします。そうすると画像のようになります。
![スクリーンショット 2022-05-01 17.10.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274615/c6ef1e53-587e-be29-ff92-2f8205b2518a.png)

add Bookmarkをクリックするとブックマーク完了です

# ブックマークの一覧表示

こちらAndroidStudioの左下にあるFavoriteをクリックするとこのような画面が出て来ます。

![スクリーンショット 2022-05-01 16.57.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws

元記事を表示

Android アプリのインストール方法を比較してみた

## 何が書いてあるか
Android アプリを端末にインストールする方法は一般的なユーザーは Google Play を使用しますが、目的や状況に応じて別の手段を取ることも考えられます。
それぞれの手段のメリットデメリットは何か、どういう時に向いているかについて書いていきます。
インストール方法については軽く触れますが、具体的な配布方法については今回は触れません。

## 手段
1. [Google Play](https://qiita.com/akirago/items/990fea92748c93bd4389#google-play)
1. [Firebase App Distribution](https://qiita.com/akirago/items/990fea92748c93bd4389#firebase-app-distribution)
1. [Website](https://qiita.com/akirago/items/990fea92748c93bd4389#website)
1. [adb command](https://qiita.com/akir

元記事を表示

【Flutter】MainActivityをComponentActivityのサブクラスにしたい【Android】

# はじめに

Flutter開発してると、MethodChannelを使ってプラットフォーム固有の機能を使いたいことがままある。
AndroidだとMethodChannel経由でActivityにアクセスするんだけども、アクセス先のActivityがデフォルトだとFlutterActivityになっていて、ComponentActivityを継承していない。

これだと、activity-ktxの`viewModels`が使えなくて、DIするときにとても困ってしまう。
ViewModelFactoryを作ったりして頑張ればなんとかなったのだろうけど、**僕にそんな技術力はないので**別の方法を探したら、いい感じに解決できた。

あんまり記事とかもなかったので共有。

# 結論

[FlutterFragmentActivity](https://api.flutter.dev/javadoc/io/flutter/embedding/android/FlutterFragmentActivity.html)を使う。

ドキュメントを見てくれればわかるけど、この子はしっかり`andr

元記事を表示

adb コマンド一覧

## はじめに

今更ながらせっかくなので個人的によく使う adb のコマンドをまとめました。

> 参考:Android Debug Bridge (adb) とは?

Android デバイスと通信するための多用途のコマンドラインツールになります。
adb コマンドを使用すると、アプリのインストールやデバッグなど、さまざまなデバイス操作を実行できます。(公式より)

> 公式ページ

[Android Debug Bridge (adb)](https://developer.android.com/studio/command-line/adb)

> サンプルソース

– GitHub
[adbtool-for-mac](https://github.com/ngkr327/adbtool-for-mac)

## コマンド一覧

### IP アドレスを使用してデバイスに接続する

“`
$ adb connect
“`

### 接続済みデバイスのリストを取得する

“`
$ adb devices
“`

### エミュレ

元記事を表示

ラズパイとAndroidスマホでルーター作った

## Androidスマホをラズパイでルーターつくった

引っ越しを控え、現宅のフレッツ光の移設手続きをしていたのですが、諸事情で1ヶ月以上回線が引けない状況になりました。
仕方ないので、ルーターを自作します。

## USBテザリングを有線LANに変換させてみた
Androidスマホで有線LANテザリングが出来るとベストなのですが、あいにく手元に対応しているスマホがありませんでした。
結果、RaspberryPiでブリッジしてあげることで、これを実現しました。

## 環境
– SHARP SH-M05 (Android 9)
– RaspberryPi Model2B
– 楽天モバイル(楽天回線)

## やり方
USBテザリングを、ラズパイの有線LANポートとブリッジする事で実現しました。
具体的には、SH-M05が、USBテザリングのEnable/DisableでUSBデバイスIDが変わることをトリガーとして、udevを使いブリッジをコントロールします。

“`
Clients —> [[eth0]-[br0]-[usb0]] —> [Android 9] —>

元記事を表示

【Android】Retrofit2のCall.enqueue()は非同期で処理されるの巻

# はじめに

皆さん、ごきげんよう!れぶです!

先日`Retrofit2`ライブラリを使って、API通信した結果を`RecyclerView`でリスト表示しました。その際に自身が悩んだ箇所が1点あったので、今回の記事で原因と解決方法を記述していきます。

自身のためでもありますが、自分と同じ悩みを持つ方々にも刺さる記事になれば幸いです。
それでは、参りましょう!!

# 開発環境

* MacBook Air
* Android Studio Bumblebee | 2021.1.1 Patch 1
* Java 8
* compileSdkVersion 31
* minSdkVersion 21

# 動作イメージ

完成イメージは以下になります。
![ezgif.com-gif-maker (1).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2456250/be906014-7488-9013-7a48-343e36a93976.gif)
入力された郵便番号をもとにAPI通信([zipclo

元記事を表示

Azure Spacial anchorsを使ったマルチプラットフォーム位置共有方法でつまずいた点

# はじめに
この記事は、自分がHoloLens2とAndroidとでマルチプラットフォーム化する際に困った部分を記載している記事になります。

※バージョンが更新された場合修正されているかもしれないので気を付けてください。

# 前提条件
公式がだしているAzure Spacial Anchorsのチュートリアルドキュメント

https://docs.microsoft.com/ja-jp/learn/modules/azure-spatial-anchors-tutorials/

イワケンさんが出されている記事を参考にし

https://zenn.dev/iwaken71/articles/hololens-2022-2#%E3%82%B7%E3%83%BC%E3%83%B3%E3%81%AE%E6%BA%96%E5%82%99-(%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB)

これらを一通り実践してから自分のつまづいたところを確認していただけると
理解しやすくなると思います。

元記事を表示

【初心者応援】画像を選ぶ際の判断基準

# 初めに
今回はアプリ内で使用する画像をどういった形式で保持しておくかについて書いていこうと思います。
自分が新人だった頃に、`svg`って何?どうしてここはsvgじゃないの?等疑問に思ったことがあったので、もし同じ感覚になっている方がいれば助けになれれば幸いです。

### SVGとは
まず`svg`とはなんぞや?という部分からですね。
`Scalable Vector Graphics`(スケーラブル・ベクター・グラフィックス)の略で「大きさを変えられるベクター画像」という意味です
実はグラフと一緒で指定された座標を指定された色で塗りつぶしてるのがsvgなんですね。
他の`PNG/JPEG`はピクセルの集まりなので拡大した際に`svg`の方が綺麗だったりします。
また、名前の通り大きさを変えても綺麗に描画することができます。

### 判断基準
ここからは、普段自分がどうやって画像の形式を分けているかをご紹介します。
自分は基本的に`svg`を使います。
ただし、`svg`は先ほど紹介したように座標や色の情報を持っているため、複雑で大きい画像を描画するとなるとデータがどうしても重

元記事を表示

2022年度版 RecyclerViewをわかりやすく解説(Kotlin, View Binding)

# はじめに
「リスト表示程度で難しすぎる!!」
全初心者がそう思うであろうRecyclerViewを超わかりやすく解説します。

::: note warn
本記事ではViewBindingの使用を前提に書いております。
findViewByIdより明らかに見やすく動作も早いです。
知らない人は調べてね!!
:::

↓完成図
Screenshot_20220427-155940.jpg

# RecycleViewとは
見た目をカスタム可能なリスト表示です。
特徴として、例えば100個のアイテムを表示したいとき、スマートフォンの画面に一度に見えているのは高々10個だとしましょう。
そしたら残りの90個のレイアウトを用意しておくのって無駄ですよね。
だから見えてる10個のレイアウトを再利用して使いまわ

元記事を表示

Android Studio エミュレーターでのエラー Qt platform plugin could be initialized … 【備忘録】

## ■事象
Android StudioでADV Managerからエミュレーターを指定して、起動した時にエラーが出てきた

## ■エラー文
「This application failed to start because no Qt platform plugin could be initialized. Reinsalling the application may fix this problem」

## ■原因を探ってみる
グーグル検索したところ、他のソフトウェアで定義された環境変数がアプリケーションと競合するために発生しているので、アプリケーションを起動する前に、現在の環境から以下の変数を削除してください。とのことだったので、環境変数を見てみたが以下の環境変数は設定していない。なぜ?
・QT_PLUGIN_PATH
・QML2_IMPORT_PATH

## ■本当の原因
どうやら、C:\Users\{username}直下のAndroidStudioのSDKやら何やらにアクセスできないため発生していたらしい

usenamerフォルダ以下の、「読取り専用」「隠しフ

元記事を表示

【Material Design】Material Designを読むときに知っていると理解しやすくなる単語集

## 概要
この記事では、少し前に公開された[Material Design 3(通称 : M3)](https://m3.material.io/)を読むときに
知っていると、M3さらに理解しやすくなる単語とその意味について解説します。

この記事を読んで、単語とその意味について理解すれば、
M3をさらに理解することができるでしょう!

## Banner
目立つメッセージと、それに関連するアクションを表示するコンポーネント。
[詳しい解説はこちら](https://material.io/components/banners)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/390720/ceb7706c-0fd6-ccbd-f761-902f73290ac9.png)

## Button
メールの送信やドキュメントの共有、投稿へのいいね!など、ユーザーのアクションを助ける コンポーネント。
[詳しい解説はこちら(M3)](https://m3.material.io/compon

元記事を表示

Flutter × Firebaseでアプリを個人開発した話

今回、初めてFlutterとFirebaseを使ってandroidrアプリを作りました。
個人でアプリを作ってみたい人やFlutterを使ってみたい人の参考になればと思います。

# 作ったアプリ
[てすろぐ](https://play.google.com/store/apps/details?id=com.murapon.self_scoring_app)
テストや問題集を解いた結果を保存し、復習に使えるようにするアプリです。
今後、iosアプリもリリースする予定です。
アプリに関してはこちらにも書きました。

# 使った言語、サービス
## Flutter
1つのソースで、android、ios両方のアプリができるのでこちら選びました
僕の場合、[現場で使える Flutter開発入門](https://www.amazon.co.jp/gp/product/483997375X/)を買って、一通り勉強してから作り始めようと思ったのですが、初心者には少し難しい内容で、1章だけ読んで挫折しました・・:sweat:
ただ、サンプルソースがダウンロードできるようになっていたので、それを

元記事を表示

UnityでHMSのAnalytics Kitを使用する方法

Unityのオフィシャルドキュメントにしたがって、HMSのAnalytics Kitを実装しましたが、うまくいきませんでした。

Analytics Kit (HMS)
https://docs.unity.cn/cn/Packages-cn/com.unity.huaweiservice@2.3/manual/analyticskit.html

“`
2022/04/06 11:40:52.159 3747 3747 Error HiAnalyticsSDK createInstance=> Stop report! Instance init failed: _openness_config_tag
2022/04/06 11:40:52.159 3747 3747 Error HiAnalyticsSDK createInstance=> Stop report! Instance init failed: _openness_config_tag
2022/04/06 11:40:52.159 3747 3747 Error HiAnalyticsSDK cr

元記事を表示

既存の Android アプリの UI を Jetpack Compose で書き換えた際の知見をまとめてみる

# 概要
View & Fragment で画面を20ほど作っていた既存のアプリを1ヶ月かけて Jetpack Compose で書き換えたので、その際の進め方や気づいたことをまとめてみます。

Jetpack Compose を使う意義や具体的な書き方については別の記事をお読みください。

# モチベーション
[Jetpack Compose 移行する前と移行した後](https://developers-jp.googleblog.com/2020/12/jetpack-compose-before-and-after.html) を読んでやってみたくなったのがきっかけでした。特にビルド時の最適化のパフォーマンスが向上するという点に興味を持ちました。

> 最大のポイントは Compose がほとんどのデベロッパー指標で良好な(または中立的な)影響を示していることです。この点と Compose でデベロッパーの生産性が大幅に向上することを踏まえれば、いろいろ考えなくても、Compose が Android の UI 開発の未来であることはわかります。

# 書き換えのステップ
大ま

元記事を表示

OTHERカテゴリの最新記事