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

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

Flutterアプリに(ホーム)ウィジェットを追加してみる+α

この記事は [NTTテクノクロス Advent Calendar 2021](https://qiita.com/advent-calendar/2021/ntt-tx)の20日目です。

こんにちは。NTTテクノクロスで、エバンジェリストとして活動している神原([@korodroid](https://twitter.com/korodroid))です。実は、本日投稿予定だった弊社の別メンバがやむを得ない事情により、担当できなくなりました。同記事を楽しみにしてくださっていた皆様、申し訳ございません。代わりに、私が20日目をお送りします。

自己紹介は、投稿済みの14日目の私の別記事[「海外活動を通じて得た英語の学び方+α」](https://qiita.com/korodroid/items/193788fd1a911be77725)をご覧いただけますと幸いです。よろしければ、記事も合わせて読んでいただけたらうれしいです。

それでは、今回の内容に入っていきます。先日、 **Flutterでアプリを作っていて、このアプリに(ホーム)ウィジェットを追加したいという衝動に駆られ、実現しま

元記事を表示

ニフクラmobile backendの新Kotlin SDKについて

4年ぶりのqiita記事になりますが、今回FCJTが開催している[アドベントカレンダー](https://qiita.com/advent-calendar/2021/fjct)に参加するために、記事を書くことになりました。ということで、20日目の記事となりますが、どうぞよろしくお願いします。
昨日は[ysaotome](https://qiita.com/ysaotome)さんのがっちり内容となった [ニフクラ上の Docker ホストへ VMware Tanzu Community Edition(TCE) のマネージドクラスタを構築してみた(V0.9.1)](https://sotm.jp/2021/12/18/vmware-tanzu-community-edition-v091-managed-clusters-on-docker-on-nifcloud/)内容でしたが、今回はかなり初心者向けの内容になります。ニフクラmBaaSが2年ぶりに新SDKとなるKotlin SDK (ncmb_kotlin)を対応し、12月中に正式にリリースすることになりますので、こちらについていく

元記事を表示

AppLinksのサポート先を複数登録した場合の挙動

# 何が問題か

曖昧さ回避ダイアログが出てしまう。
![Screenshot_2021-10-15-16-20-37-857_android.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/429030/e5737e50-ea22-6aec-9a76-3f27eb11ec64.jpeg)

AppLinksを設定済みで、SHA256証明書はyyy.page.linkと、xxx.page.linkに連携してます。

Android8の場合はアプリ設定画面にて”Open supported links”の設定がデフォルトで”open in this app”に設定されるのですが、
Android11の場合は”ask every time”となってしまうようです。

## Android11

毎回ダイアログで開くアプリを聞かれる
![Screenshot 2021-10-14 133304.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws

元記事を表示

フィーチャーで気にされる[戻る]ボタンについて

# はじめに
この記事ではGoogleゲームアプリのフィーチャーの審査においての、[戻る]ボタン(※)にフォーカスを絞ってお話しさせていただこうと思います。
[Developer向けガイドライン](https://developers-jp.googleblog.com/2017/07/standard-back-key-navigation-on-android.html)内でも記載されており、個人的に重要な要素として考えています。
実装的にというより、テストを依頼された際に観点を持っておく、期待値としての情報を持っておく目的で、参考になれば幸いです。

※バックキー、⇦ボタンなど呼称がありますが、この記事では[戻る]ボタンと記載いたします
####読了までの時間
・約5分
####ターゲット
・これから[戻る]ボタンのテストを行うが、明確な期待値をもっていない方

# [戻る]ボタンの動作について
Androidのナビゲーションバーにある[戻る]ボタンをタップした際の動作で好ましいものとしては、分かりやすく言うと下記のような動作が担保されていると指摘を受けにくいと感じます。

**

元記事を表示

【Jetpack Compose】 Molecule を使って Flow → StateFlow に変換する

## はじめに

本記事は [with Advent Calendar 2021](https://qiita.com/advent-calendar/2021/with) 20日目の記事です。

こんにちは [with](https://with.is/welcome) でAndroid エンジニアをしている石田です。Jetpack Compose がプロダクトで使えるようになって以来、 **「状態」** を扱うことが多くなったように感じる今日このごろです。

というわけで今回は状態にまつわるお話です。

## Composeで状態を扱う時に困ること

状態を扱うとき、ViewModel では `StateFlow` 、 Compose では `State` を使用します。 `StateFlow` は `collectAsState` を使って 簡単に `State` に変換することができます

困るのは `Flow` を `State` に変換したい場合です。 `StateFlow` と同様に `collectAsState` を使っ

元記事を表示

Jetpack Composeの学習にBloomはどう?

今年の7月にJetpack Composeが正式リリース(1.0)となり、本格的にプロダクトに利用されるようになってきました。
がっつり使っているよ!という方も、これから勉強していくよ!という方もいると思います。
Jetpack Composeの勉強にとても役立った課題について書かせていただきます。

## Bloom is :thumbsup:

[Android Dev Challenge: Week 3 – Speed round](https://android-developers.googleblog.com/2021/03/android-dev-challenge-3.html)のAPAC向け課題が**Bloom**というアプリを時間内に作成するというものでした。
この課題の良かった点を上げていこうとおもいます。

### Android Dev Challenge – Jetpack Compose
2021年の5月におこなわれたAndroid Dev Challengeは、Jetpack Composeを利用し限られた時間内に課題にそったアプリを作成し提出するとい

元記事を表示

【Android】Jetpack Composeでよく使うプロパティをまとめてみた

こちらの記事は[食べログAdvent Calendar2021](https://qiita.com/advent-calendar/2021/tabelog)の20日目の記事になります。

今年の8月に食べログのAndroidエンジニアとして入社しました、柴犬好きな @hokutonikukyu です!
食べログでは、主にUI/UX周りの開発・修正を担当しています!

AndroidのJetpack Composeが追加されてしばらく経ちますが、まだがっつり触れることができていないです、、、
今回は自身のメモがてらComposeのViewプロパティについて少しだけまとめてみようかと思います!!

#はじめに
JetpackComposeとはどういうものなのか、軽く触れます。
以下、[ **公式ドキュメント** ](https://developer.android.com/jetpack/compose/why-adopt?hl=ja)からの抜粋です。
> Jetpack Compose は、ネイティブ UI をビルドするための Android の最新ツールキットです。少ないコード、

元記事を表示

【Jetpack Compose】お気に入りボタンのタップアニメーションの作り方

この記事は[and factory.inc Advent Calendar 2021](https://qiita.com/advent-calendar/2021/andfactory) 20日目の記事です。
昨日は @k_shinn さんの [【Android】画面分割やカットアウトに負けない画面サイズの測り方](https://qiita.com/k_shinn/items/e6c12d459bec5af36fae) でした。

## はじめに

ツイッター等アプリでよく見る『お気に入り、いいねボタンをタップしたときのアニメーション』をjetpack composeで1ステップずつ段階を踏んで作ってみたいと思います。

![record-211219154544.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193770/8bccfe88-492b-a005-3934-fd421cb423cd.gif)

## ドキュメント類

https://developer.android.com/jet

元記事を表示

clusterのAndroidアプリ開発状況2021版

この記事は クラスター Advent Calendar 2021 20日目の記事です。
昨日は、@ryoya_ino の「2021年の振り返りと2022年に向けて」でした。

https://note.com/inotch247/n/na6e684228e54

これで抜粋なんですよねぇ、並べてみると本当にすごい色々イベントやってたな〜と改めて感じます。

このイベントでほしい!と言われた機能を**そのイベントだけで使える機能**ではなく、**プラットフォームの機能として落とし込む**ことはできないか?みたいなのを考えたり設計するのも楽しいし、我々の腕の見せ所って感じですね。
引き続きやっていき! :muscle: :muscle: :muscle:

## はじめに
[クラスター株式会社](https://recruit.cluster.mu/engineer/)で、clusterのプラットフォーム事業部に所属しています。
バックエンドServer(Go)とモバイルアプリ(Android)の開発を担当をしているkyokomi(きょこみ)です!!

https://qiita.com

元記事を表示

【最新版】九州大学の全学基本メールのiPhone Android 設定方法.設定できない時の対処法.

九州大学の基本メールをスマホ(iPhone, Android)に追加する際に,下記の公式マニュアルでは設定不可能だったため.解決法を載せておきます.

修正版↓
https://kaedeee.com/kyushu-univ-mail-setting

「設定不可能になってしまっている」公式マニュアル
http://www.hes.kyushu-u.ac.jp/~hesguide/wp-content/uploads/2016/12/iPhone-mail.pdf

#問題点

公式マニュアルでは,「アカウント追加」の際.「その他」から追加することになっていますが,これだとうまくいきません.

![スクリーンショット-2021-12-07-13.08.26-1024×578-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1900756/bc5f26b0-3a72-bf9d-91e3-5f6a46c0d480.png)

#解決方法
「アカウント追加」の際.「Exchange」を選択します.

元記事を表示

[Android Kotlin]インタースティシャル広告のcloseイベント検知

### 実装

“`MainActivity.kt
val adRequest = AdRequest.Builder().build()
InterstitialAd.load(context, interstitial_id), adRequest, object : InterstitialAdLoadCallback() {
override fun onAdLoaded(interstitialAd: InterstitialAd) {
interstitialAd.fullScreenContentCallback = object : FullScreenContentCallback() {
override fun onAdDismissedFullScreenContent() {
super.onAdDismissedFullScreenContent()
// ここに閉じたあとの処理を記述する
}
}

元記事を表示

リストの先頭or末尾を調べる方法

いつも調べて思い出すことが多いので、メモとして残しておこうと思います。

#・リストの先頭かどうか

上記は以下で判断が可能です。

“`
recyclerView.canScrollVertically(-1).not()
“`

#・リストの末尾かどうか
上記はcanScrollVerticallyの引数を反転させれば判断が可能です。

“`
recyclerView.canScrollVertically(1).not()
“`

#・onScrolledでの実装
onScrolledで見たいケースが殆どだと思いますが、大体以下のような実装になるかと思います。

“`
binding.recyclerView.addOnScrollListener(object : RecyclerView.OnScrollListener() {
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
if (recyclerView.can

元記事を表示

SharedPreferencesに保存した値をAndroidStudioで確認する方法

SharedPreferencesに保存した値を確認する際にLogに表示させて確認することもあるかもしれませんが、端末をUSBでパソコンに接続していれば、簡単にAndroidStudioで確認することができます。

## 1AndroidStudioの右下にあるDeviceFileExplorerをクリックします。

わかりやすい様にスクリーンショットを載せておきます。
![スクリーンショット 2021-12-19 21.34.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274615/c4e02dbe-0d82-5572-399b-9a5923225c17.png)

## 2確認したい端末を選択します。
右側にDeviceFileExplorerのエリアが出てくるので、そこに確認したい端末を選択します。

![スクリーンショット 2021-12-19 21.42.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.c

元記事を表示

[Kotlin]Google Play Billing Library

In-app Billing(AIDL)の時は、Googleは基本的なAPIのみの提供で、高度な機能はサンプルとして提供し、開発者はサンプルをコピーして実装していた。

Google Play Billing Samples

Google Play Billing Libraryになって、iOSのStoreKit並みの高レベルなAPIが提供されるようになった。

ただし、Androidには特有の問題があって、上記のサンプルでそれの対処方法が提示されているので、サンプルを参考にするのが賢明だ。

具体的には、Androidのプロセスはアプリの生き死にと無関係で、動作する必要があったときに存在しなければ生成され、動作する必要がない状況となれば破棄されることもある。また、画面の回転などでアクティビティが再生成される。

Jetpackライブラリ(androidx名前空間)は、上記のような状況にうまく対応する

元記事を表示

Androidのバックボタンで何も起こらない挙動を実現する方法

## 実装に至ったきっかけ
私は実務でモバイルアプリの開発を担当しているのですが、その際にAndroidのバックボタンの制御がだるいな…と思っていました。
特に認証が絡んだ部分の処理で、「バックボタンで戻られるとちょっとややこしいことになるな…」と感じていました。そこでリーダーに相談したところ、「じゃあバックボタンを押しても何も起こらないようにしよう」と言われたことで、実装に至りました。

## 参考にしたサイト
ReactNativeの公式ドキュメントですね。BackHandlerがあることを実装するまで知りませんでした。

https://reactnative.dev/docs/backhandler

公式ドキュメントには、こう書かれています。

>If one subscription returns true, then subscriptions registered earlier will not be called.
If no subscription returns true or none are registered, it programmatically

元記事を表示

【Flutter】FlutterJsonBeanFactoryがとても便利という話

インドネシアの[PT.AQ Business Consulting Indonesia](https://aqi.co.id/)でFlutterのエンジニア兼アドバイザーをしております菊池と申します。

Zennで本を出版しております[flutter chips](https://zenn.dev/tetsukick/books/06ee607e30e243)(30,000字程度)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/261934/5183aafc-d1d7-534f-f618-031f10790fdc.png)

## FlutterJsonBeanFactoryとは
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/261934/d1b52181-fefe-1141-e570-5fa8e81ec090.png)
[FlutterJsonBeanFactory](https://p

元記事を表示

GooglePlayストアのOS対応とAPIレベル対応って何が違うの?説明してみた。

こんにちは。Advent Calendarも最終週となってまいりました。
[CYBIRD Advent Calendar 2021](https://qiita.com/advent-calendar/2021/cybird) 19日目担当の@koronekoです。
18日目は@whitemage_yuさんの「[SQLite meets Unity 〜Unityでローカルなデータベースを使おう〜](https://qiita.com/whitemage_yu/private/8f6bfc54c392b458b929)」についてでした。
サクッとSQL勉強するのに良い手段ですよね。

# はじめに
まずは軽く自己紹介をさせてください。
私はエンジニア歴十数年以上、CYBIRDでは技術部に所属し複数のタイトルの進行管理を行う業務に携わっています。
最近は手を動かすというよりも、管理業務の方が多い日々です。
他のメンバーは技術的に濃厚な記事が多いので、私はサクッと読める記事にしたいと思っています!

さて、突然ですが以下の会話をご覧ください。

### とある運用タイトルの企画とエンジニア

元記事を表示

Androidアプリ開発2ヶ月弱の新卒が思う、初学者でも参考になったサイト8選

この記事はレコチョク [Advent Calendar 2021](https://qiita.com/advent-calendar/2021/recochoku)の19日目の記事となります。

## はじめに
はじめまして、株式会社レコチョク新卒1年目の北島と申します。
趣味は音楽ゲームの「プロジェクトセカイ カラフルステージ! feat.初音ミク」をやることです。
中学校のときから色んな音楽ゲームが好きで、よく指が水ぶくれになるまでやっていました。

私は、約2ヶ月前からAndroidアプリ開発を始めました。
普段遣いはiPhoneなので、まずはAndroidスマホの操作法から慣れていったレベルの人間でも、少しずつアプリ開発が出来るようになってきました。
今回はAndroidアプリ開発の勉強をするにあたって、個人的に良かったと感じたサイトをご紹介しようと思います。

## 対象読者
– Androidアプリ開発に興味を持っている人
– Androidアプリ開発を何から始めればいいか迷っている人
– Androidアプリ開発を始めたての人

## 今回紹介するサイト

1. [これ

元記事を表示

【Android】画面分割やカットアウトに負けない画面サイズの測り方

この記事は[and factory.inc Advent Calendar 2021](https://qiita.com/advent-calendar/2021/andfactory) 19日目の記事です。
昨日は @ykkd さんの [【iOS】ストレージの空き容量を取得する方法 & 容量不足のデバッグ](https://qiita.com/ykkd/items/a75a1a97cd72b3bbc469) でした。

# はじめに

Android12Lの発表やそれに関する[ドキュメント](https://developer.android.com/guide/topics/large-screens/migrate-to-responsive-layouts#things-to-avoid
)にもある通り、Androidアプリは様々な画面構成に対応する必要性が増しているのを感じます。
端末サイズの種類自体もそうですが、画面分割によってアプリの領域が多種多様に変化するのもその要因の一つです。

この記事では、そんな様々な画面構成の中で、アプリが使える領域を正確に測る方法について書

元記事を表示

セル間に任意の間隔を空ける ItemDecoration

# ■ 概要
Android の [RecyclerView](https://developer.android.com/reference/kotlin/androidx/recyclerview/widget/RecyclerView) で、セル間に任意の間隔を空ける [RecyclerView.ItemDecoration](https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.ItemDecoration) を作ってみました。

なんかしっくりした設計が見つからず、とりあえずやっつけ実装です、、、。

[Paging library](https://developer.android.com/topic/libraries/architecture/paging/v3-overview)(paging3) でも使えるように header と footer にも対応できる形にしてみました。

– セル間にコンストラクタ引数に渡した px に対応した間隔が入ります。

元記事を表示

OTHERカテゴリの最新記事